Bài toán đèn nhấp nháy

Chia sẻ bởi Tôn Nữ Bích Vân | Ngày 14/10/2018 | 20

Chia sẻ tài liệu: Bài toán đèn nhấp nháy thuộc Tư liệu tham khảo

Nội dung tài liệu:

Bài toán "đèn nhấp nháy"
Ta bắt đầu bằng bài toán trong chương trình "Đường lên đỉnh olimpia".
Bài toán 1. Một dãy gồm 10 bóng đèn được đánh số từ 1 đến 10 ở trạng thái tắt. Người ta thay đổi trạng thái các bóng đèn thẻo qui tắc sau đây.
Lần 1: thay đổi trạng thái tất cả các bóng đèn. Lần 2: thay đổi trạng thái các đèn có số hiệu chia hết cho 2. Lần 3: thay đổi trạng thái các bóng đèn có số hiệu chia hết cho 3. Cứ như vậy cho đến lần thứ 10 thì thay đổi trạng thái các bóng đèn có số hiệu chia hết cho 10.
Hỏi những bóng đèn có số hiệu nào còn sáng?
Giải. Khi thực hiện việc thay đổi trạng thái, một số bóng đèn tắt, một số khác sáng. Do đó trên dãy đèn đã cho trở thành dãy đèn nhấp nháy.
Trước hết ta nhận xét rằng, sau 10 lần thay đổi trạng thái như bài ra, những bóng đèn có số lẻ lần thay đổi sẽ là bóng đèn còn sáng. Ký hiệu S[k] là tập hợp các sối, 1<=i<=1, sao cho i là bội của k. Khi đó số lần k sẽ thay đổi trạng thái các bóng đèn có số hiệu i thuộc S[k], hay k là ước của i. Do đó số lần thay đổi tạng thái của bóng đèn i bừng các ước số T(i) của i.
Ta có thể giải bằng toán học như sau. Ta đã biết rằng, nếu:
+i=P1a1...pkak, trong đó p1,...,pk là các số nguyên tố khác nhau; thì T(i)=(a1+1)...(ak+1). Do đó nếu i là số chính phương thì T(i) lẻ, còn các trường hợp khác T(i) chẵn. Suy ra các bóng đèn có số hiệu 1, 4, 9 còn sáng. Các bóng đèn khác bị tắt.
+Ta có thuật toán như sau.
-Với mỗi i, 1<= i<= 10 đặt T(i)=0
-Xét tất cả k, 1<= k<= i, nếu k là ước của i thì T(i)=T(i)+1
-Nếu T(i) lẻ thì đèn T(i) sáng, nếu T(i) chẵn thì đèn T(i) tắt.
1.Rõ ràng là với số lượng bóng đèn n lớn hơn 10 rất nhiều thì giải bằng toán học không thể xác định được ngay số hiệu bóng đèn còn sáng. Khi đó nhờ cách giải quyết trực tiếp trên máy tính ta sẽ nhanh chóng xác định được số hiệu bóng đèn còn sáng.
Hơn nữa, nếu số lần thay đổi trạng thái là m bất kì thì cách giải 2 càng thuận tiện hơn.
Các bạn tự lập chương trình giải bài toán 1 với n,m và trạng thái ban đầu của dãy bóng đèn là tuỳ ý. Bạn có thể tham khoả thêm thuật giải bài toán 2.
Ta chuyển sang giải bài toán " đèn nhấp nháy" là bài toán ra trong kì thi Tion học quốc tế lần thứ 10 (năm 1998 tại Bồ Đào Nha)
Bài toán 2. Đèn cho ngày hội (PARTY)
Có N đèn màu đánh số tùe 1 đến N và 4 nút thay đổi trạng thái của chúng. ấn nút 1 thay đổi trạng thái các đèn; ấn nút 2 thay đổi trạng thái các đèn có số hiệu lẻ; ấn nút 3 thau đổi trạng thái đèn có số hiệu chẵn; ấn nút 4 thay đổi các đèn có số hiệu dạng 3k+1 (k>=0);
Có một máy đếm C để đếm tổng số các lần ấn nút trên. Ban đầu, tất cả ác đèn đều sáng và C chỉ 0.
Yêu cầu: Cho giá trị C và trạng thái cuối cùng của một số đèn. Hãy lập chương trình xác định tất cả các trạng thái ( có thể có) cuối cùng của N đèn tương ứng với các thông tin đã cho.
Dữ liệu vào: Tệp PARTY.IN chứa 4 dòng. Dong 1 cho số N. Dòng 2 cho giá trị của C. Dòng 3 và 4 cho danh sách các đèn có trạng thái cuối cùng tương ứng lad sáng hay tắt. Số hiệu các đèn trong mỗi danh sách cách nhau một dấu cách và kết thúc bởi số -1. Ví dụ tệp PARTY.IN có dạng
10
1
-1
7
-1
ở đây số đèn là 10, chỉ ấn 1 nút và ở trạng thái cuối cùng đèn 7 tắt.
Dữ liệu ra: Tệp PARTY.OUT chứa tất cả các trạngk thái cuối cùng có thể có (khác nhau) của các đèn. Mỗi trạng thái ghi trên 1 dòng gồm N kí tự 0 và 1, trong đó 0 ứng với đèn tắt, còn 1 là đèn sáng. Thứ tự các dòng tuỳ ý.
Với dữ liệu vào như trên tệp PARTY.Out có dạng.
0000000000
0110110110
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Tôn Nữ Bích Vân
Dung lượng: 41,50KB| Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)