Thuat toan Doomsday

Chia sẻ bởi Trần Quang Tiến | Ngày 26/04/2019 | 41

Chia sẻ tài liệu: Thuat toan Doomsday thuộc Tin học 12

Nội dung tài liệu:

Thuật toán Doomsday



Để biết một ngày nào đó trong năm là thứ mấy thì bạn làm thế nào? Có lẽ bạn sẽ cần một quyển lịch để dò tìm. Tuy nhiên, không cần đến lịch, tôi vẫn có thể tính được thứ của bất kỳ ngày nào trong bất cứ năm nào.





Giới thiệu:
Để biết một ngày nào đó trong năm là thứ mấy thì bạn làm thế nào? Có lẽ bạn sẽ cần một quyển lịch để dò tìm. Tuy nhiên, không cần đến lịch, tôi vẫn có thể tính được thứ của bất kỳ ngày nào trong bất cứ năm nào. Bạn có nghĩ tôi “xạo” không ? Bạn hãy theo dõi cách tính thứ của một ngày bất kỳ theo phương pháp của tiến sĩ John Horton Conway (1), một nhà toán học nổi tiếng, rồi bạn sẽ thấy những gì tôi nói ở trên là không sai. Cách tính này do tiến sĩ Conway phát minh vào những năm 1970, được coi là phương pháp đơn giản và dễ nhớ nhất so với các cách tính thứ khác (2).
Doomsday của một năm là gì?:
Trước tiên, bạn cần biết về khái niệm Doomsday. Doomsday của một năm là ngày cuối cùng của tháng hai, tức là ngày 28/2 ở năm thường và 29/2 ở năm nhuận (3). Ví dụ như Doomsday của năm 2004 (năm nhuận) là chủ nhật 29/2.
Khi biết được Doomsday, bạn sẽ tính được thứ của các ngày khác trong tháng hai bằng cách lấy Doomsday làm mốc và tính ngược lại từng tuần. Chẳng hạn như để biết ngày 14/2/2004 là thứ mấy, bạn làm như sau: 29-7=22, 22-7=15, ngày 22/2 và 15/2 đều là chủ nhật, như vậy 14/2 là thứ bảy.
Cách tính đối với những tháng chẵn:
Bạn đã tính được thứ của các ngày trong tháng hai, còn những tháng khác thì sao? Trước tiên, chúng ta nói về những tháng chẵn (các tháng 4, 6, 8, 10, 12). Đối với các tháng chẵn này, các ngày sau sẽ có thứ trùng với Doomsday: 4/4, 6/6, 8/8, 10/10, 12/12. Thật dễ nhớ phải không bạn? Trong năm 2004, các ngày trên đều là chủ nhật (trùng với thứ của ngày 29/2). Áp dụng cách tính giống tháng hai, bạn sẽ tính được thứ của bất cứ ngày nào trong các tháng chẵn.
Cách tính đối với những tháng lẻ:
Đối với những tháng lẻ thì tính như thế nào? Cách tính cũng tương tự như trên, tuy nhiên chúng ta cần nhớ một ngày trong tháng có thứ trùng với Doomsday. Trước hết chúng ta xét các tháng 5, 7, 9, 11. Các ngày 9/5, 5/9, 11/7, 7/11 sẽ có thứ trùng với Doomsday.
Còn tháng ba thì sao? Doomsday (28/2 hoặc 29/2) có thể coi là ngày 0/3. Vì vậy ngày 7/3 sẽ có thứ trùng với Doomsday.
Có một cách giúp bạn nhớ các ngày trên của các tháng lẻ (trừ tháng 1). Đối với những tháng 3, 5, 7 là những tháng dài (31 ngày), bạn lấy tháng đó cộng thêm 4 sẽ ra ngày cần nhớ (tháng 3: 3+4=7 => ngày 7/3; tháng 5: 5+4=9 => ngày 9/5; tháng 7: 7+4=11 => ngày 11/7), Đối với những tháng 9, 11 là những tháng ngắn (30 ngày), bạn lấy tháng đó trừ đi 4 sẽ ra ngày cần nhớ (tháng 9: 9-4=5 => ngày 5/9; tháng 11: 11-4=7 => ngày 7/11).
Tháng một thì hơi đặc biệt. Với năm thường, ngày 31/1 sẽ có thứ trùng với Doomsday (28 ngày sau ngày 31/1 là ngày 28/2 chính là Doomsday). Với năm nhuận, Doomsday là ngày 29/2 nên ngày 1/2 (coi như là ngày 32/1) có thứ trùng với Doomsday, do vậy ngày 31/1 có thứ trước Doomsday một ngày. Bạn cần chú ý điểm đặc biệt này để tính cho chính xác.
Sau khi đọc cách tính trong tháng một của tiến sĩ Conway, một độc giả tên Bob Goddard đã đề nghị một ngày khác dễ nhớ hơn đối với tháng một. Đó là ngày 3/1 trong năm thường và ngày 4/1 trong năm nhuận. Các ngày này có thứ trùng với Doomsday. Để dễ nhớ, ta liên tưởng số 3 là 3 năm thường trong chu kỳ 4 năm sẽ có năm nhuận, còn số 4 gợi ý đến năm nhuận vì năm nhuận chia hết cho 4.
Doomsday của các năm trong thế kỷ 20:
Muốn tính thứ của bất kỳ ngày nào trong một năm, bạn
* 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ẻ: Trần Quang Tiến
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)