Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 25

I HC QUC GIA THNH PH H CH MINH

CHNG TRNH O TO THC S CNTT

Tiu lun : M PHNG THUT TON HEAP SORT & QUICK SORT TRN MAPLE

Ging vin hng dn : PGS.TS Vn Nhn Hc vin thc hin : on V Ngc Duy MSSV : CH1101010 TP.HCM 01/01/2013

GII THIU............................................................................................. 3 C
IM

............................................................................................................... 4

NHNG

NG DNG CH YU.......................................................................................5

CU TRC GIAO DIN V TI NGUYN CA MAPLE....................................5 1. LM S LU


QUEN VI MAPLE............................................................................................. 6

DNG DCH V TR GIP

(HELP)

TRONG

MAPLE.........................................................7

TR V TRCH XUT D LIU.................................................................................7

MI TRNG TNH TON V CC I TNG LM VIC............................7 BI TP VN DNG...............................................................................15 1. THUT THUT


TON HEAP SORT........................................................................................15

TON QUICK SORT.......................................................................................... 20

GII THIU
Lp trnh symbolic l lp trnh trn c s ton hc logic, c thit k gii quyt cc vn lin quan n tr tu nhn to. Chng trnh l tp hp cc m t logic , lp trnh dng ny cn c gi l ngn ng lp trnh k hiu (symbolic programming) tng t cc ngn ng lp trnh hm (functional programming), hay lp trnh phi s (non-numerical programming). Lp trnh symbolic rt thch hp gii quyt cc bi ton lin quan n cc i tng (object) v mi quan h (relation) gia chng Vi cc tnh nng c bn ca mnh, Maple c th thc hin c hu ht cc php ton c bn trong chng trnh ton i hc v ph thng. Maple l chng trnh tnh ton vn nng rt s, khng th no nm bt cho ht (d ch trn phng din tnh ton v biu din) y em xin trnh by cc bc c bn v s hc v cc vn lin quan, gii thiu cc cu lnh, cc hm thng s dng, cch vit cc th tc. T c th xy dng nhiu chng trnh khc phc v cho vic hc tp v nghin cu. Maple l sn phm ca Waterloo Maple Inc. (http://www.maplesoft.com). Ra i vo nhng nm 1980 ti i hc Waterloo (Canada), v cho n thi im hin nay (nhng ngy u nm 2008) pht trin n phin bn 11. Ci t n gin, khng i hi cu hnh my mnh (nh Matlab), chy trn tt c cc h iu hnh, khng qu kh khn t hc cch s dng vi mt trnh tr gip (Help) rt tin li. Maple l mt chng trnh tnh ton mnh m. Hy th lm mt php so snh nh vi mt cng c tnh ton tht quen thuc vi chng ta: Chic my tnh b ti (mt php so snh rt khp khing). My tnh b ti th ch c th tnh ton vi s c th (nu bn ngh n c th phn tch a thc thnh nhn t chng 3

hn ?) nhng Maple th khc. N c kh nng lm vic vi c nhng biu thc ton hc v cc php tnh hnh thc. Cho php tnh ton ra cc gi tr chnh xc (ch khng phi l gn ng nh mt s ngn ng lp trnh khc v d : C# hay C++ khng h tr tnh chnh xc tuyt i) T rt gn, khai trin biu thc, tnh gii hn, o hm, nguyn hm (ch khng phi ch l tnh tch phn) bc ph thng. n khai trin Taylor, tm nghim phng trnh vi phn, tnh nh thc, gii h phng trnh tuyn tnh c tham s Maple x l trong tch tc. Khng ch nh vy, Maple cn c th minh ho xut sc th hai chiu ln mt cong trong khng gian ba chiu, th to cc, tham s, hm n.

c im
L mt h thng tnh ton trn cc k hiu v biu thc ton hc. C th thc hin hu ht cc php ton c bn ca chng trnh ton i hc v sau i hc.Tnh ton c nghim chnh xc v gn ng ca mt lp rng cc bi ton l thuyt v ng dng. Cung cp cc cng c minh ha hnh hc thun tin bao gm: th, hnh v tnh v ng ca cc ng v mt c cho bi cc hm ty trong nhiu h ta khc nhau. Mt ngn ng lp trnh n gin v mnh m c kh nng chuyn i sang cc ngn ng lp trnh khc. Cho php trch xut d liu ra cc nh dng khc nhau nh Latex, Word, HTML... Mt cng c bin son gio trnh in t v trnh din bi ging thun tin.

H tr theo nhiu mc cho sinh vin trong vic hc tp.

Nhng ng dng ch yu
Maple nh mt cng c h tr vic dy v hc ton. ng dng ny qu tht l quan trng vi nhng sinh vin s phm ton cng nh nhng ngi lm cng tc nghin cu ton hc Ngoi ta Maple cn l mt cng c h tr cho tin hc v lp trnh. Hin nay khi Pascal thiu nhiu cng c v khng cn ph hp lm vi kin thc tin hc hin nay dy v hc cch lp trnh. Vi nhng phn mm tnh ton khoa hc ang c pht trin rt mnh m hin nay nh Maple, Mathematica, Matlab Ta c th khai thc ngn ng lp trnh ca n hc tin hc, nht l th hin cc thut ton v cc kin thc tin hc c lin quan. Vi vic th hin cc thut ton trn cc ngn ng thng thng nh C#, C++ hay Java cng c nhiu hn ch trong lp trnh cng nh tnh ton chnh xc, maple l mt cng v rt mnh m phng cc thut ton trong tr tu nhn to hay cc thut gii m ha d liu cho n vic m phng my hc.

CU TRC GIAO DIN V TI NGUYN CA MAPLE


Vic ci t v khi ng chng trnh Maple trn mi trng Windows khng c g khc bit so vi cc chng trnh ng dng khc. Giao din ca Maple kh ging vi giao din lm vic ca cc chng trnh ng dng khc trn Windows v cng rt thn thin vi ngi s dng. Khi khi ng Maple, chng trnh ch t ng kch hot nhn ca Maple bao gm cc php ton v chc nng c bn nht. Phn nhn chim khong 10% dung lng ca ton chng trnh. Cc d liu v chng trnh cn li ca Maple c lu gi trong th vin Maple v c chia ra 2 nhm: nhm cc lnh c bn v nhm cc gi lnh 5

1. Lm quen vi maple
Lnh c g vo trang lm vic (worksheet) ti du nhc lnh ">" v theo ngm nh c hin th bng font Courier mu . Mt lnh c kt thc bi du " :" hoc du ";" v c ra lnh thc hin bng vic nhn Enter khi con tr ang trn dng lnh. > factor(2*x^102+x^100-2*x^3-x+60*x^2+30): Kt qu ca lnh c hin th ngay bn di dng lnh nu dng du " ;". C th d dng dng chut v bn phm thc hin cc chc nng bi en, copy, paste, cut, delete...i vi d liu trn dng lnh hay kt qu thc hin.

Trang lm vic (worksheet) : l trang cha ni c th t cc lnh , cc chng trnh , cc ch thch ...Trang lm vic s c lu li thnh file c phn m rng *.mws . Cm x l (Execution Group): [> l ni c th t 1 lnh , hay mt nhm lnh ca Maple. Sau khi nh Enter tan b cc lnh trong cm x l s c thc thi. Cm vn bn (Text) : [ l ni c th t vn bn vi mc ch minh ha, ch thch. Phn (Section) : c th thu gn/ni rng , c th bao gm cm x l v cm vn bn. Trong mt cm x l c th gm nhiu lnh. Cc lnh kt thc bng ; hoc :

Cc lnh kt thc bng ; s c thc thi v kt qu hin ra mn hnh. Cc lnh kt thc bng : s c thc thi ngm v kt qu khng hin ra mn hnh. Mun thm mt lnh sau lnh hin ti g Shift Enter thay v Enter.

C th click vo nt lnh Help trn Menu Bar ca Maple m phn ti liu tr gip , tm kim mc thch hp , nhn Ctrl + F1 copy tan b v d , dn ngc li vo trang thc thi 6

S dng dch v tr gip (Help) trong Maple


Maple c dch v tr gip kh y v thun li bao gm c php, gii thch cch dng v cc v d i km. nhn c tr gip, c th: Nu bit tn lnh th t du nhc g vo > factor Nu dng mt gi lnh th khi np gi lnh, Maple s hin th ton b lnh trong gi . Mt cch thng dng na l dng trnh Help|Topic Search ri g vo t kha cn tm.

Lu tr v trch xut d liu


Trang lm vic ca Maple s c lu gi bng file c ui ".mws". File c lu gi bng trnh File|Save. Mt file c m bng File|Open. Ngoi vic lu gi bng nh dng ca Maple nh trn, d liu c th c trch xut thnh cc nh dng khc nh LaTex hay HTML. Trch xut bng File| Export.

MI TRNG TNH TON V CC I TNG LM VIC


Maple c 2 mi trng lm vic l ton v vn bn. Sau khi khi ng, Maple t ng bt mi trng ton. Mun chuyn sang mi trng vn bn, kch chut vo biu tng T trn thanh cng c hay vo trnh Insert->Text. Ngc li, t mi trng vn bn, kch chut vo du "[>" trn thanh cng c hay vo Insert chuyn sang mi trng ton. Mt trang lm vic (worksheet) ca Maple c th bao gm nhng thnh phn c bn nh sau: 7

Cm x l (Execution Group) Lnh v kt qu tnh ton ca Maple Mc (Section) th (Graph) Siu lin kt (Hyperlink) Vn bn v on vn bn (Text v paragraph) u tin hy m mt trang (worksheet) mi bng cch chn File/New. Mt trang trng vi du [> s hin ra: > Du trn gi l prompt, sau du cc bn c th g cc php tnh v yu cu Maple thc hin. Kt thc mi dng lnh l du chm phy hai hai chm, sau l Enter. Hy th: > 247*3756;

Nu bn kt thc bng du hai chm, Maple s vn tnh nhng khng hin th kt qu. Cc php tnh cng, tr, nhn, chia, lu tha, ln lt c k hiu: +, -, *, / , ^ (**). Ch mt iu l Maple dng cch tnh chnh xc, cho nn khi thc hin : > 25/27+3/51;

c kt qu gn ng, dng hm evalf: 8

> evalf(%);

Maple phn bit ch hoa vi ch thng, cho nn Pi khc vi pi. Pi l hng s = 3.141592654, trong khi pi l ch ci Hi Lp tm hiu thm mt lnh no cha bit, bn c th c phn Help hoc n gin hn l nhn F1 sao khi t con tr vo v vi 1 ln Click. Bin v hm: php gn (mt hm s hay mt gi tr no cho mt bin) c thc hin bng cch dng k hiu := > alpha:=5;

Kim tra li: > 4*alpha+12;

tr t do li cho bin alpha, bn dng lnh: > alpha:='alpha';

nh ngha hm (ci ny quan trng!) c hai cch: Cch 1: gn cho n mt bin s. > f:=x^2;

tnh gi tr ca f: > x:=1;

> f;

Hoc: > subs(x=1,f);

Cch 2 : > f:=x->x^2; > f(1);

Lc ny ta c th tnh gi tr ca hm ti bin x bng k hiu quen thuc f(x).Hy xem xt kh nng ca Maple trong vic bin i tnh ton cc biu thc i s: Lnh simplify thu gn mt biu thc > f:=(1+x)/x+(1-x)/x;

> simplify(f);

Lnh expand khai trin mt biu thc: 10

> f:=(x^2-4)*(x+1)*(x-2)*(x^2+x+1);

> expand(f);

Lnh Factor bin i biu thc thnh nhn t: > factor(sin(x)^3-cos(x)^3);

Gii h phng trnh dng lnh Solve, tuy nhin trc khi gii phi Restart tr t do cho tt c cc bin. > restart; > sol:=solve({2*x-5*y=12,12*x+4*y=17},{x,y});

o hm v tch phn: dng lnh diff: > f:=x*sin(x)-x;

> df:=diff(f,x);

> df2:=diff(f,x$2);#dao ham bac hai cua f

11

Nguyn hm, tch phn dng lnh int > f:=sin(x);

> int(f,x);#nguyen ham cua f

> int(f,x=0..3);#tich phan xac dinh cua f tu 0 toi 3

> evalf(%);

Tch phn th lun tnh c, tuy nhin nguyn hm th khng phi lc no Maple cng tnh ra. Chng hn trng hp sau: > h:=sin(x)/g(x);

> int(h,x);#khong phai bao gio Maple cung tim ra nguyen ham

> evalf(int(h,x=0..1));

th hai chiu: ta dng lnh Plot v. > f:=exp(-x)*sin(3*x); 12

> plot(f,x=0..3);# ve ham f trong khoang tu 0 toi 3

> plot(f,x=0..3,y=-0.3..1,color=blue);# Gii hn trc y chn ta mu xanh

13

th 3 chiu: Ta xt mt minh ho hnh nh t nhin ca cc ng conic nh giao tuyn ca mt nn v mt mt phng ct n. > with(plots): >animate(plot3d,[y/3-10,x= 20..t,y=20..t,color=red,style=PATCHNOGRID],t=18..17,ax es=framed,background=plot3d([z*cos(t),z*sin(t),z],z=20 ..0,t=-Pi..Pi)); Kt qu l mt hnh 3 chiu m c bit l bn c th xoay n v quan st theo mi gc .

Bng cch thay i thch hp phng trnh mt phng ct n, chng ta c th thu c thit din l mt trong cc ng conic.

14

Bng cc gi lnh chuyn nghip khc, Maple cn lm c rt nhiu cc nghin cu c gi tr

BI TP VN DNG
1. Thut ton heap sort
M phng bi ton Mi mng a[1..n] c th xem nh mt cy nh phn gn y (c trng s l cc gi tr ca mng), vi gc phn t th nht, con bn tri ca nh a[i] l a[2*i] con bn phi l a[2*i+1] (nu mng bt u t 1 cn nu mng bt u t 0 th 2 con l a[2*i+1] v a[2*i+2] ) (nu 2*i<=n hoc 2*i+1<=n, khi cc phn t c

ch s ln hn

khng c con, do l l).

V d mng (45,23,35,13,15,12,15,7,9) l mt ng Mt cy nh phn, c gi l ng cc i nu kha ca mi nt khng nh hn kha cc con ca n. Khi biu din mt mng a[] bi mt cy nhi phn theo th t t nhin iu ngha l a[i]>=a[2*i] v a[i]>=a[2*i+1] vi mi i =1..int(n/2). 15

Ta cng s gi mng nh vy l ng. Nh vy trong ng a[1] (ng vi gc ca cy) l phn t ln nht. Mng bt k ch c mt phn t lun lun l mt ng. Mt ng cc tiu c nh ngha theo cc bt ng thc ngc li: a[i]<=a[2*i] v a[i]<=a[2*i+1]. Phn t ng gc cy cc tiu l phn t nh nht. Vun ng Vic sp xp li cc phn t ca mt mng ban u sao cho n tr thnh ng c gi l vun ng. Vun ng th i Nu hai cy con gc 2 * i v 2 * i + 1 l ng th cy con gc i tr thnh ng ch vic so snh gi tr a[i] vi gi tr ln hn trong hai gi tr a[2 * i] v a[2 * i + 1], nu a[i] nh hn th i ch chng cho nhau. Nu i ch cho a[2 * i], tip tc so snh vi con ln hn trong hai con ca n cho n khi hoc gp nh l. (Th tc DownHeap trong gi m di y) Vun mt mng thnh ng vun mng a[1..n] thnh ng ta vun t di ln, bt u t phn t a[j]vi j =Int(n/2) ngc ln ti a[1]. (Th tc MakeHeap trong gi m di y) kho qua Sp xp bng vun ng i ch (Swap): Sau khi mng a[1..n] l ng, ly phn t a[1] trn nh ca ng ra khi ng t vo v tr cui cng n, v chuyn phn t th cui cng a[n] ln nh ng th phn t a[n] c ng ng v tr. Vun li Phn cn li ca mng a[1..n-1] ch khc cu trc ng phn t a[1]. Vun li mng ny thnh ng vi n-1 phn t. 16

Lp Tip tc vi mng a[1..n-1]. Qu trnh dng li khi ng ch cn li mt phn t M phng heap sort bng Maple
> parent:=i->floor(i/2); > >

>

17

> > > >

>

>

18

> >

>

> > > > >

> >

19

> >

Thut ton quick sort


M phng bi ton Sp xp nhanh (Quicksort), cn c gi l sp xp kiu phn chia (part sort) l mt thut ton sp xp pht trin bi C.A.R. Hoare, da trn php phn chia danh sch c sp thnh hai danh sch con. Phng php ny l minh ha r rng nht sp xp mt danh sch a[1n] ta chia n thnh hai danh sch bng cch so snh tng phn t ca danh sch vi mt phn t c chn lm phn t cht. Nhng phn t nh hn phn t cht c a v pha trc v nm trong danh sch con th nht, cc phn t ln hn cht c a v pha sau v thuc danh sch ng sau. C tip tc chia nh vy ti khi cc danh sch con u c di bng 1. Danh sch a[1n]: Danh sch 1 gm: a[1k] < X Danh sch 2 gm: a[(k+1) n] > X a<X a=X a>X

20

y ta thy xut hin 3 danh sch con, trong : Danh sch th 2 c sp xp. Nu danh sch 1 v 3 ch c mt phn t th dy a[in] c sp xp xong. Nu danh sch 1 v 3 c hn mt phn t th dy ban u ch c th t khi cc dy con 1, 3 c sp. sp xp dy con 1 v 3, ta ln lt tin hnh vic phn hoch tng dy con theo cng phng php phn hoch dy ban u va trnh by. Gii thut: Gii thut phn hoch dy a[1n] thnh hai dy con gm 3 bc: Bc 1: chn ty 1 phn t a[k] trong dy lm gi tr mc. L k R : a[k] =X; i = L; j = R; Gi cc cch chn phn t mc Chn phn t ng u hoc ng cui lm phn t cht. Chn phn t ng gia danh sch lm phn t cht. Chn phn t trung v trong 3 phn t ng u, ng gia v ng cui lm phn t cht. Chn phn t ngu nhin lm phn t cht. (Cch ny c th dn n kh nng ri vo cc trng hp c bit) Bc 2: Pht hin v hiu chnh cp phn t a, a[j] nm sai ch: Bc 2a: Trong khi (a < X) i++; Bc 2b: Trong khi (a[j] > X) j++; Bc 2c: Nu i < j // a X a[j] m a[j] ng sau a Hon v ( a, a[j]); Bc 3: Nu i < j; Lp li Bc 2 // cha xt ht mng Nu I > j; Dngcho chin lc chia tr. 21

M phng quick sort bng Maple

>

22

> > >

>

23

> > > > > >

>

> >

24

> >

>

>

25

You might also like