ไขรหัสวัน: เคล็ดลับอัจฉริยะที่ใครก็ทำได้

ไขรหัสวัน: เคล็ดลับอัจฉริยะที่ใครก็ทำได้

เคยสงสัยไหมว่าทำไมบางคนถึงสามารถคำนวณวันในสัปดาห์ของวันที่ในอดีตหรืออนาคตได้อย่างแม่นยำรวดเร็ว ดูเหมือนเป็นเรื่องเวทมนตร์ หรือพรสวรรค์พิเศษ แต่ความจริงแล้วมันคือเรื่องของ คณิตศาสตร์ ที่มีสูตรสำเร็จรูปให้ใช้งาน สูตรนี้ช่วยให้ทุกคนสามารถไขรหัสวันได้ราวกับเป็นอัจฉริยะเลยทีเดียว

ความลับของวันทั้งเจ็ด

หัวใจสำคัญของการคำนวณนี้อยู่ที่แนวคิดของ เลขคณิตมอดูลาร์ หรือที่เรียกง่ายๆ ว่า การหารเอาเศษ ในหนึ่งสัปดาห์มี 7 วัน วงจรของวันจะซ้ำกันทุกๆ 7 วัน เมื่อเราพูดถึงวันในสัปดาห์ เราสนใจแค่เศษจากการหารด้วย 7 ตัวอย่างเช่น วันนี้วันพุธ อีก 7 วันข้างหน้าก็ยังเป็นวันพุธ หรือ 8 วันข้างหน้าก็จะเป็นวันพฤหัสบดี เพราะ 8 หารด้วย 7 เหลือเศษ 1

เพื่อใช้ในสูตร เราจำเป็นต้องกำหนดตัวเลขแทนวันในสัปดาห์ โดยในสูตรที่เราจะใช้ จะมีการกำหนดให้ วันเสาร์ เป็น 0, วันอาทิตย์ เป็น 1, วันจันทร์ เป็น 2 ไปเรื่อยๆ จนถึง วันศุกร์ เป็น 6 การทำความเข้าใจเรื่องเศษและการกำหนดตัวเลขเหล่านี้ คือก้าวแรกสู่การเป็นนักคำนวณวันที่

สูตรไขรหัส Zeller’s Congruence

สูตรอันทรงพลังสำหรับการคำนวณวันในสัปดาห์คือ Zeller’s Congruence ซึ่งดูซับซ้อนในแวบแรก แต่เมื่อแบ่งย่อยแล้วจะเข้าใจได้ง่าย

สูตรมีหน้าตาแบบนี้:

h = (q + [13*(m+1)/5] + K + [K/4] + [J/4] - 2J) mod 7

มาดูกันว่าแต่ละตัวอักษรหมายถึงอะไรบ้าง:

  • h: คือผลลัพธ์ที่เป็นตัวเลขแทนวันในสัปดาห์ โดย 0 คือวันเสาร์, 1 คือวันอาทิตย์, … จนถึง 6 คือวันศุกร์
  • q: คือ วันที่ ในเดือนนั้นๆ (เช่น ถ้าเป็นวันที่ 13 ก็คือ 13)
  • m: คือ เดือน ซึ่งมีค่าเฉพาะสำหรับสูตรนี้
    • เดือนมีนาคม = 3, เมษายน = 4, … ธันวาคม = 12
    • กุมภาพันธ์ = 14 และ มกราคม = 13 (สำหรับสองเดือนนี้ เราจะถือว่าเป็นเดือนของปี ก่อนหน้า)
  • Y: คือ ปี ทั้งปี (เช่น 2024)
  • K: คือ ปีของศตวรรษ หรือสองหลักสุดท้ายของปี (เช่น ถ้าปี 2024, K คือ 24)
  • J: คือ ศตวรรษ หรือสองหลักแรกของปี (เช่น ถ้าปี 2024, J คือ 20)
  • เครื่องหมาย []: หมายถึง ปัดเศษลง หรือเอาแต่จำนวนเต็ม (floor function)
  • mod 7: หมายถึง การหารเอาเศษ ด้วย 7

การปรับใช้สำหรับเดือนมกราคมและกุมภาพันธ์

จุดสำคัญที่ต้องจำคือสำหรับเดือน มกราคม และ กุมภาพันธ์ เราต้องทำเหมือนว่ามันเป็นเดือนที่ 13 และ 14 ของปี ก่อนหน้า นั่นหมายความว่า ถ้าเรากำลังคำนวณหาวันที่ 1 มกราคม 2024 เราจะต้องใช้ m=13 และ Y=2023 (ปีที่แล้ว) แทน

ลองคำนวณจริงกัน

มาดูตัวอย่างการคำนวณหาวันในสัปดาห์สำหรับวันที่ 13 พฤษภาคม 2024 กัน

  1. ระบุค่าตัวแปร:

    • q = 13 (วันที่ 13)
    • m = 5 (เดือนพฤษภาคม)
    • Y = 2024 (ปี 2024)
    • ดังนั้น K = 24 (สองหลักสุดท้ายของปี)
    • และ J = 20 (สองหลักแรกของปี)
  2. แทนค่าลงในสูตร:
    h = (13 + [13*(5+1)/5] + 24 + [24/4] + [20/4] - 2*20) mod 7

  3. คำนวณแต่ละส่วน:
    h = (13 + [13*6/5] + 24 + 6 + 5 - 40) mod 7
    h = (13 + [78/5] + 24 + 6 + 5 - 40) mod 7
    h = (13 + 15 + 24 + 6 + 5 - 40) mod 7
    h = (63 - 40) mod 7
    h = 23 mod 7

  4. หาเศษจากการหารด้วย 7:
    h = 2 (เพราะ 23 หารด้วย 7 ได้ 3 เหลือเศษ 2)

  5. ตีความผลลัพธ์:
    ค่า h = 2 หมายถึง วันจันทร์ (ตามการกำหนด 0=เสาร์, 1=อาทิตย์, 2=จันทร์)

ดังนั้น วันที่ 13 พฤษภาคม 2024 คือวันจันทร์นั่นเอง สามารถลองตรวจสอบกับปฏิทินได้

การฝึกฝนและความสนุกกับการคำนวณ

Zeller’s Congruence เป็นมากกว่าแค่สูตรคณิตศาสตร์ มันคือการเปิดเผยความสง่างามของตรรกะที่ซ่อนอยู่ในกาลเวลา การได้ฝึกฝนคำนวณด้วยตัวเอง ไม่ว่าจะเป็นวันเกิดของเพื่อน วันหยุดสำคัญในอนาคต หรือแม้กระทั่งวันที่ในอดีต ก็เป็นวิธีที่สนุกและท้าทาย ช่วยให้เข้าใจแนวคิดทางคณิตศาสตร์ได้ดีขึ้น และยังสร้างความประทับใจให้คนรอบข้างได้อีกด้วย ลองนำสูตรนี้ไปใช้แล้วจะพบว่าการคำนวณวันที่ไม่ยากอย่างที่คิด