Skkn ứng dụng lý thuyết toán để giải các bài toán tin phần 3 hình học tính toán

25 6 0
Skkn ứng dụng lý thuyết toán để giải các bài toán tin   phần 3 hình học tính toán

Đ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

Microsoft Word NOI DUNG SKKN nam hoc 2013 2014 Tri doc 1 MMỤỤCC LLỤỤCC NỘI DUNG TRANG MỤC LỤC I PHẦN ĐẶT VẤN ĐỀ I 1/ Lý do chọn đề tài I 2/ Mục tiêu nghiên cứu I 3/ Nhiệm vụ nghiên cứu I 4/ Đối tượng[.]

M ỤC L ỤC NỘI DUNG TRANG MỤC LỤC I PHẦN ĐẶT VẤN ĐỀ I.1/ Lý chọn đề tài I.2/ Mục tiêu nghiên cứu I.3/ Nhiệm vụ nghiên cứu I.4/ Đối tượng nghiên cứu I.5/ Các phương pháp nghiên cứu II PHẦN NỘI DUNG II.1/ Lịch sử vấn đề nghiên cứu II.2/ Cơ sở lý luận đề tài II.3/ Thực trạng vấn đề nghiên cứu II.4/ Nội dung nghiên cứu kết nghiên cứu A/ NỘI DUNG NGHIÊN CỨU A.1) Lý thuyết hình học tính tốn A.2) Các tập áp dụng 14 A.3) Một số tập đề nghị 19 A.4) Kết luận 23 B/ KẾT QUẢ NGHIÊN CỨU 24 III PHẦN KẾT LUẬN 24 III.1/ Kết luận 24 III.2/ Tài liệu tham khảo 25 skkn I PHẦN ĐẶT VẤN ĐỀ I.1/ Lý chọn đề tài Để tiếp tục hoàn chỉnh chuyên đề bồi dưỡng HSG chuyên Tin “ỨNG DỤNG LÝ THUYẾT TOÁN ĐỂ GIẢI CÁC BÀI TỐN TIN”; qua q trình nghiên cứu, giảng dạy, tham khảo ý kiến đồng nghiệp, thấy hàng năm đề thi tin học khu vực Quốc gia có số tốn lập trình tin học đề cập nhiều đến yếu tố hình học, cụ thể hình học tính tốn Chính tơi tiếp tục chọn viết tiếp đề tài chuyên đề “ỨNG DỤNG LÝ THUYẾT TOÁN ĐỂ GIẢI CÁC BÀI TỐN TIN” (Phần 3: Hình học tính tốn) I.2/ Mục tiêu nghiên cứu Như biết, tốn học có ảnh hưởng lớn đến lĩnh vực sống Các tốn tin có thuật toán dựa sở lý thuyết toán học vững đem lại kết tốt nhiều so với thuật toán khác Giúp em học sinh có kiến thức tốt, tư tốt lập trình; hình học tính tốn vấn đề kỹ thuật lập trình có ứng dụng tư tốn học, cụ thể hình học mà người lập trình tin học cần phải biết xử lý I.3/ Nhiệm vụ nghiên cứu Trước hết thực đổi phương pháp giảng dạy Tin học làm cho học sinh sáng tạo tìm kết quả, lời giải hay “dạng toán tin có sử dụng tốn học”; giúp thân nắm vững lập trình, tư thuật tốn, kỹ thuật lập trình hình học tính tốn, đồng thời trao đổi học tập kinh nghiệm Quý Thầy Cô Tổ Tin học I.4/ Đối tượng nghiên cứu Trong nghiên cứu này, học sinh chọn em học lớp chuyên Tin học khối 10, 11, 12 học sinh bồi dưỡng chuẩn bị thi HSG cấp Tỉnh, cấp Quốc gia thuộc trường THPT Chuyên Tiền Giang số giáo viên đứng lớp dạy tin học trường THPT I.5/ Các phương pháp nghiên cứu skkn * Phương pháp suy luận, tổng hợp: kết hợp từ nhiều nguồn tài liệu tham khảo tác giả tra cứu mạng internet với đề thi Học sinh Giỏi rút kinh nghiệm, hệ thống lại kiến thức, mở hướng * Phương pháp trò chuyện – vấn: trao đổi tâm tình với nhiều học sinh giỏi để nắm tình hình việc giải tốn tin hình học * Phương pháp khảo sát: thân tham gia giảng dạy lớp chuyên tin, đội tuyển HSG, kỳ tập huấn, đề; tham khảo đồng nghiệp, quý Thầy Cô giảng dạy đội tuyển nhiều năm nên có nắm tình hình sử dụng phương pháp làm em học sinh * Phương pháp phân tích lý luận: phân tích giúp học sinh nắm thật rõ chất vấn đề, lựa chọn phương pháp giải cho phù hợp skkn II PHẦN NỘI DUNG II.1/ Lịch sử vấn đề nghiên cứu Trong năm liên tiếp dạy học sinh lớp chuyên tin, bồi dưỡng HSG lớp 10, 11, 12 đội tuyển thi HSG cấp Tỉnh, cấp Quốc Gia môn Tin học thân tham dự lớp “BỒI DƯỠNG TẬP HUẤN GIẢNG DẠY CHUYÊN ĐỀ MÔN CHUYÊN TIN HỌC THPT” nhiều năm Bộ GD&ĐT tổ chức Tôi nhận thấy kiến thức Tin học nâng lên rõ rệt Các giảng Thầy NGUYỄN THANH TÙNG, Thầy ĐỖ ĐỨC ĐƠNG, Thầy LÊ MINH HỒNG, tham khảo ý kiến đồng nghiệp chuyên dạy bồi dưỡng đội tuyển Tỉnh bạn, trường THPT Chuyên, tơi rút điều “KIẾN THỨC TỐN HỌC RẤT QUAN TRỌNG DẠY LẬP TRÌNH TRONG TIN HỌC” Được động viên khuyến khích q Thầy Cơ tổ, thầy LÊ NGỌC LINH, mạnh dạng tiếp tục chọn viết phần ba cho đề tài “Hình học tính tốn”; II.2/ Cơ sở lý luận đề tài Kết hợp giảng tài liệu tham khảo, kiến thức thân để phân tích, tổng hợp, hệ thống II.3/ Thực trạng vấn đề nghiên cứu Đa số học sinh chuyên tin ngại, sợ giải tốn tin hình học tốn; lúng túng q trình phân tích, tổ chức liệu, thuật tốn, kỹ thuật lập trình để tìm chất vận dụng kiến thức cách thích hợp II.4/ Nội dung nghiên cứu kết nghiên cứu A/ NỘI DUNG NGHIÊN CỨU A.1) Lý thuyết hình học tính tốn A.1.1) Kiến thức hình học A.1.1.1) Tọa độ a) Trục toạ độ  Trục toạ độ (trục) đường thẳng xác định điểm gốc O   vectơ đơn vị e Kí hiệu O; e      Toạ độ vectơ trục: u  (a)  u  a.e skkn    Toạ độ điểm trục: M (k )  OM  k e    Độ dài đại số vectơ trục: AB  a  AB  a.e   Chú ý: + Nếu AB hướng với e AB  AB   Nếu AB ngược hướng với e AB   AB + Nếu A(a), B(b) AB  b  a + Hệ thức Sa–lơ: Với A, B, C tuỳ ý trục, ta có: AB  BC  AC b) Hệ trục toạ độ  Hệ gồm hai trục toạ độ Ox, Oy vng góc với Vectơ đơn vị Ox, Oy   i , j O gốc toạ độ, Ox trục hoành, Oy trục tung      Toạ độ vectơ hệ trục toạ độ: u  ( x; y )  u  x i  y j     Toạ độ điểm hệ trục toạ độ: M ( x; y )  OM  x i  y j    Tính chất: Cho a  ( x; y), b  ( x; y ), k  R , A( x A ; y A ), B( xB ; yB ), C ( xC ; yC ) :       y  y + a  b   x  x    + b phương với a     + a  b  ( x  x  ; y  y )  + ka  (kx; ky )  k  R: x  kx vaø y  ky x y  (nếu x x y  0, y  0) + AB  ( xB  x A ; yB  y A ) x A  xB y y ; yI  A B 2 x x x y y y + Toạ độ trọng tâm G tam giác ABC: xG  A B C ; yG  A B C 3 x  kxB y  kyB + Toạ độ điểm M chia đoạn AB theo tỉ số k  1: xM  A ; yM  A  k  k   ( M chia đoạn AB theo tỉ số k  MA  k MB ) + Toạ độ trung điểm I đoạn thẳng AB: xI  A.1.1.2) Tích vơ hướng (tích chấm) a) Góc hai vectơ        Cho a, b  Từ điểm O vẽ OA  a , OB  b   AOB với 00   Khi  a, b    AOB  180 Chú ý:     +  a, b  = 900  a  b     +  a, b  = 00  a , b hướng     +  a, b  = 1800  a , b ngược hướng     +  a, b    b , a  skkn  a  b  A a O  b B b) Tích vô hướng hai vectơ       Định nghĩa: a.b  a b cos  a, b    2 Đặc biệt: a.a  a  a     Tính chất: Với a, b , c kR, ta có:        + a.b  b a ; a  b  c   a.b  a.c ;         ka  b  k  a.b   a  kb  ; a  0; a   a            a  b 2  a  a.b  b ; +  a  b   a  a.b  b ;       a  b   a  b  a  b        + a.b >   a, b  nhọn + a.b <   a, b  tù    a.b =   a, b  vng c) Biểu thức toạ độ tích vô hướng     Cho a = (a1, a2), b = (b1, b2) Khi đó: a.b  a1b1  a2 b2   cos(a , b )    a  a12  a22 ; a1b1  a2 b2 a12  a22 b12  b22 ;   a  b  a1b1  a2 b2   Cho A( x A ; y A ), B( xB ; yB ) Khi đó: AB  ( xB  x A )2  ( yB  y A )2 A.1.1.3) Tích hữu hướng (tích chéo)     Tích chéo hai vectơ u v , kí hiệu u  v số thực tính   tích độ dài hai vectơ u v nhân với sin góc xen hai vectơ Góc xen hai vecto góc định hướng, có số đo từ  tới  , số đo mang dấu dương   chiều quay từ u tới v chiều thuận (ngược chiều kim đồng hồ) mang dấu   âm chiều quay từ u tới v chiều nghịch (theo chiều kim đồng hồ)   6 Bằng cơng cụ đại số tuyến tính, người ta chứng minh cơng thức tích   chéo hai vecto u   xu , yu  v   xv , yv  sau:    x x u  v  xu yv  xv yu  u v yu yv skkn  xu xv   Từ ta suy y y  u v   cơng thức tính sin góc định hướng  hai vecto u   xu , yu  v   xv , yv  :   uv xu yv  xv yu sin      u v ( xu2  y2u )(x 2v +y2v tức giá trị tích chéo định thức ma trận    Về mặt hình học, giá trị tuyệt đối tích chéo u  v diện tích hình bình        hành OABC, O gốc tọa độ, OA  u , OC  v OB  u  v Tích chéo có ứng dụng quan trọng việc khảo sát chiều: Giả sử ta từ điểm A sang điểm B theo đường thẳng tiếp sang điểm C theo đường thẳng, đó:   - Tích chéo AB  BC số dương chỗ rẽ B “rẽ trái” (hay nói bẻ góc ngược chiều kim đồng hồ);   - Tích chéo AB  BC số âm chỗ rẽ B “rẽ phải”;   - Tích chéo AB  BC = có nghĩa ba điểm A, B, C thẳng hàng A C A CCW B CW B C A.1.1.4) Đường thẳng a) Vectơ phương đường thẳng  Vectơ u  đgl vectơ phương đường thẳng  giá song song trùng với    Nhận xét:– Nếu u VTCP  ku (k  0) VTCP  – Một đường thẳng hoàn toàn xác định biết điểm VTCP b) Vectơ pháp tuyến đường thẳng  Vectơ n  đgl vectơ pháp tuyến đường thẳng  giá vng góc với    Nhận xét: – Nếu n VTPT  kn (k  0) VTPT  – Một đường thẳng hoàn toàn xác định biết điểm skkn VTPT     – Nếu u VTCP n VTPT  u  n c) Phương trình tham số đường thẳng  Cho đường thẳng  qua M0 ( x0 ; y0 ) có VTCP u  (u1; u2 ) Phương trình tham số :  x  x  tu1   y  y0  tu2 (1) ( t tham số)  x  x  tu Nhận xét: – M(x; y)     t  R:  y  y  tu  – Gọi k hệ số góc  thì: + k = tan, với  =  xAv ,   90 +k= u2 , u1 với u1  d) Phương trình tắc đường thẳng  Cho đường thẳng  qua M0 ( x0 ; y0 ) có VTCP u  (u1; u2 ) Phương trình tắc : x  x0 y  y0  u1 u2 (2) (u1  0, u2  0) Chú ý: Trong trường hợp u1 = u2 = đường thẳng khơng có phương trình tắc e) Phương trình tổng qt đường thẳng PT ax  by  c  với a2  b2  đgl phương trình tổng quát đường thẳng Nhận xét: – Nếu  có phương trình ax  by  c   có:    VTPT n  (a; b) VTCP u  (b; a) u  (b; a)  – Nếu  qua M0 ( x0 ; y0 ) có VTPT n  (a; b) phương trình  là: a( x  x )  b ( y  y )  Các trường hợp đặc biệt: Các hệ số c=0 a=0 b=0 Phương trình đường thẳng  ax  by  by  c  ax  c  skkn Tính chất đường thẳng   qua gốc toạ độ O  // Ox   Ox  // Oy   Oy   qua hai điểm A(a; 0), B(0; b) (a, b  0): Phương trình : x y   a b (phương trình đường thẳng theo đoạn chắn)   qua điểm M0 ( x0 ; y0 ) có hệ số góc k: Phương trình : y  y0  k ( x  x0 ) (phương trình đường thẳng theo hệ số góc) f) Vị trí tương đối hai đường thẳng Cho hai đường thẳng 1: a1 x  b1y  c1  2: a2 x  b2 y  c2  Toạ độ giao điểm 1 2 nghiệm hệ phương trình: a1 x  b1y  c1   a2 x  b2 y  c2  (1)  1 cắt 2  hệ (1) có nghiệm  a1 b1  a2 b2  1 // 2 a1 b1 c1 (nếu a2 , b2 , c2  )   a2 b2 c2  hệ (1) vô nghiệm   1  2  hệ (1) có vơ số nghiệm  (nếu a2 , b2 , c2  ) a1 b1 c1 (nếu a2 , b2 , c2  )   a2 b2 c2 g) Góc hai đường thẳng  Cho hai đường thẳng 1: a1 x  b1y  c1  (có VTPT n1  (a1; b1 ) )  2: a2 x  b2 y  c2  (có VTPT n2  (a2 ; b2 ) )   (n , n ) (n1 , n2 )  900 ( 1 , 2 )       180  ( n1 , n2 ) ( n1 , n2 )  90   n1.n2 a1b1  a2 b2     cos(1 , 2 )  cos( n1 , n2 )     n1 n2 a12  b12 a22  b22 Chú ý:  1  2  a1a2  b1b2   Cho 1: y  k1 x  m1 , 2: y  k2 x  m2 thì: + 1 // 2  k1 = k2 + 1  2  k1 k2 = –1 h) Khoảng cách từ điểm đến đường thẳng  Khoảng cách từ điểm đến đường thẳng Cho đường thẳng : ax  by  c  điểm M0 ( x0 ; y0 ) d ( M0 , )  ax0  by0  c a2  b2  Vị trí tương đối hai điểm đường thẳng Cho đường thẳng : ax  by  c  hai điểm M ( xM ; yM ), N ( x N ; y N )   skkn – M, N nằm phía   (axM  by M  c )(ax N  by N  c )  – M, N nằm khác phía   (axM  by M  c )(ax N  by N  c )   Phương trình đường phân giác góc tạo hai đường thẳng Cho hai đường thẳng 1: a1 x  b1y  c1  2: a2 x  b2 y  c2  cắt Phương trình đường phân giác góc tạo hai đường thẳng 1 2 là: a1 x  b1y  c1 a12  b12  a2 x  b2 y  c2 a22  b22 A.1.1.5) Đa giác Đa giác đường gấp khúc khép kín Trong lập trình, đa giác lưu dãy đỉnh liên tiếp A1, A2, …,An Diện tích đại số đa giác khơng tự cắt xác định cơng thức: S  ( x1  x2 )( y1 +y )+(x -x )(y2 +y )+ +(x n -x1 )(y n +y1 ) S diện tích đa giác Đặc biệt, diện tích tam giác 1 aha  bhb  chc 2 1 = bc sin A  ca sin B  ab sin C 2 abc = 4R = pr S= = p( p  a)( p  b)( p  c)   AB  AC = = (công thức Hê–rông) ( xB  x A )( yC  y A )  ( xC  x A )( yB  y A ) A.1.1.6) Đường tròn Đường tròn (O; R) tập hợp điểm cách tâm O(x; y) khoảng cách R Đường trịn hồn tồn xác định ba số (x; y; R) với R > 10 skkn A.1.2) Các giải thuật hình học tin học A.1.2.1) Khai báo kiểu đối tượng Pascal Type TPoint = Record x, y: Float; End; TVector = Tpoint; A.1.2.2) Biểu diễn tuyến tính       Cho vecto a , b c Hãy tìm số thực p, q để c  pa  qb Hai số p, q tính cơng thức   c  b Dx p    ab D   a  c Dy q    ab D     Nếu D  a  b  có cách biểu diễn tuyến tính vecto c qua   hai vecto a b (nghiệm p, q nhất)    Nếu D = 0, hai vecto a b song song với nhau, đó:    + (p; q) = (Nan; Nan) c song song với a b    + (p; q) = (Inf; Inf) c không song song với a b Ta viết hàm: function SolveSLE (Const a, b, c: TVector) : TVector;    nhận vào ba vecto a , b , c trả vecto có tọa độ (x; y) tương ứng với hệ số (p; q) cần tìm Function SolveSLE (const a, b, c: Tvector) : Tvector; Var D: Float; Begin D := a >< b; Result := Vector((c >< b)/D, (a >< c)/D); End; 11 skkn A.1.2.3) Tìm giao điểm hai đường thẳng Trên mặt phẳng với hệ tọa độ Đề-các vuông góc cho hai đường thẳng với phương trình tổng qt: A1x + B1y + C1 = 0; A2x + B2y + C2 = 0; Bài toán đặt xác định giao điểm hai đường thẳng cho    Đặt u  (A1;A ), v  ( B1 ; B2 ), w  (C1 ; C2 ) , toán trở thành toán biểu    diễn vector w qua tổ hợp tuyến tính hai vector u v    w  x.u  y.v Việc lại biện luận cho giá trị giao điểm tìm được, lúc ta viết thêm hàm vector tốn tử tích chéo sau: Hàm vector Function Vector (x, y : Float) : Tvector; Begin Result.x := x; Result.y := y; End; Tích chéo hai vector Operator >< (const u, v : Tvector) : Float; Begin Result := u.x * v.y – u.y * v.x; End; A.1.2.4) Tìm giao điểm hai đoạn thẳng Tương tự, ta tìm giao điểm hai đoạn thẳng AB CD: - Viết phương trình tổng quát hai đường thẳng AB CD; - Tìm giao điểm M hai đường thẳng; - Kiểm tra M có nằm đoạn thẳng AB đoạn thẳng CD hay khơng Phương trình đường thẳng qua hai điểm phân biệt A(xA; yA); B(xB; yB) (x – xA) * (yB – yA) = (y – yA) * (xB – xA) 12 skkn A.1.2.5) Tìm giao điểm đoạn thẳng tia Tương tự, để tìm giao điểm đoạn thẳng AB tia CD, ta sử dụng phương pháp tương tự trên: Nếu M giao điểm đoạn thẳng AB tia CD tồn cặp số thực p, q, p  [0;1], q  [0; ) cho    AM  p AB    CM  qCD Áp dụng thuật toán trên, có điều sau tìm cặp số p, q, ta không kiểm tra p, q  [0;1] mà kiểm tra p  [0;1] q > A.1.2.6) Tìm diện tích đa giác Bài tốn: Tính diện tích đa giác (lồi lõm không tự cắt) gồm n đỉnh A[1], A[2], …, A[n] (n>2) Thuật toán: Ta giải tốn cách chia đa giác thành n − tam giác tính tổng diện tích tam giác Tuy nhiên phương pháp phức tạp, ta làm cách khác sau: chia đa giác thành hình thang cách chiếu cạnh xuống trục hồnh (hoặc trục tung) Hình thang xác định cạnh A[i]A[i+1] có diện tích Abs(S) với: S = (A[i].x - A [i+1].x).(A[i].y + A[i+1].y) /2; sau gán đỉnh A[n+1] = A[1], ta tính diện tích tồn phần đa giác sau: Procedure dientich; Begin S: = 0; For i: =1 to n S := S + (A[i].x - A [i+1].x).(A[i].y + A[i+1].y); S: = (1/2) * Abs(S); End; 13 skkn A.2) Một số tập áp dụng I Dạng mối quan hệ yếu tố hình học Bài Kiểm tra tính lồi lõm đa giác Trong mặt phẳng toạ độ có n điểm có toạ độ tương ứng (x1, y1), (x2, y2) ,…, (xn, yn) Biết n điểm cho theo thứ tự tạo thành đỉnh đa giác không tự cắt Yêu cầu: kiểm tra đa giác lồi hay lõm Dữ liệu vào: ghi file dagiac.inp dòng đầu ghi số n (n>2), n dòng tiếp theo, dòng thứ i ghi hai số thực theo thứ tự hoành độ tung độ đỉnh thứ i-1 đa giác Dữ liệu ra: ghi vào file dagiac.out gồm số 1, ghi đa giác lõm ghi đa giác lồi Thuật toán: Gọi diện tích đa giác S0 Ta so sánh S0 với Si, Si diện tích đa giác thu từ đa giác ban đầu sau bỏ đỉnh thứ i (i=1, 2,…, n) Nếu $ i cho Si > S0 đa giác cho lõm (tại đỉnh thứ i), ngược lại đa giác cho lồi Chương trình: type read(f,a[i].x); read(f,a[i].y); end; close(f); a[n+1]:=a[1]; {Tinh dien tich da giac} s0:=0; for i:=1 to n s0:=s0+(a[i+1].xa[i].x)*(a[i+1].y+a[i].y); s0:=abs(s0)/2 diem=record x,y:real; end; var a:array [1 100] of diem; n,vt:integer; s0,s1:real; procedure init; var f:text;i:byte; begin assign(f,’dagiac.inp’); reset(f); readln(f,n); {while not eof(f) do} For i:= to n begin end; Procedure Inkq(i:byte); var f:text; begin assign(f,’dagiac.out’); 14 skkn rewrite(f); write(f,i); close(f); s1:=s1+(b[j+1].xb[j].x)*(b[j+1].y+b[j].y); s1:=abs(s1)/2; if s1>s0 then begin inkq(0); halt end; end; inkq(1); End; begin init; resolve; end end; Procedure resolve; var b: array [1 50] of diem; i,j,k:byte; Begin for i:=1 to n begin for j:=1 to i-1 b[j]:=a[j]; for j:=i+1 to n+1 b[j-1]:=a[j]; s1:=0; for j:=1 to n-1 Bài Chia đa giác (đề thi HS giỏi quốc gia lớp 12, bảng B, năm 1999- 2000) Trong mặt phẳng toạ độ có n điểm có toạ độ tương ứng (x1, y1), (x2, y2),…,(xn, yn) Biết n điểm cho theo thứ tự tạo thành đỉnh đa giác không tự cắt Yêu cầu: chia đa giác cho thành hai đa giác cạnh nối hai đỉnh không kề cho diện tích chúng chênh lệch Dữ liệu vào: ghi file dagiac.inp: dòng đầu ghi số n (n>3), n dòng tiếp theo, dòng thứ i ghi hai số thực theo thứ tự hoành độ tung độ đỉnh thứ i-1của đa giác Dữ liệu ra: ghi vào file dagiac.out gồm hai số nguyên dương số thứ tự hai đỉnh nối cho thoả mãn điều kiện đầu Thuật toán: Ta đưa thuật toán đơn giản sau: thử tìm cách chia ghi nhận lại cách chia tốt Dễ thấy độ phức tạp thuật toán trường hợp O(n3) Chương trình: type diem = record x,y:real; end; 15 skkn var a:array [1 100] of diem; n,vt1,vt2:integer; s0,s1,del:real; procedure init; var f:text;i:byte; begin assign(f,’dagiac.inp’); reset(f); readln(f,n); for i:= to n begin read(f,a[i].x); read(f,a[i].y); end; close(f); a[n+1]:=a[1]; s0:=0; for i:=1 to n s0:=s0+(a[i+1].xa[i].x)*(a[i+1].y+a[i].y); s0:=abs(s0)/2; del:=s0; end; Procedure resolve; var b:array [1 50] of diem; i,j,k,h:byte; f:text; Begin for i:=1 to n-2 begin for h:=i+2 to n-1 begin k:=0; for j:= i to h begin inc(k); b[k]:=a[j]; end; b[k+1]:=b[1]; s1:=0; for j:=1 to k s1:=s1+(b[j+1].xb[j].x)*(b[j+1].y+b[j].y); s1:=abs(s1)/2; if del>abs(2*s1-s0) then begin vt1:=i; vt2:=j; del:=abs(2*s1-s0); end; end; end; assign(f,’dagiac.out’); rewrite(f); write(f,vt1,’ ’,vt2); close(f); End; begin init; resolve; end Bài Cho đa giác điểm Hãy cho biết điểm cho có thuộc đa giác hay khơng (điểm thuộc cạnh đa giác coi thuộc đa giác) Dữ liệu vào: n (số đỉnh đa giác) x1, y1 … xi, yi (là tọa độ đỉnh đa giác theo chiều kim đồng hồ) skkn xn yn x0, y0: tọa độ điểm cần xét Dữ liệu ra: 'Thuộc đa giác' 'Khơng thuộc đa giác' Thuật tốn: - Qua điểm A cần xác định, dựng tia Ax’ cho Ax’//Ox - Xác định số giao điểm tia Ax’ với cạnh đa giác - Xét số giao điểm + lẻ: điểm A thuộc đa giác + chẵn: điểm A không thuộc đa giác  Đặc biệt hóa a Chúng ta xét trường hợp đặc biệt Ta thay 'đa giác' tam giác Khi xét tam giác, nảy 'ý tưởng' khác từ nhận xét sau: Xét điểm M thuộc ABC thì: SABC = SMAB + SMBC + S MAC Cịn M khơng thuộc ABC thì: SABC < SMAB + SMBC + S MAC Như vậy, với tam giác, ta có giải thuật sau: - Tính SABC {có thể dùng công thức Herong hay công thức:   AB  AC S= } b Cho tứ diện Hãy cho biết tâm hình cầu ngoại tiếp tứ diện nằm hay tứ diện II Dạng lớp tốn diện tích Tính diện tích đa giác cho trước Đây toán quen thuộc, cần nhớ để vận dụng toán khác Bài toán diện tích phủ: Cho số hình chữ nhật, tính diện tích mà hình chữ nhật phủ VD: - Tính SMAB + SMBC + S MAC =S’ skkn - Xét: + SABC = S’ → M thuộc ABC + SABC ≠ S’ → M không thuộc ABC Tổng qt hóa tốn 2: Bây giờ, thử tổng quát toán từ 'tam giác' lên 'tứ diện' xem sao: {Các tọa độ điểm có dạng (x,y,z)} Chúng ta xuất phát từ nhận xét: - M thuộc ABCD VABCD = VMABC + VMBCD +VMCDA + VMDAB - M không thuộc ABCD VABCD < VMABC + VMBCD +VMCDA + VMDAB Chúng ta hồn tồn tính dễ dàng thể tích tứ diện cơng thức: Chính thế, giải thuật trở nên đơn giản hơn: - Tính V’ = VMABC + VMBCD +VMCDA + VMDAB - Xét: + Nếu V’=V suy M thuộc tứ diện + Nếu V’ ≠ V suy M không thuộc tứ diện Qua toán trên, bạn tham khảo toán tổng hợp sau: a Cho đa giác mặt phẳng Đa giác lõm Hãy cho biết số giao điểm với đa giác khác (đa giác lồi) VD: b Cho tứ diện Hãy cho biết tâm hình cầu ngoại tiếp tứ diện nằm hay tứ diện skkn A.3) Một số tập đề nghị Bài 1: Diện tích phủ tam giác Trên mặt phẳng cho N tam giác xác định toạ độ ba đỉnh (x1i, y1i), (x2i, y2i), (x3i, y3i) (i=1,2 ,N) Tất toạ độ số nguyên Cần tìm diện tích phần mặt phẳng bị phủ tam giác Giả thiết tất tam giác không suy biến (nghĩa đỉnh tam giác ba điểm phân biệt không nằm đường thẳng) Input: File văn TAMGIAC.INP  Dòng ghi số nguyên dương N (N≤10)  Dòng thứ i N dòng chứa số nguyên x1i, y1i, x2i, y2i, x3i, y3i xác định tam giác thứ i (i=1,2, ,N) Các số ngun có giá trị tuyệt đối khơng vượt q 1000 Output: Ghi file TAMGIAC.OUT số giá trị diện tích cần tìm với chữ số phần thập phân Ví dụ: TAMGIAC.INP TAMGIAC.OUT 2.00 002012 002011 Bài 2: Đa giác Cho N đa giác lồi thoả mãn tính chất sau: - Với đa giác ln có đa giác mà điểm nằm đa giác - Các cạnh chúng khơng có điểm chung Bài tốn đặt là: Với đa giác i, có đa giác N đa giác nói bao (i nằm đa giác)? Dữ liệu vào: Vào từ file văn DAGIAC.INP - Dòng ghi số tự nhiên N (3N10000) skkn - Dịng thứ i+1 ghi thơng tin đa giác thứ i, bao gồm: Số Si số đỉnh đa giác; Si cặp số nguyên hoành độ tung độ đỉnh đa giác Các số dịng cách dấu cách Dữ liệu ra: Ghi file văn DAGIAC.OUT gồm N dòng, dòng thứ i ghi số lượng đa giác bao đa giác i Ví dụ: DAGIAC.INP DAGIAC.OUT 4 1 15 15 8 493964643 11 11 7 3848568 Bài 3: Chia đất Một người cha để lại mảnh đất có hình dạng đa giác lồi làm thừa kế cho hai người Trong di chúc ơng u cầu hai người phải chia mảnh đất thành hai phần có diện tích theo đường ranh giới thảng dọc theo phương Nam - Bắc Bạn người giao giúp hai người thực di chúc Hãy viết chương trình tìm cách chia Giả sử mảnh đất đa giác lồi với đỉnh A1A2 An nằm mặt phẳng toạ độ trục Oy nằm theo hướng Nam - Bắc, Ox theo hướng Tây - Đơng Input: Cho file CHIADAT.INP  Dịng ghi N số đỉnh đa giác (N≤5000)  Trong N dòng tiếp theo, dòng thứ i ghi hai số nguyên xi, yi hoành độ tung độ điểm thứ i số N đỉnh đa giác (các đỉnh đa giác liệt kê theo chiều xuôi ngược kim đồng hồ) Output: Ghi file văn CHIADAT.OUT số thực x0 với ý nghĩa đường ranh giới dùng để chia đất đường thẳng x=x0 (x0 viết với chữ số phần thập phân) Ví dụ: CHIADAT.INP CHIADAT.OUT 1.0000 skkn ... TOÁN ĐỂ GIẢI CÁC BÀI TỐN TIN? ?? (Phần 3: Hình học tính tốn) I.2/ Mục tiêu nghiên cứu Như biết, tốn học có ảnh hưởng lớn đến lĩnh vực sống Các tốn tin có thuật toán dựa sở lý thuyết toán học vững... thi tin học khu vực Quốc gia có số tốn lập trình tin học đề cập nhiều đến yếu tố hình học, cụ thể hình học tính tốn Chính tơi tiếp tục chọn viết tiếp đề tài chuyên đề ? ?ỨNG DỤNG LÝ THUYẾT TOÁN ĐỂ...I PHẦN ĐẶT VẤN ĐỀ I.1/ Lý chọn đề tài Để tiếp tục hoàn chỉnh chuyên đề bồi dưỡng HSG chuyên Tin ? ?ỨNG DỤNG LÝ THUYẾT TOÁN ĐỂ GIẢI CÁC BÀI TỐN TIN? ??; qua q trình nghiên cứu,

Ngày đăng: 07/02/2023, 18:08

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

Tài liệu liên quan