1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng chuyên đề vét cạn

28 387 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 638,5 KB

Nội dung

Bài giảng chuyên đề vét cạn, ĐHSPHN Nguyên lý vét cạn Dùng vòng lặp để giải quyết (Phần 1) Mô tả thuật toán Cài đặt Một số ví dụ minh họa Dùng thuật toán quay lui để giải quyết (Phần 2) Tài liệu tham khảo

CHUYÊN ĐỀ VÉT CẠN Hội đồng môn Tin học Nguyên lý vét cạn Dùng vòng lặp để giải (Phần 1) Mơ tả thuật tốn Cài đặt Một số ví dụ minh họa Dùng thuật tốn quay lui để giải (Phần 2) Tài liệu tham khảo Nguyên lý vét cạn tồn Muốn tìm kim đống rơm, rút cộng rơm rút kim Mơ tả thuật tốn Gọi D khơng gian tốn (tập tất khả xảy toán) D = tập tất (x1, x2, …, xn) Trong đó: X1  D1 X2  D2 … Xn  Dn Và Di tập hữu hạn có số phần tử mi Gọi quy tắc xác định lời giải ánh xạ f f : D  {True, False} Để tìm kiếm lời giải toán ta xét tất phần tử tập D, phần tử x=(x1,x2,…, xn) thỏa f(X)= True X lời giải tốn Coloigiai:=false; For  x1  D1 For  x2  D2 … For  xn  Dn If f(x1,x2, ,xn)=True then begin lời giải coloigiai:=true end; If coloigiai= False then VD1 Vừa gà vừa chó 36 con, bó lại cho tròn 100 chân chẵn Tìm số gà, số chó loại? HD Ta có D = D1 x D2 D1: tập giá trị mà số gà nhận D1=[1 36]  ga D2: tập giá trị mà số chó nhận D2=[1 25]  cho Điều kiện nhận kết  Đk1: ga+cho =36  Đk2: ga x + cho x =100 Code tham khảo var ga, cho:byte; begin for ga:=1 to 36 for cho:=1 to 25 if (ga+cho=36) and (ga*2+cho*4=100) then write(ga:4,cho:4); readln end VD2 Trăm trâu trăm bó cỏ Trâu đứng ăn năm Trâu nằm ăn ba Trâu già lụ khụ Ba bó Tìm số trâu loại? HD Ta có D= D1 x D2 x D3 D1: tập giá trị mà số trâu đứng nhận  a D2: tập giá trị mà số trâu nằm nhận  b D3: tập giá trị mà số trâu già nhận Điều kiện nhận nghiệm:  a + b + c = 100  5xa + 3xb + c/3=100 c Code tham khảo var a,b,c:byte; begin for a:=1 to 20 for b:=1 to 33 for c:=1 to 100 if (a+b+c=100) and (5*a+3*b+c/3=100) then writeln(a:4,b:4,c:4); readln end Phát biểu lại tốn: Đếm xem có xâu có số kí tự a số kí tự b function compare(st:string):boolean; var x,y,j:integer;ss:boolean; begin x:=0;y:=0; for j:=1 to length(st) begin if st[j]='a' then inc(x); if st[j]='b' then inc(y); end; if x=y then ss:=true else ss:=false; compare:=ss; end; Code tham khảo procedure xuly; begin k:=0; repeat k:=k+1; for i:=1 to n-k+1 for j:=i+k-1 to n if compare(copy(s,i,j-i+1)) then inc(dem); until k='0') and (s[i]='A') and (s[i]='a') and (s[i]

Ngày đăng: 08/09/2019, 13:11

TỪ KHÓA LIÊN QUAN

w