NHỮNG vấn đề cần lưu ý KHI GIẢI một số bài TOÁN HÌNH học TRONG lập TRÌNH

38 434 0
NHỮNG vấn đề cần lưu ý KHI GIẢI một số bài TOÁN HÌNH học TRONG lập TRÌNH

Đ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

PHẦN MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI 2 MỤC ĐÍCH CỦA ĐỀ TÀI ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI PHƯƠNG PHÁP NGHIÊN CỨU CỦA ĐỀ TÀI PHẦN NỘI DUNG .3 I – BIỂU DIỄN CÁC ĐỐI TƯỢNG CƠ BẢN CỦA HÌNH HỌC .3 II THUẬT TOÁN GIẢI MỘT SỐ BÀI TOÁN HÌNH HỌC CƠ BẢN .4 III MỘT SỐ BÀI TOÁN CƠ BẢN VỀ ĐA GIÁC PHẦN KẾT LUẬN .19 PHỤ LỤC: MỘT SỐ BÀI TẬP VÍ DỤ 21 PHẦN MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI Giải toán có nội dung hình học phần quan trọng chương trình tin học Khi giải toán hình học lập trình, có số công việc xuất với em học sinh học tin học, việc đưa mô hình toán thứ đến phải chuyển đổi mô hình toán thành chương trình Có điều khó khăn là, giải toán hình học việc so sánh giá trị hai đối tượng thường phải xử lý dạng số nguyên (máy tính so sánh hai số thực có không xác), tin học việc giải toán hình học lại thiên việc xử lý nhiều đối tượng cách thức tổ chức liệu, cách thức xây dựng công thức, phương pháp tính toán vấn đề cần hệ thống lại để xây dựng cho em học sinh có cách nhìn tổng quan vấn đề này, giúp em không bị rối lập trình giải toán hình học Tuy nhiên tài liệu sách giáo khoa Tin học, sách tập Tin học chưa sâu vào vấn đề Vì lý nói nên đề tài mạnh dạn trình bày kinh nghiệm tích lũy trình giảng dạy lập trình giải toán hình học, với mong muốn đề tài có ích cho học sinh, bạn bè đồng nghiệp người yêu lập trình MỤC ĐÍCH CỦA ĐỀ TÀI Đề tài có mục đích đưa cấu trúc liệu phù hợp để biểu diễn yếu tố hình học, xây dựng công thức (Thuật toán) giải toán hình học Ngoài phần phụ lục đề tài đưa số toán hình học thường gặp thuật toán giải để bạn đọc tham khảo ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI Các cấu trúc liệu để biểu diễn đối tượng hình học, thuật toán giải toán hình học bản, số toán hình học thường gặp thuật toán giải chúng PHƯƠNG PHÁP NGHIÊN CỨU CỦA ĐỀ TÀI - Xây dựng sở lý thuyết - Điều tra khảo sát thực tế, đối sánh PHẦN NỘI DUNG I – BIỂU DIỄN CÁC ĐỐI TƯỢNG CƠ BẢN CỦA HÌNH HỌC I.1 Biểu diễn điểm, đoạn thẳng đường thẳng Như biết, khái niệm: điểm, đoạn thẳng, đường thẳng đối tường hình học nói chung Để biểu diễn đối tượng nói tin học có nhiều cách khác nhau, nhiên ta sử dụng cách biểu diễn cấu trúc liệu sau: Type // Điểm Point = record x,y : longint // Đường thẳng, đoạn thẳng Line = Record p1, p2 : Point //Đa giác, tập hợp điểm Polygon = Array[1 MAXN] of Point Để thuận lợi biểu diễn đa giác ta thêm hai đỉnh đầu cuối: đỉnh đỉnh n đỉnh n + đỉnh 1 Điều cần lưu ý ta dùng hai biến đơn x, y để biểu diễn điểm, càn biểu diễn tập hợp nhiều điểm ta phải dùng hai mảng mảng hai chiều, điều không lợi phải xếp điểm theo thứ tự I.2 Kiểu liệu số Trong toán hình học, phần lớn đối tượng thể hệ trục tọa độ Descartes, việc biểu diễn thành phần tọa độ sử dụng kiểu số thực kiểu số nguyên ngôn ngữ lập trình Một số kiểu liệu Pascal hay sử dụng + Kiểu số nguyên: Tên kiểu Phạm vi Dung lượng Shortint -128 → 127 byte Byte → 255 byte Integer -32768 → 32767 byte Word → 65535 byte LongInt -2147483648 → 2147483647 byte + Kiểu số thực: Tên kiểu Phạm vi Dung lượng Single 1.5×10-45 → 3.4×10+38 byte Real 2.9×10-39 → 1.7×10+38 byte Double 5.0×10-324 → 1.7×10+308 byte Extended 3.4×10-4932 → 1.1×10+4932 10 byte Trong sử dụng kiểu liệu kiểu số thực, ta dùng Double Extended ta phải khai báo biên dịch chế độ {$N+}, ta nên lúc làm Vì máy tính dùng đồng xử lý toán học, phép toán với số thực thực nhanh chẳng so với số nguyên (thậm chí nhanh ta dùng kiểu số thực Double) II THUẬT TOÁN GIẢI MỘT SỐ BÀI TOÁN HÌNH HỌC CƠ BẢN II.1 Tính toán so sánh độ dài đoạn thẳng, chu vi, diện tích hình Đối với đoạn thẳng, việc tính toán hay so sánh độ dài đoạn thẳng với đoạn thẳng khác dựa tọa độ thực cách xác công thức có xuất dấu Thay vào ta phải viết biến đổi công thức toán học thành dạng khác cho không xuất dấu thức - Để so sánh độ dài hai đoạn thẳng, đoạn thẳng thứ nối hai điểm M1(x1; y1) , M2(x2;y2) đoạn thẳng thứ hai nối hai điểm M 3(x3; y3), M4(x4;y4) Function EQA (x,y : doan) : boolean; Begin 10 11 EQA := true; if sqr(x.hc – x.hd) + sqr(x.tc – x.td) = sqr(y.hc – y.hd) + sqr(y.tc – y.td) { x.hc hoành độ điểm cuối đoạn x, x.hd hoành độ điểm đầu 12 15 13 then exit(False) End; Ở cần lưu ý ta so sánh bình phương độ dài hai đoạn thẳng, điều giúp giảm chi phí tính toán đồng thời so sánh số thực tọa độ nguyên 16 - Điều kiện điểm A(XA,YA), B(XB,YB), C(XC,YC) thẳng hàng: (XA-XB)*(YA-YC) = (XA-XC)(YA-YB) 17 II.2 Vị trí tương đối ba điểm liên tiếp A, B, C: 18 Có khả xảy ra: 19 20 0 B.x − A.x C.x − B.x  k= = (B.x - A.x)(C.y - B.y) - (B.y - A.y)(C.x-B.x) → k = > B y − A y C y − B y <  Nếu k = ba điểm A, B, C thẳng hàng, k ta có rẽ trái B 21 22 Khi lập trình ta dùng hàm sau: 23 Function CCW (A,B,C : point) : integer; 24 Begin 25 If (B.x - A.x)*(C.y - B.y) - (B.y - A.y)*(C.x-B.x) = then exit(0); 26 If (B.x - A.x)*(C.y - B.y) - (B.y - A.y)*(C.x-B.x) < then exit(1) 27 Else exit(-1); 29 End; 30 II.3 Phương trình đường thẳng Phương trình đường thẳng qua hai điểm phân biệt P 1, P2 có dạng: f(x,y) = (x- P1.x)*(P2.y – P1.y) - (y – P1.y)*(P2.x – P1.x) = 31 32 Viết dạng tổng quát : f(x,y) = Ax + By + C = sau: f(x,y)=(P2.y – P1.y) x +(P1.x – P2.x) y +((P2.x – P1.x)*P1.y - (P2.y – P1.y)* P1.x)=0 f(x,y)=(P2.y – P1.y) x +(P1.x – P2.x) y +P2.x*P1.y - P2.y * P1.x=0 33 Ở không nên sử dụng phương trình đường thẳng dạng y=ax+b p1p vuông góc với trục ox bị sai 34 Để tính giá trị hàm f(x,y) qua hai điểm p1; p2 điểm p3 ta sử dụng đoạn chương trình: 35 36 Function fx (p1,p2,p3 : point) : real; 37 Begin 38 exit(p3.x*(p2.y – p1.y) + p3.y*(p1.x – p2.x) + ( p2.x*p1.y-p1.x*p2.y)); 39 End; II.4 Vị trí tương đối điểm đường thẳng 40 uuuuuur Cho điểm P1, P2, M, Vị trí tương đối M so với vector p1 , p2 , xác định sau: 41 VT := (p2.x-p1.x)(M.y-p1.y)-(p2.y-p1.y)(M.x-p1.x); 42 - Nếu VT>0 M bên trái véctơ p1 , p2 43 - Nếu VT then exit(1) Else exit(-1); 51 52 53 End; { hàm = M bên trái p1 , p2 , hàm = -1 M bên phải} uuuuuu r II.5 Xác định điểm M có thuộc đoạn thẳng P1P2 54 M thỏa điều kiện sau: 55 - M nằm đường thẳng p1p2 - Tọa độ M thỏa : (M.x>=min(p 1.x,p2.x)) and (M.x=min(p1.y,p2.y)) and (M.y=min(p1.x,p2.x)) and 62 (M.x=min(p1.y,p2.y)) and (M.y=0 (M.y-A.y)( B.y-A.y)>=0 66 Function PinRay (p1,p2,M : point) : boolean; 67 Var temp : longint; 68 Begin 69 70 Temp:=PoInln(p1, p2,M); Exit((Temp=0) and ((M.x-A.x)*( B.x-A.x)>=0) and 71 72 73 74 End; ((M.y-A.y)*( B.y-A.y)>=0)); II.7 Xác định vị trí tương đối điểm M 1,M2 so với đường thẳng p1p2 75 Function Po2PoLi (p1,p2,M1,M2 : point) : boolean; 76 Var temp1, Temp2 : longint; 77 Begin 78 79 Temp1:= PoInLi (p1,p2,M1 : point); Temp2:= PoInLi (p1,p2,M2 : point) ; 80 Exit(Temp1 *Temp2 >= 0); 81 82 83 End; { hàm = true M1, M2 phía, ngược lại khác phía} II.8 Vị trí tương đối đường thẳng Cho điểm A, B, C, D Vị trí tương đối đường thẳng qua điểm AB qua điểm CD xác định sau: 84 85 - Tính hệ số A1, B1, C1 đường thẳng AB 86 - Tính hệ số A2, B2, C2 đường thẳng CD 87 - Tính d = 88 - Nếu D0 cắt 89 - Ngược lại 90 a1 b1 a2 b2 ; dx = −c1 b1 −c2 b2 ; dx = a1 c1 a2 c2 - Nếu (dx=0) and (dy=0) trùng - Ngược lại song song Function Pos2Li(var I:Point;A,B,C,D: Point): integer; 91 Var a1, b1, c1, a2, b2, c2:real; d, dx, dy: real; 92 Begin 93 94 95 Extract(A,B,a1, b1, c1); // tìm hệ số a1, b1, c1 Extract(C,D,a2, b2, c2); // tìm hệ số a2, b2, c2 96 d:=a1*b2- a2*b1; 97 dx:= c2*b1- c1*b2; 98 dy:= a1*c2- a2*c1; If (d = 0) then 99 If (dx= 0) and (dy= 0) then exit(0) // trùng 100 101 102 103 104 105 Else // d0 106 107 Begin 108 109 110 111 112 End; Else exit(-1) // song song I.x:=dx/d; I.y:=dy/d; exit(1); End; II.8 Xác định đoạn thẳng có giao hay không 113 Hai đoạn thẳng giao thỏa điều kiện: - Hai đường thẳng qua điểm phải cắt điểm I - Và I thuộc đoạn thẳng Cần lưu ý điều kiện thứ hai, có nhiều học sinh hay bỏ sót điều kiện 114 Function Intersect1(A,B,C,D: Point; var I:Point): boolean; 115 Begin 116 Exit((Pos2Li(I,A,B,C,D)=1) and PoInLi(I,A,B) and PoInLi(I,C,D); 117 End; III MỘT SỐ BÀI TOÁN CƠ BẢN VỀ ĐA GIÁC Một số định nghĩa 1.1 Đường gấp khúc Một đường gấp khúc mặt phẳng gồm dãy liên tiếp đoạn thẳng [A1,A2], [A2,A3],…, [Ak-1,Ak], đoạn thẳng gọi cạnh, đầu mút đoạn thẳng gọi đỉnh 1.2 Đa giác A1 Một đa giác đường gấp khúc khép kín tức điểm A k trùng với điểm 1.3 Đa giác tự cắt Một đa giác gọi tự cắt có hai cạnh không liên tiếp có điểm chung 1.4 Đa giác lồi Một đa giác lồi gọi lồi đa giác nằm phía đường thẳng qua cạnh Đa giác lồi đa giác không tự cắt 1.5 Định lý bao lồi Với tập hữu hạn M điểm mặt phẳng(có điểm không thẳng hàng) ta tìm tập H M cho H tập đỉnh đa giác lồi P mà điểm M thuộc đa giác Một số toán sở: 2.1 Tính diện tích đa giác S= 118 n ∑ ( xi+1 − xi )( yi+1 + yi ) // Công thức diện tích kiểu tích phân Function Area(P:polygon;n:longint):int64; 119 Var i:longint; S:real; 120 Begin 121 122 S:=0; For i:=1 to n S:= S+(P[i+1].x-P[i].x)*(P[i+1].y+P[i].y)/2; 123 124 125 126 End; Exit(abs(S)); Ở cần ý P[n+1] trùng với điểm P[1] Mặt khác cách tính học sinh lớp 11 chưa biết đưa công thức ta không cần chứng minh để khỏi sa vào dài dòng, sức học sinh 2.2 Kiểm tra đa giác lồi Kiểm tra dựa theo định nghĩa: 10 Procedure openf; Begin assign(input,fi); reset(input); assign(output,fo); rewrite(output) End; Procedure closef; Begin close(input); close(output) End; Procedure readf; var i: longint; Begin readln(n); for i:=1 to n read(p[i].x,p[i].y) End; Function dis(i,j: longint): double; Begin if (abs(i-j)=1) then exit(0); exit(sqrt((sqr(p[i].x-p[j].x)+sqr(p[i].y-p[j].y)))) End; Function d_p(i,j: longint): double; Var k: longint; Begin if abs(i-j)=c then exit; i:=d; j:=c; tg:=qx[d+random(c-d)+1]; repeat while qx[i]>tg inc(i); while qx[j] j; qsort(d,j); qsort(i,c); end; procedure xuli(i: longint); var j: longint; tg1,tg2:real; dem: longint; begin sl:=0; for j:=i+1 to n begin inc(sl); if x[j]=x[i] then qx[sl]:=vc else qx[sl]:=(y[j]-y[i])/(x[j]-x[i]); end; if sl>2 then qsort(1,sl); dem:=1; tg1:=qx[1]; for j:=2 to sl if abs(tg1-qx[j]) (khoảng cách i+1 xanh, khoảng cách i+1 đỏ đến O) - Kết là: max(khoảng cách i xanh, khoảng cách i đỏ đến O) Bài BCIRCLE Ngày lễ khai mạc World Cup 2018 đến, bọn trẻ từ khắp nơi giới cố gắng để tạo thành vòng tròn lớn lĩnh vực mà tượng trưng cho lòng khoan dung tình hữu nghị đa văn hóa Chúng thành công việc đưa vòng tròn hoàn hảo, bọn trẻ không thực hành nhiều nên chúng không thống việc phân phối đứng vòng tròn Bạn phát nhanh chóng, bạn muốn biết khoảng cách tối thiểu hai đứa trẻ • Dữ liệu vào: Từ file văn BCIRCLE.INP - Dòng chứa số N số đứa trẻ - N dòng tiếp theo, dòng chứa hai số thực làm tròn đến hai chữ số thập phân tọa độ đứa trẻ Chú ý: Tất điểm nằm vòng tròn • Kết quả: Ghi rafile văn BCIRCLE.OUT - Gồm dòng chứa số thực (làm tròn đến hai chữ số thập phân) khoảng cách Euclide hai đứa trẻ gần Biết rằng, khoảng cách Euclide điểm (�1, �1), (�2, �2) là: √(�1 − �2) + (�1 − �2) • Ví dụ: BCIRCLE.INP BCIRCLE.OUT 1.56 1.00 4.00 -0.50 -1.60 4.00 1.00 3.12 3.12 29 -1.60 -0.50 Giải thích: Những đứa trẻ điểm (−0.50, −1.60) (−1.60, −0.50) gần khoảng cách chúng 1.56 - Giới hạn: - ≤ N ≤ 105 - Tất tọa độ thuộc [−106 , 106 ] - 20% số test cases có N ≤ 103 Thuật toán: Nhiệm vụ để tìm hai điểm gần vòng tròn Dễ thấy hai điểm gần hai điểm liên chiều kim đồng hồ (hoặc ngược chiều) thứ tự chúng Có nhiều cách để tìm kiếm thứ tự ta xem xét cách sau: C1 Lấy P điểm (tức điểm có tọa độ y nhỏ nhất) Sắp xếp tất điểm góc tạo thành trục x đường thẳng xác định điểm với điểm P Để làm điều dễ dàng xếp tang góc (được tính theo công thức (T.y- p.y)/ (T.x – P.x), T điểm quan sát) Sau ta tính toán khoảng cách hai điểm liên tiếp mảng xếp in số nhỏ C2 Lấy P điểm tận bên trái (chẳng hạn điểm có tọa độ x nhỏ nhất) Xây dựng chuỗi “upper chain” “lower chain” theo cách sau: điểm T "trên" điểm P (tức có y lớn hơn) thêm vào “upper chain”, điểm T "bên dưới" điểm P thêm vào “lower chain” Sau đó, nên xếp điểm “upper chain” “lower chain” tọa độ x sau kiểm tra khoảng cách điểm liên tiếp chuỗi Tiếp theo tính toán khoảng cách hai điểm cuối chuỗi Chương trình type ma=array[0 5100] of real; var f:text; a,b:ma; m:Int64; n,i,j,u,v:longint; procedure Qsort(l,r:longint; var a:ma); var i,j:longint; g,tg:real; begin i := l; j := r; g := a[(l+r) div 2]; repeat 30 while a[i] < g inc(i); while a[j] > g dec(j); if i j; if l < j then Qsort(l,j,a); if i < r then Qsort(i,r,a); end; begin assign(f,'circle.inp'); reset(f); readln(f,n); for i:=1 to n begin readln(f,u,v); m:=0; m:=m+sqr(u)+sqr(v); a[i]:=sqrt(m); end; Qsort(1,n,a); for i:=1 to n begin readln(f,u,v); m:=0; m:=m+sqr(u)+sqr(v); b[i]:=sqrt(m); end; Qsort(1,n,b); close(f); assign(f,'circle.out'); rewrite(f); for i:=1 to n if (a[i]n then m:=m mod n else n:=n mod m; ucln:= m+n; end; procedure xuli; var kq:int64; i,x,y,tg:longint; begin kq:=0; for i:=1 to n begin x:=abs(a[i+1].x-a[i].x); y:=abs(a[i+1].y-a[i].y); inc(kq,ucln(x,y)); end; writeln(kq); end; BEGIN assign(input,fi); reset(input); assign(output,fo); rewrite(output); readln(n); for i:=1 to n readln(a[i].x,a[i].y); a[n+1].x:=a[1].x; a[n+1].y:=a[1].y; xuli; close(output); END Bài 8: Ruộng bậc thang 33 Ở vùng cao đất mặt để canh tác, tiến hành trồng trọt sườn đồi núi có đất màu, người ta phải bạt tam cấp để tạo thành vạt đất Khu vực đất dốc dùng để canh tác gọi ruộng bậc thang Hình ảnh khu ruộng bậc thang hình ảnh đẹp vùng cao khiến du khách nhà nhiếp ảnh đam mê tốn không phim ảnh Gia đình Hoàng có khu ruộng bậc thang bao quanh đồi chia thành khoang bậc thang, khoang trồng loại Khi nhìn từ cao xuống, ta thấy khoang bậc thang có hình dạng đa giác lồi lồng Ngoại trừ khoang chứa đỉnh đồi có biên đa giác lồi chứa đỉnh đồi, khoang lại xác định hai đa giác lồng nhau: đa giác có diện tích lớn gọi biên khoang đa giác có diện tích nhỏ gọi biên khoang Mỗi khoang có màu đặc trưng loại trồng khoang Vốn người say mê chụp ảnh, muốn có ảnh đẹp, Hoàng tìm cách thay đổi không k loại trồng k khoang để nhìn từ cao xuống thấy vùng màu có diện tích lớn Hoàng ghi nhận danh sách m đa giác lồi mô tả biên m khoang màu tương ứng chúng Do xuất, Hoàng để thông tin khoang danh sách bị xáo trộn, không liệt kê theo trình tự từ khoang đến khoang Yêu cầu: Cho biết thông tin danh sách mà Hoàng ghi nhận số nguyên k, tìm cách thay đổi không k loại trồng k khoang để nhìn từ cao xuống thấy vùng màu có diện tích lớn Dữ liệu: Vào từ file TFIELD.INP gồm: • Dòng đầu chứa hai số nguyên dương m, k (k ≤ m); Dòng thứ i số m dòng chứa thông tin khoang thứ i danh sách mà Hoàng ghi nhận bao gồm: o Đầu tiên số nguyên ni số đỉnh đa giác lồi mô tả biên khoang; o Tiếp theo số nguyên ci thể màu khoang (1 ≤ ci ≤ m); o Cuối ni cặp số nguyên, số có trị tuyệt đối không 109, tọa độ đỉnh đa giác Các đỉnh đa giác liệt kê theo thứ tự ngược chiều kim đồng hồ • Hai số liên tiếp dòng ghi cách dấu cách Kết quả: Ghi file TFIELD.OUT số thực diện tích vùng màu lớn sau thay đổi không k loại trồng k khoang (kết đưa với độ xác chữ số sau dấu chấm thập phân) Ràng buộc: 34 Có 40% số test ứng với 40% số điểm thỏa mãn điều kiện: m ≤ 10; k = 1; đa giác mô tả biên khoang hình chữ nhật; • Có 40% số test khác ứng với 40% số điểm thỏa mãn điều kiện: m ≤ 10; đa giác mô tả biên khoang tam giác; • Có 20% số test lại ứng với 20% số điểm thỏa mãn điều kiện: m, ni ≤ 1000 • Ví dụ: TFIELD.INP TFIELD.OUT 31 56.0 41001011 01 -2 -3 -3 5 -2 -1 -1 -1 -1 Thuật toán: xếp giảm dần đa giác theo diện tích (để tránh làm việc với số thực ta không nên chia tính diện tích) Duyệt đa giác từ vào trong, với đa giác ta tìm đa giác phía xa mà để thay đổi không k trồng 35 Bài 9: BALLGMVN (Nguồn: VOI 2014 - http://vn.spoj.com/problems/BALLGMVN/) Trong hội thi Ballgame, ban tổ chức chuẩn bị bàn lớn Trên mặt bàn có n bi xanh đánh số từ đến n n bi đỏ đánh số từ n + đến 2n Mỗi trận đấu, vận động viên chơi luân phiên Đến lượt chơi mình, Hùng cần tìm bi mà vị trí chúng thằng hàng cho số có hai bi đỏ bi xanh (khi ăn bi đỏ), có hai bi xanh bi đỏ (khi ăn bi xanh) Yêu cầu: Cho biết tọa độ mặt phẳng tọa độ Đề-các vị trí màu bi bàn, bạn giúp Hùng chọn bi để chơi Dữ liệu: Vào từ file BALLGMVN.INP gồm: • • • • Dòng đầu ghi số nguên dương n Dòng thứ i số n dòng ghi hai số nguyên hoành độ tung độ mặt phẳng tọa độ Đề-các vị trí đặt bi xanh với i Dòng thứ i số n dòng cuối ghi hai số nguyên hoàng độ tung độ mặt phẳng tọa độ Đề-các vị trí đặt bi đỏ với số n + i Hoàng độ tung độ không vượt 106, vị trí bi đôi phân biệt Kết quả: Ghi file BALLGMVN.OUT số viên bi mà Hùng cần chọn, chọn bi nào, ghi -1 Nếu có nhiều đáp án, ghi đáp án Ví dụ: BALLGMVN.INP BALLGMVN.OUT 124 11 22 49 33 20 100 Giới hạn • • • 30% số test có n

