Hôm nay bỗng có hứng lục lại một thời đam mê với "em yêu Casio 570ES" và vòng lặp đặc biệt.
Để kiểm tra máy bạn có thể thực hiện được những vòng lặp sau hay không, trước tiên kiểm tra thử xem bạn có nhấn được thế này không đã:
$$A \to A : A \to A $$
Alpha_A Shift_RCL_A _$\triangleleft$ Alpha_: Alpha_A Shift_RCL_A
Mình không có điều kiện để kiểm tra, nhưng các dòng máy MS không thể sử dụng được, những máy màn hình hiển thị ký hiệu khoa học như ES thì sử dụng được. Chắc các máy của Vinacal cũng thế.
Xét dãy cho bởi công thức :
$$u_1=1\;\;, u_{n}=nu_{n-1}+1 \;\;, \forall \;n>1 $$
Trong các sách hướng dẫn về MTBT, vòng lặp tính dãy thường sử dụng là:
A=A+1:B=A$\times$B+1 sau đó nhấn CALC và nhập A=1 , B=1
Ưu điểm của vòng lặp là các bước lập trình vòng lặp rất ít thao tác, tuy nhiên, các bước bấm phím = rất bhiều, hơn nữa, máy có bước hiện A? để nhập A vì ta đang sử dụng chức năng giải phương trình để thực hiện vòng lặp, bước này rất nhiền và dễ gây nhầm lẫn. Quan trọng nhất, giả sử cần tính $u_{50} $, ta phải nhấn tất cả 195 dấu = kể từ sau khi nhấn CALC. Nếu tính $u_{100}$ chẳng hạn, sẽ cần tới số lượng nhấn dấu = rất lớn, trong đó, ta đã tiêu phí cho A? , B?, C?, D?... gần một nửa thời gian. Xét về khía cạnh sinh học, với vòng lập lớn đến thế, giả sử giới hạn 1 phút cho việc tính $u_{100}$ (cần bấm 395 phím = sau CALC), chắc chắn trong 10 người thì có tới ít nhất 5 người tính sai, vì bấm qua $u_{101},u_{102}$...
Sau đây, ta sẽ sử dụng phép gán giá trị làm cơ sở cho vòng lặp tối ưu thời gian hơn.
A+1$\to $A :AB+1$\to$ B
Để nhấn được như thế, sau bước gán A+1$\to$A, nhấn $\triangleleft$ để quay về màn hình nhập, nhấn tiếp Alpha_: và B+1$\toB . Sau thao tác này, tự động sẽ chuyển qua màn hình hiện kết quả , nhấn AC và $\triangleleft$ để quay về màn hình nhập.
Nhấn CALC , nhập A=1,B=1 , sau đó màn hình hiện lỗi Syntax Error, tất nhiên sẽ bị lỗi cú pháp, vì phép gán không dùng được với phép thế giá trị (CALC) và Solve (Shift_CALC) .
Nhấn $\triangleleft$ để quay về màn hình nhập, lúc này chỉ việc nhấn dấu = , số lần nhấn dấu = rất ít, vì ta đã lược bỏ phần dư là A?, B?,C?... , hơn nữa, màn hình hiện A+1$\to$A chính là giá trị chỉ số $n$, dấu = lần nữa sẽ hiện AB+1$\to$B chính là $u_n$, không thể nào nhầm lẫn được. Với việc tính $u_{50}$, sau khi hoàn thiện bước nhập (sau lỗi Syntax Error) số dấu = cần bấm là 98 , tính $u_{100}$ cần 198 phím = sau Syntax Error . Rất tiết kiệm thời gian !
Nhược điểm dễ thấy là bước nhập vòng lặp khá phức tạp và dài hơn.
Kinh nghiệm của mình, thay vì sử dụng phím ALpha_A , ALpha_B.... thì ta sử dụng RCL_A, RCL_B... thao tác sẽ nhanh hơn và ít bị vướng hơn.
Trong hai vòng lặp, nếu lỡ tính sai, nhấn AC_$\triangleleft$ để quay về màn hình nhập và tiếp tục CALC.
Ví dụ khác, cho dãy số có công thức:
$u_1=1,u_2=2,u_3=4 \;, u_n=nu_{n-1}+n^2u_{n-2}+(-1)^nu_{n-3} \;\;, \forall n>3 $
Lập quy trình bấm phím tính $u_{13}$
Sử dụng vòng lặp sử dụng phép gán, ta phải nhập:
A+1$\to$A : AB+A^2C+(-1)^AD$\to$X : C$\to$B: D$\to$C : X$\to$D
Nhấn CALC và nhập A=3, B=1,C=2,D=4 ,X bằng bao nhiêu cũng được . Sau lỗi Syntax Error , quay về màn hình nhập, nhấn = tới khi xuất hiện A+1$\to$A và giá trị tại màn hình là 13 , nhấn tiếp sẽ hiện kết quả $u_{13}$ . Kết quả: -1052774114 .
Sử dụng vòng lặp thay giá trị.
A=A+1:X=AB+A^2C+(-1)^AD:B=C:C=D:D=X
Nhấn CALC và nhập A=3, B=1,C=2,D=4 .
Vòng lặp kiểm tra một số nguyên tố có dòng thông báo.
Thao tác dưới đây thực hiện trên máy CASIO fx-570ES
Trước tiên, nói đôi nét về hàm Rnd trên máy.
Thử nhấn $\sqrt{2}$ , sau đó nhấn Shift_0 (Rnd)_Ans_= , nhấn Ans^2_= , kết quả không phải là 2, mà là 1.999999999
Tại sao vậy? Vì chức năng hàm Rnd là lấy kết quả Ans là số hiển thị trên màn hình, do đó, tất nhiên kết quả đã làm tròn gần đúng, do vậy khi tính ngược lại, kết quả không còn chính xác nữa.
Lợi dụng chức năng này, ta sẽ xây dựng vòng lặp kiểm tra một số nguyên tố, có cả dòng thông báo kết quả.
Giả sử cần kiểm tra số 112013 có phải số nguyên tố ?
Trước tiên, cài hiển thị số chữ số thập phân sau dấu . , nhấn Shift_Mode_6 (Fix)_0 (không hiện số thập phân nào sau dấu .)
Nhập $\sqrt{112013}$ , bấm = , màn hình hiện 335 .
Nhập A-1$\to$A : 112013-Rnd(112013$\div$A)$\times$A : 0$\div$Ans . Nhấn CALC , cho A=336 , nhấn = , màn hình hiện Syntax Error , nhấn $\triangleleft$ để quay về màn hình nhập. Giờ thoải mái nhấn = mà không cần nhìn màn hình, đến khi hiện chữ Math Error (có kết quả ) , nhấn AC , nhấn RCL_A để hiện giá trị hiện thời của A , nếu A=1 thì số kiểm tra là số nguyên tố, nếu A>1 thì số kiểm tra là hợp số !
Ở đây, với số 112013 thì sau màn hình thông báo có kết quả (Math Error) , kết quả A=320, tức 112013 không phải là số nguyên tố !
Thật ra, vòng lặp trên để tiện một điều là ta không cần nhìn vào màn hình, thoải mái làm việc riêng tùy thích trong khi trong một tay đang nhấn phím = (để kiểm tra số lớn) , để tiện hơn, rút ngắn thời gian kiểm tra, ta sử dụng vòng lặp khác đi chút xíu.
Nhập : A+1$\to$A : 112013-Rnd(112013$\div$A)$\times$A : 0$\div$Ans
Nhấn CALC và cho A=1 . Ta sẽ nhấn phím = cho tới khi màn hình hiện Math Error hoặc lúc này A>335 . Màn hình Math Error khi A=11 <335 , do đó, số 112013 là hợp số !
Kiểm tra với số 2011.
Bấm $\sqrt{2011}$_= , màn hình hiện 45
Nhập : A+1$\to$A : 112013-Rnd(112013$\div$A)$\times$A : 0$\div$Ans
CALC , cho A=1 . Sau một loạt phím = cho tới khi A nhận giá trị lớn hơn 45 nhưng vẫn không có lỗi Math Error, do đó 2011 là số nguyên tố !
Vòng lặp kiểm tra một số nguyên tố với việc sử dùng hàm Rnd còn rất hữu ích trong nhiều bài toán khác.
Ví dụ tiêu biểu: Câu 5 trong đề này
Lập quy trình bấm phím tìm số tự nhiên $n$ nhỏ nhất sao cho $2^8+2^{11}+2^n$ là số chính phương.
Ta sử dụng vòng lặp sau:
A+1$\to$A : $\sqrt{2^8+2^{11}+2^A}-\text{Rnd}(\sqrt{2^8+2^{11}+2^A})$: 0$\div$Ans
Nhấn CALC và cho giá trị ban đầu A=-1 , nhấn = , nhấn $\triangleleft$ và nhấn = tới khi hiện Math Error
Nhấn RCL_A để hiện giá trị của A, đó chính là giá trị n nhỏ nhất cần tìm !
Kết quả $n=12$
Để thoát khỏi chế độ làm tròn (Fix) , nhấn Shift_Mode_8 (Norm) _2
Và còn nhiều ứng dụng khác nữa của hàm Rnd , hy vọng các bạn sẽ tự sáng tạo cho mình một vòng lặp riêng.
P/s: dường như những sáng tạo thời PT tập trung chủ yếu ở lớp 11. Lớp 10 thì chưa đủ trình, 12 thì...lý do thi ĐH @@. Giá như việc thi ĐH là cái gì đó nhỉnh hơn thi học kỳ tí xíu thì sự sáng tạo ở năm 12 và nói chung của học sinh không thua kém sinh viên! Trẻ trâu lỳ lợm, sức khỏe, liều lĩnh thì nào sợ ai
Bài viết đã được chỉnh sửa nội dung bởi phudinhgioihan: 27-12-2012 - 17:17