1 पॉइंट द्वारा GN⁺ 2024-05-26 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Lewis Carroll ने 31 मार्च 1887 को Nature को भेजे एक पत्र में किसी भी तारीख का weekday मानसिक गणना से निकालने की एक प्रक्रिया प्रस्तावित की
  • तारीख को century·year·month·day इन चार मदों में बाँटकर जोड़ा जाता है, और गणना के हर मध्य चरण में केवल 7 से भाग देने पर बचा remainder रखा जाता है ताकि जटिलता कम रहे
  • Carroll ने कहा कि उन्हें खुद इसमें औसतन लगभग 20 सेकंड लगते हैं, और उनके अनुसार तेज गणना करने वाला व्यक्ति इसे 15 सेकंड के भीतर भी कर सकता है
  • नियमों में Old Style और New Style का अंतर, leap year correction, और हर महीने के item value शामिल हैं, और अंतिम मान को 0=Sunday, 1=Monday के क्रम में पढ़ा जाता है
  • उदाहरण में 18 सितंबर 1783 का परिणाम Thursday आता है, और 23 फ़रवरी 1676 leap year correction के बाद Wednesday बनता है

तारीख को चार मदों में बाँटने का तरीका

  • Lewis Carroll ने 31 मार्च 1887 को Nature को भेजे एक पत्र में किसी खास तारीख का weekday mental calculation से निकालने की विधि प्रस्तुत की
  • इनपुट तारीख को चार भागों में बाँटा जाता है
    • Century-Item: वर्ष के शुरुआती दो अंक
    • Year-Item: century के बाद वाला वर्ष भाग
    • Month-Item: महीना
    • Day-Item: उस महीने की तारीख
  • हर item की गणना करके उसे cumulative sum में जोड़ा जाता है, और यदि item या sum 7 से बड़ा हो जाए तो केवल 7 से भाग देने पर बचा remainder ही रखा जाता है

हर item के लिए गणना के नियम

  • Century-Item

    • Old Style को 2 सितंबर 1752 पर समाप्त माना जाता है, और century value को 18 से घटाया जाता है
    • New Style को 14 सितंबर 1752 से शुरू माना जाता है, और century value को 4 से भाग देने पर जो remainder मिले उसे 3 से घटाकर फिर 2 से गुणा किया जाता है
    • उदाहरण के लिए 1811 के Century-Item में शुरुआती दो अंक 18 इस्तेमाल होते हैं
  • Year-Item

    • century के बाद वाले वर्ष में 12 के समूहों की संख्या, बचा हुआ मान, और उस बचे हुए मान में 4 के समूहों की संख्या को जोड़ा जाता है
  • Month-Item

    • यदि महीने का नाम vowel से शुरू होता है या vowel पर खत्म होता है, तो उस महीने के वर्षक्रम को 10 से घटाया जाता है
    • इसमें उस महीने के दिनों की संख्या जोड़ने पर अगले महीने का item value मिलता है
    • 7 से भाग देने के बाद उपयोग होने वाले monthly values इस प्रकार हैं
      • January 0, February 3, March 3, April 6, May 1, June 4
      • July 6, August 2, September 5, October 0, November 3, December 5
  • Day-Item

    • उस महीने की वास्तविक तारीख ही ली जाती है
  • leap year correction

    • यदि तारीख leap year के January या February में हो, तो final sum में से 1 घटाया जाता है
    • यदि sum 0 हो, तो पहले उसमें 7 जोड़ा जाता है और फिर 1 घटाया जाता है
    • leap year वह वर्ष है जो 4 से विभाज्य हो, लेकिन New Style के century year में अपवाद यह है कि यदि century number 4 से विभाज्य न हो तो वह leap year नहीं माना जाएगा
    • उदाहरण के तौर पर 1800 New Style में इसी अपवाद के अंतर्गत आता है
    • अंतिम परिणाम को weekday number के रूप में पढ़ा जाता है, जहाँ 0 Sunday है, 1 Monday है, और आगे क्रम इसी तरह चलता है

गणना के उदाहरण और स्रोत

  • 18 सितंबर 1783 की गणना का परिणाम Thursday है
  • 23 फ़रवरी 1676 leap year correction के बाद Wednesday बनता है
  • यह प्रक्रिया Edward Wakeling की Rediscovered Lewis Carroll Puzzles, 1995 के माध्यम से दर्ज है