Ngày đăng: 17/10/2017, 09:31

Hình ảnh liên quan

I – BIỂU DIỄN CÁC ĐỐI TƯỢNG CƠ BẢN CỦA HÌNH HỌC I.1. Biểu diễn điểm, đoạn thẳng và đường thẳng - NHỮNG vấn đề cần lưu ý KHI GIẢI một số bài TOÁN HÌNH học TRONG lập TRÌNH

1..

Biểu diễn điểm, đoạn thẳng và đường thẳng Xem tại trang 3 của tài liệu.
II. THUẬT TOÁN GIẢI MỘT SỐ BÀI TOÁN HÌNH HỌC CƠ BẢN - NHỮNG vấn đề cần lưu ý KHI GIẢI một số bài TOÁN HÌNH học TRONG lập TRÌNH
II. THUẬT TOÁN GIẢI MỘT SỐ BÀI TOÁN HÌNH HỌC CƠ BẢN Xem tại trang 4 của tài liệu.
Xét các hình chữ nhật kích thước w×h, trong đó w, h– nguyên và w &gt; h. - NHỮNG vấn đề cần lưu ý KHI GIẢI một số bài TOÁN HÌNH học TRONG lập TRÌNH

t.

các hình chữ nhật kích thước w×h, trong đó w, h– nguyên và w &gt; h Xem tại trang 21 của tài liệu.
Bài 1. HÌNH CHỮ NHẬT - NHỮNG vấn đề cần lưu ý KHI GIẢI một số bài TOÁN HÌNH học TRONG lập TRÌNH

