You are on page 1of 4

I HC NNG TRNG I HC BCH KHOA KHOA CNG NGH THNG TIN

NGUYN VN NGUYN

THC HNH TON RI RC

Nng, 2005

BI THC HNH S 1
CH : BI TON M BI TON LIT K
I. SINH VIN XY DNG THUT TON V CI T CHNG TRNH CHO CC BI TON SAU:

1. m s xu nh phn di n: a) Bt k. b) Khng c hai bit 0 k nhau. c) C t nht hai bit 0 k nhau. 2. Vit chng trnh lit k tt c cc xu nh phn di n nh yu cu ca bi ton 1. Lit k c s th t kim tra kt qu m c. Th nhp vi nhiu gi tr khc nhau ca n. Lu cc trng hp n=1 v n=2. Vit chng trnh nhp mt xu ch gm n ch ci hoa (A..Z)-trong c mt s ch ci lp. Lit k tt c cc cch sp xp n ch ci ny. C m tng s cch sp xp.
3.

Xt phng trnh nguyn: x1+x2+..+xn=k vi xi0 i=1..k. Vit chng trnh nhp n,k v in ra tt c cc nghim ca phng trnh.C m tng s nghim.
4.

II.

HNG DN Bi 1 m s xu nh phn di n: a. Bt k: S xu nh phn di n chnh l 2n. b. Khng c hai bit 0 k nhau: - Nu n=1: c 2 xu. - Nu n=2: c 3 xu. - T n>2 tr i th s xu nh phn di n chnh bng tng ca s xu nh phn di n-1 v s xu nh phn di n-2. c. C t nht 2 bit 0 gn nhau:

S xu cn tm chnh bng s xu tm c cu a tr i s xu tm c cu b. Bi 2. Thut ton lit k cc xu nh phn: gii quyt bi ton ny,ta s xy dng cc hm v dng thut ton quay lui gii Thut ton c th c m t nh sau: Khai bo mng s[100],n,d=0; kiu s nguyn To hm print(tham s); Lke(tham s); - void print(tham s): 1.Khai bo bin k kiu nguyn; 2.Gn k=0 v lp cho ti khi cu hnh C mi bc lp th in ra phn t ca mng s Tng bin m ln 1 n v d++ - void Lke(tham s): 1.Khai bo bin j kiu nguyn; 2.Gn j=0 v lp cho ti khi j=1 -C mi bc gn j vo cho mng s -Nu cu hnh th in mng s -Khc th quay lui li hm Lke(thamso+1) - Hm main(): a) Khai bo i kiu nguyn; b) Qut gi tr di xu nh phn vi n khai bo ton cc, n>=1; c) Gi hm Lke(0); truyn tham s i=0 cho ln u tin gi hm; d) In ra s xu nh phn m c:printf(%d,d); Bi 3. Lit k t hp khng lp ca xu ch ci: Ta da vo phng php sinh gm cc bc: Bc 1: Xy dng cu hnh u tin cho xu theo th t t in Xp xp li xu theo chiu gim a[i]>=a[i+1] vi i=1, n 1 . In ra cu hnh u tin ny v bin m s cch sp xp c khi to gi tr bng 1. Bc 2: Lp cho ti khi t c cu hnh cui c dng a[i]<=a[i+1] vi i=1, n 1 . Trong qu trnh lp sinh xu k tip bng cch hon i v tr 2 phn t a[i] a[j] cho nhau .iu kin ca i l tt c cc phn t ca xu bn tri v tr i c sp xp theo chiu tng tr phn t i .V cc phn t ca xu c lu vo v tr t 0 n n-1 nn vi i=n chnh l iu kin thot khi vng lp .iu kin ca j l 1 trong i-1 phn t bn

tri ca phn t i c gi tr nh nht nhng a[j]>a[i] .V dy bn tri ca phn t th i l dy tng do j chnh l v tr ca phn t u tin ln hn a[i] nu j=1 i-1 .Sau khi hon v a[i] v a[j] cho nhau ta sp xp li tt c cc phn t bn tri i theo chiu gim, in ra cu hnh mi ca xu v tng bin m ln. Bi 4. Gii phng trnh: x1 + x2 + x3 + + xn = k - Khai bo bin. - Khai bo thm mng a[i] in ra cc nghim ca phng trnh. - Nhp d liu n v k. - Dng bi ton chnh hp lp chp n ca k+1 phn t (0,1.,k): + Khai bo thm bin sum + Nu k=0 th c nghim duy nht x1 = x2 = = xn = 0; + Ngc li gn a[i]=0; Thay i a[i] c a[i] k tip theo bi ton chnh hp lp. Gn sum=a[i]; nu (sum =k) in kt qa a[i]; - Thut ton chnh hp lp chp k ca n phn t (phng php lit k) void Lke(int n,int k){ For(i=1;i<=k;i++) s[i]=1; Print(s); For(dem=2;dem<=Fkn; dem++) { i=k; while(s[i]==n) i--; s[i]++; for(j=i+1;j<=k;j++) s[j]=1; print(s); } }

You might also like