1 टिप्पणियां

 
GN⁺ 2024-05-26
Hacker News टिप्पणियाँ
  • यह तरीका मेरे इस्तेमाल किए जाने वाले तरीके से बहुत मिलता-जुलता है, और Art Benjamin से बात करने पर पता चला कि वे भी मिलता-जुलता तरीका इस्तेमाल कर रहे थे। 10–15 सेकंड के अंदर करना आसान है, लेकिन अभ्यास, बहुत थोड़ी याददाश्त और थोड़ा mental arithmetic चाहिए
    मैं इसे अपनी पकड़ बनाए रखने के लिए भी अक्सर इस्तेमाल करता हूँ, और एक बार सीख लेने पर यह आश्चर्यजनक रूप से उपयोगी निकलता है, इसलिए इस्तेमाल जारी रहता है। J. H. Conway एक अलग तकनीक, Doomsday rule इस्तेमाल करते थे, और इस साल की तारीखें निकालते समय मैं उसी पर चला गया। यह ज्यादा तेज़ और आसान है, लेकिन दूसरे वर्षों का “Doomsday” निकालना ज्यादा कठिन है, इसलिए उस समय मैं अपने मूल तरीके पर लौट जाता हूँ
    उदाहरण के लिए 2024/05/24 के लिए 2012 के बाद 12 साल, 3 leap years, मई का magic number 2, और तारीख 24 जोड़कर mod 7 लें तो (12+3+2+24)=6, यानी शुक्रवार होता है। हर महीने के magic numbers को 144 / 025 / 036 / 146 के रूप में याद किया जा सकता है, और ज़रूरत हो तो सिद्धांत से भी निकाला जा सकता है

    • 144 : Jan, Feb, Mar को Jan=1, Feb=4, Mar=4 जैसे अर्थ में समझा जा सकता है
    • यह व्याख्या तुरंत याद हो गई थी। हालांकि जब 7 फरवरी 2032 पर आज़माया तो 20+5+4+7 ≡ 1 आया, इसलिए रविवार की उम्मीद थी, लेकिन असल में शनिवार था; वजह यह थी कि 2032 leap year है और तारीख 29 फरवरी से पहले की है
      ऐसे मामलों में, यानी leap year में 29 फरवरी से पहले या उसी दिन तक, 1 घटाना होता है
    • याद करना और गणना मिलाना उपयोगी होता है। 0, 1, -1, 0, 0, 1, 1, 2, 3, 3, 4, 4 हर महीने की 1 तारीख के साल में दिन-क्रम और, यह मानने पर कि पिछले सभी महीने 30 दिन के थे, उस दिन-क्रम के बीच का offset है
      उदाहरण के लिए अगर पहले 11 महीने सभी 30 दिन के होते, तो 25 दिसंबर 30×11+25=355वां दिन होता, और इसमें 12वां offset 4 जोड़ने पर वास्तविक 359वां दिन बनता है। यह offset sequence याद रखना आसान है, और याद हो जाने पर महीनेवार magic number Magic(n)=2n+Offset(n)+c से निकाला जा सकता है
      1 4 4 0 2 5 0 3 6 1 4 6 magic numbers में c=-1 है, और दिसंबर 2×12+4-1 ≡ 6 (mod 7) बनता है। उल्टा, याद किए हुए magic numbers से Magic(n)-2n-c निकालकर offset भी वापस पाया जा सकता है, बस यह याद रखना होता है कि offset range [-1,4] है
    • Lewis Carroll का तरीका कहीं ज्यादा सरल और तेज़ लगता है; मुझे समझ नहीं आता कि इस तरीके का उससे क्या फायदा है, और complexity काफ़ी बढ़ी हुई लगती है
  • लेख पढ़ते-पढ़ते मैंने Old Style/New Style dates के अंतर और 1752 में हुई चीज़ों को खोजा। Calendar (New Style) Act 1750 के अनुसार, 18वीं सदी तक ब्रिटेन के कानून में साल कई सदियों तक 25 मार्च, यानी Lady Day, से शुरू होता था
    इसलिए उदाहरण के लिए 24 मार्च 1707 के ठीक अगले दिन 25 मार्च 1708 होता था, और 31 दिसंबर 1708 के अगले दिन भी 1 जनवरी 1708 ही होता था; 1709 लगभग तीन महीने बाद आता था। अच्छा हुआ कि यह बदल गया

    • ब्रिटेन का tax year आज भी 6 अप्रैल को क्यों शुरू होता है, इसका संबंध भी लगभग 300 साल पहले Julian calendar से Gregorian calendar में हुए बदलाव से है: https://theconversation.com/why-the-uk-tax-year-begins-on-april-6-its-a-very-strange-tale-57247
      मुझे जिज्ञासा है कि क्या दूसरे देशों में भी ऐसे पुराने legacy patches इतने बचे हुए हैं
    • Carroll तरीके का wiki page भी Lewis Carroll's method में 23 फरवरी 1676 के उदाहरण के बारे में बताता है कि 1752 से पहले इंग्लैंड की तारीखें Old Style में लिखी जाती थीं, जिसमें 25 मार्च को नए साल का पहला दिन माना जाता था
      लेकिन Carroll तरीका 1 जनवरी को नए साल का पहला दिन मानता है, इसलिए सही जवाब “Friday” तक नहीं पहुँचता। दिलचस्प है कि Carroll तरीके को फिर से प्रकाशित करने वालों ने इस गलती को नहीं पकड़ा, और linked लेख में भी वही कमी है
    • Linux की cal utility में सितंबर 1752 को पहचानने के लिए special handling है: https://github.com/util-linux/util-linux/blob/9f15d2de8117732845b2e891a2d24d987ee4e3ed/misc-utils/cal.c#L1079
    • cal 1752 चलाकर देखा तो सितंबर के calendar में बुधवार 2 तारीख और गुरुवार 14 तारीख के बीच की तारीखें गायब हैं
      विवाद तो है, लेकिन यह व्याख्या भी है कि Gregorian calendar में संक्रमण ही April Fools' Day की उत्पत्ति है: https://en.wikipedia.org/wiki/April_Fools%27_Day, https://en.wikipedia.org/wiki/Gregorian_calendar
    • रोम भी मार्च-आधारित year इस्तेमाल करता था। इसलिए फरवरी में दिनों की संख्या कम है, और October का शाब्दिक अर्थ आठवां महीना है
  • लेख की महीने के item की गणना विधि को समझना मुश्किल है। लेख बताता है कि अगर कोई महीना vowel से शुरू या खत्म होता है, तो साल में उस महीने के क्रम को 10 से घटाएँ, और इसमें उस महीने के दिनों की संख्या जोड़ दें, तो अगले महीने का item मिल जाता है।
    लेकिन January से पहले वाला महीना December है, और वह vowel से न तो शुरू होता है न खत्म, इसलिए 10 से घटाए बिना 12+31 ≡ 1 होना चाहिए, जबकि लेख 0 कहता है। February भी, क्योंकि January vowel पर खत्म होता है, 10-1+31 ≡ 4 बनता है, लेकिन लेख में 3 है; और March भी February के आधार पर गिनें तो मेल नहीं खाता।
    April और May सही हैं, लेकिन June फिर से नहीं मिलता, इसलिए समझ नहीं आ रहा कि मैं क्या गलत समझ रहा हूँ।

    • लगता है January को fixed value 0, February और March को fixed value 3, और December को भी लेख में सीधे दी गई fixed value माना गया है।
      (10-क्रम)+दिनों की संख्या mod 7 वाला logic पिछले महीने के आधार पर सिर्फ May, July, September, November जैसे एक-छोड़-एक महीनों पर सही बैठता है, और vowel rule यह याद रखने की mnemonic जैसा लगता है कि यह calculation किन महीनों पर लागू करनी है। बाकी महीनों में शायद पिछले महीने का item+days mod 7 इस्तेमाल होता है, लेकिन यह interpretation लेख में कहाँ से निकलती है, यह साफ नहीं है।
    • मैं भी इसी हिस्से पर अटक गया था, और सबसे plausible समझ यह है। सभी महीनों के item number पिछले महीने के item number में पिछले महीने के दिनों की संख्या जोड़कर और फिर mod 7 लेकर निकाले जा सकते हैं।
      January का कोई पिछला महीना नहीं है, इसलिए सबको 0 मानकर result भी 0 रखा जाता है। जिस महीने तक पहुँचना है, वहाँ तक January से हर बार calculation करने की जरूरत नहीं; जिन महीनों की शुरुआत या अंत vowel से होता है, उनके लिए उस महीने का item number 10-महीना नंबर वाला shortcut इस्तेमाल किया जा सकता है। यहाँ y को vowel नहीं माना जाता। या फिर सीधे याद कर लेना शायद और आसान हो।
    • मुझे भी यही समस्या आई, और formula की कई reinterpretations आजमाईं, लेकिन किसी से मदद नहीं मिली।
  • Carroll का algorithm समय के साथ विकसित हुआ है। First Sunday Doomsday Algorithm(https://firstsundaydoomsday.blogspot.com/2009/12/quick-start-guide.html) में 2023 तक public किए गए improvements शामिल हैं, और year code निकालने के लिए Fong & Walters का “odd+11” rule भी है: https://arxiv.org/abs/1010.0765

  • मुझे लगा कि इसे ज्यादा intuitively calculate करने का यह तरीका है, इसलिए मैंने एक लेख में इसे व्यवस्थित कर रखा है: https://gcanyon.wordpress.com/2013/04/09/a-better-way-to-calculate-the-day-of-the-week/

  • Art Benjamin को TED talk में यह करते देखना वाकई दिलचस्प है। ध्यान से देखें तो दिखता है कि वे intermediate calculations को track करने के लिए हाथों की हरकतें इस्तेमाल कर रहे हैं।
    जान लेने के बाद यह obvious लगता है, लेकिन बेहद clever है। https://www.ted.com/talks/arthur_benjamin_a_performance_of_mathemagic में 7:47 से शुरू होता है।

  • Lewis Carroll के तरीके से आज, यानी 24 मई 2024, की calculation ऐसी है। century item 20वीं सदी के लिए है, इसलिए 20/4=5, remainder 0, 3-0=3, 3×2=6
    year item में 24/12=2, remainder 0, उसके अंदर 4 की संख्या 0, इसलिए 2+0+0=2। month item लेख में May=1 है, और day item 24 है। सब जोड़ने पर 6+2+1+24=33, 33 mod 7 = 5, इसलिए Friday आता है।

    • उम्मीद थी कि month item में May=1 कैसे बनता है, यह खोलकर बताया जाएगा। explanation देखकर भी बिल्कुल समझ नहीं आता।
  • जो लोग कहते हैं कि notation महत्वपूर्ण नहीं है, उनसे कहना चाहूँगा कि बेहतर नई notation मिलने से पहले पूरी mathematics कुछ ऐसी ही दिखती थी।
    यह तक कहा जा सकता है कि mathematics में notation के अलावा बहुत कम चीजें इतनी महत्वपूर्ण हैं, और computer science में भी यही बात है। variables explicit होने पर Lisp-family languages साफ तौर पर choice क्यों बनती हैं, वजह भी यही है।

    • Chess में भी ऐसा ही था। अगर white अपनी पहली चाल में white king के सबसे करीब वाले knight को शुरुआती square से दो squares आगे और एक square बाएँ वाले square पर ले जाए, तो 17वीं सदी से अब तक उस move की notation लगातार छोटी होती गई।
      1600s की शुरुआत में यह “The white king commands his owne knight into the third house before his owne bishop.” था, 1700s के मध्य में K. knight to His Bishop's 3d., 1800s की शुरुआत में K.Kt. to B.third sq., 1890 के आसपास KKt-B3, 1900s के मध्य में N-KB3, और अब Nf3 या भाषा-विशेष piece names से बचना हो तो ♘f3 हो गया: https://www.knightschessclub.org/the_history_of_notation.html
  • अगर यह 20 seconds के अंदर किया, तो इसे impressive कहा जा सकता है। वे खुद को fast calculator नहीं मानते थे।

    • शायद उनका benchmark Oxbridge में mathematics पढ़ाने वाले दूसरे professors रहे होंगे।
  • Python में day-of-week calculation script लिखकर 2024-05-24 डालें तो Friday आता है। यह century item, year item, month item array, और day item को जोड़कर, January–February के लिए leap year correction apply करने का तरीका है।
    14 सितंबर 1752 से पहले के लिए अलग century item इस्तेमाल करने की handling भी की गई।

    • 1752 को शामिल करना tricky है। British Empire ने Gregorian calendar अपनाते समय 3–13 सितंबर को skip कर दिया था, इसलिए वह अकेला ऐसा साल था जिसमें सिर्फ 355 दिन थे।
      ये गायब हुई dates दुनिया भर में एक साथ apply नहीं हुईं, और देश तथा record रखने वाले के religion के हिसाब से उनका लागू होने का समय अलग-अलग था, इसलिए historical records में यह लगातार headache बना रहता है।