i.

1. HÌNH CHỮ NHẬT Xem tại trang 21 của tài liệu.

Từ khóa liên quan

Mục lục

  • PHẦN 1. MỞ ĐẦU

    • 1. LÝ DO CHỌN ĐỀ TÀI

    • 2. MỤC ĐÍCH CỦA ĐỀ TÀI

    • 3. ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI

    • 3. PHƯƠNG PHÁP NGHIÊN CỨU CỦA ĐỀ TÀI

  • PHẦN 2. NỘI DUNG

    • I – BIỂU DIỄN CÁC ĐỐI TƯỢNG CƠ BẢN CỦA HÌNH HỌC

      • I.1. Biểu diễn điểm, đoạn thẳng và đường thẳng

      • I.2. Kiểu dữ liệu số

    • II. THUẬT TOÁN GIẢI MỘT SỐ BÀI TOÁN HÌNH HỌC CƠ BẢN

      • II.1. Tính toán hoặc so sánh độ dài của đoạn thẳng, chu vi, diện tích các hình

    • III. MỘT SỐ BÀI TOÁN CƠ BẢN VỀ ĐA GIÁC

      • 1. Một số định nghĩa

        • 1.1. Đường gấp khúc

        • 1.2. Đa giác

        • 1.3. Đa giác tự cắt

        • 1.4. Đa giác lồi

        • 1.5. Định lý về bao lồi

      • 2. Một số bài toán cơ sở:

        • 2.1. Tính diện tích một đa giác

        • 2.2. Kiểm tra đa giác lồi

        • 2.3. Vị trí tương đối một điểm và đa giác

        • 2.4. Tìm bao lồi có chu vi nhỏ nhất

          • 2.4.2.Thuật toán Grahamscan

  • PHẦN 3. KẾT LUẬN

  • PHỤ LỤC: MỘT SỐ BÀI TẬP VÍ DỤ

Tài liệu cùng người dùng

Tài liệu liên quan