- सिर्फ चार 2 का उपयोग करके संख्याएँ बनाने वाली यह पहेली इस बात पर निर्भर करती है कि अनुमत operations को कितनी दूर तक बढ़ाया जाता है; यह चार संक्रियाओं वाली पहेली से उन्नत गणितीय खेल तक फैल जाती है
- सिर्फ भिन्नों और चार मूलभूत संक्रियाओं से 1 से 6 तक बनाए जा सकते हैं, और घातांक व factorial जोड़ने पर 18, 28, 256, 65536 जैसी बड़ी संख्याएँ भी बनाई जा सकती हैं
- 2 को जोड़कर 22 या 222 माना जाए, या complex numbers और absolute value का उपयोग किया जाए, तो साधारण गणना से कठिन लगने वाली संख्याओं को भी कई तरीकों से व्यक्त किया जा सकता है
- 7 को बनाना कठिन संख्या माना जाता है, लेकिन gamma function जैसे tools की अनुमति हो तो इसे सिर्फ चार 2 से सीधे बनाया जा सकता है
- Paul Dirac का सामान्य हल nested square roots और base-2 logarithm का उपयोग करके किसी भी संख्या को व्यक्त करता है, और
2 = √(2+2)प्रतिस्थापन से ठीक चार 2 पूरे किए जाते हैं
2 के चार अंकों से संख्या बनाने के मूल नियम
- पहेली की शर्त यह है कि अंक 2 को ठीक चार बार इस्तेमाल करना है, और किसी अन्य अंक के बिना सिर्फ गणितीय operations से लक्ष्य संख्या बनानी है
- चार मूलभूत संक्रियाओं और भिन्नों से भी छोटी संख्याएँ अपेक्षाकृत आसानी से बनाई जा सकती हैं
1 = (2+2)/(2+2)2 = 2/2 + 2/23 = 2·2 - 2/24 = 2+2+2-25 = 2·2 + 2/26 = 2·2·2 - 2
- घातांक और factorial की अनुमति देने पर व्यक्त की जा सकने वाली संख्याओं की सीमा बहुत बढ़ जाती है
18 = 2^(2^2) + 228 = (2+2)! + 2 + 2256 = (2+2)^(2+2)65536 = 2^(2^(2^2))
- अंकों को जोड़कर लिखना भी इस पहेली में अक्सर इस्तेमाल होने वाला एक trick है
26 = 22 + 2 + 211 = 22 / √(2+2)444 = 222 · 2
- खासकर 7 ऐसी संख्या है जिसे बनाना मुश्किल माना जाता है, लेकिन gamma function का उपयोग करें तो
7 = Γ(2) + 2 + 2 + 2के रूप में व्यक्त किया जा सकता है - Math StackExchange थ्रेड में integral, recurring decimals, combinatorial operators आदि का उपयोग करने वाले उदाहरण हैं
- complex numbers और absolute value का उपयोग करें तो
12 = |2 + 2√-2|²जैसी अभिव्यक्ति भी संभव है
Dirac का सामान्य हल
- Paul Dirac ने ऐसा सामान्य हल खोजा जो सभी संख्याओं पर लागू हो सकता है, और इसका मुख्य उपकरण nested square roots है
- 2 पर square root को बार-बार लागू करने पर इसे नीचे की तरह घातांक रूप में लिखा जा सकता है
√2 = 2^(1/2) = 2^(2^-1)√√2 = 2^(1/4) = 2^(2^-2)√√√2 = 2^(1/8) = 2^(2^-3)
- यदि square root को n बार लागू किया जाए, तो वह
√√...√2 = 2^(2^-n)के रूप में बनता है - इस पर base-2 logarithm एक बार लेने से
2^-nमिलता है, और फिर एक बार और logarithm लेने पर-nमिलता है - इसलिए किसी भी n को
n = -log₂(log₂(√√...√2))के रूप में व्यक्त किया जा सकता है - मूल सूत्र में अंक 2 सिर्फ तीन बार आता है, इसलिए
2 = √(2+2)का उपयोग करके एक 2 को बदल दें तो ठीक चार 2 का प्रयोग करने वाला सूत्र मिल जाता है - उदाहरण के लिए, 7 को square root 7 बार nested करके इस तरह लिखा जा सकता है
7 = -log_{√(2+2)}(log₂(√√√√√√√2)) - सूत्र के भीतर
nवास्तविक अभिव्यक्ति में आने वाला अंक नहीं है, बल्कि square root की पुनरावृत्ति की संख्या गिनने के लिए सहायक संकेत है - अंततः सभी संख्याओं को व्यक्त करने का रास्ता खुल जाता है, लेकिन जितने square root चिन्ह चाहिए उन्हें ठीक-ठीक लिखना अभी भी बाकी रहता है
1 टिप्पणियां
Hacker News की राय
जैसे ही functions की अनुमति देते हैं, लगता है कि गेम का मकसद ही छोड़ दिया गया
उदाहरण के लिए gamma function
(n-1)!है, तो अब हम चार 2 और एक 1 से 7 बना रहे हैंअगर function call के अंदर कोई संख्या छिपाई जा सकती है, तो हमेशा सफल होना बहुत आसान हो जाता है
+,-(binary/unary),×,÷भी functions हैं, और exponentiation भी function है। तो उन्हें क्यों अनुमति देनी चाहिए?ऐसे puzzles में elementary functions की सीमा को लेकर हमेशा राय अलग हो सकती है, लेकिन मुझे नहीं लगता कि square root को ban करने की जरूरत है
gamma function के
(n-1)!होने की बात करें तो, 2 भी आखिरकार सिर्फS(S(0))ही है (https://en.wikipedia.org/wiki/Peano_axioms)Paul Dirac की construction को trivial कहना मुश्किल है, और मैं जानना चाहूंगा कि क्या आप सच में उसे trivial मानते हैं या कोई और सरल construction जानते हैं
gamma function allowed है तो दूसरे functions क्यों नहीं? मनचाहे functions डाल दें तो game को जैसे चाहें हल किया जा सकता है
आखिरकार लेख की शुरुआत से ही यह ठीक से परिभाषित नियमों वाला problem नहीं लगता। किन functions या operations का set allowed है, यह साफ बताना चाहिए, और ज्ञान के स्तर के साथ problem कैसे expand होता है यह दिखाने का इरादा ऐसा सुधार करने पर भी बना रह सकता है
चाहें तो functions के अलग-अलग subsets तक सीमित करके, उनके भीतर कौन-सी संख्याएं संभव या असंभव हैं, यह prove करने की कोशिश भी कर सकते हैं
लेख में भी “mathematical tools” कहा गया था, arbitrary functions नहीं
हालांकि अगर केवल वे functions allow करें जो integer tuples को integer में map करते हैं
((Z, Z, ...) -> Z), तो original game का मकसद बना रहता हैइससे square root और log बाहर हो जाएंगे, addition·subtraction·multiplication रहेंगे, लेकिन division बाहर हो जाएगा। factorial
n!और non-negative exponents वाली exponentiation भी allow की जा सकती हैइस constraint के अंदर कोई general solution बनाया जा सकता है या नहीं, यह जानने की उत्सुकता है
अगर “कोई भी mathematical operation इस्तेमाल करें” है, तो आसान है; बस successor function का इस्तेमाल करें
S(n) = n+16 = 2*2*2-27 = S(2*2*2-2)8 = S(S(2*2*2-2))इसी तरह आगे भी चलता रहेगा
इस puzzle के असल में कोई rules तो नहीं हैं, लेकिन यह function बिल्कुल भी well-known नहीं लगता
कौन-से operators कितनी बार इस्तेमाल किए जा सकते हैं, यह concretely तय न हो तो पूरा project बहुत consistent नहीं लगता
संबंधित रूप से, 1964 में 26 साल के Donald Knuth ने “Representing numbers using only one 4” भी लिखा था (https://www.jstor.org/stable/2689238)
यह उनके Selected Papers on Fun and Games के chapter 10 में भी फिर छपा, और इसमें सिर्फ एक digit 4 और तीन operations
√x(square root),⌊x⌋(floor function),x!(factorial) इस्तेमाल होते हैंयह इस अब तक अनसुलझे conjecture पर खत्म होता है कि क्या सभी integers को इस तरह represent किया जा सकता है
2011 की किताब के appendix में इससे भी पहले 1962 में J. H. Conway और M. J. T. Guy का 1.5-page paper “π in Four 4's” भी紹介 किया गया है। यह दोनों के Cambridge students होने के समय का मिलता-जुलता idea था: https://archive.org/details/eureka-25/page/18/mode/1up?view=...
उदाहरण के लिए
5 = ⌊√√√√√(4!)!⌋है, क्योंकि24!5^32और6^32के बीच हैपता नहीं सिर्फ मुझे ऐसा लगा, लेकिन
sqrt(2*2)याsqrt(2^2)के बजायsqrt(2+2)का चुनाव अजीब लगाइससे यह दिखाने की जरूरत से ज्यादा परदा पड़ जाता है कि
2=sqrt(2+2)क्यों हैपूरे लेख, हर argument, मुख्य point, वाक्य, formatting आदि हर चीज पर cognitive bandwidth खर्च होती है, और time pressure भी रहा होगा
critic आराम से सिर्फ एक point पर focus कर सकता है, इसलिए वह obvious लगता है :)
“Dirac hacking” शायद score बहुत खा जाएगी
2+2,2*2,2^2तीनों obviously 4 हैं औरsqrt(4)=2है, तो समझ नहीं आता कि+बाकी से ज्यादा अजीब क्यों हैव्यक्तिगत रूप से मुझे संक्षिप्तता वाला तरीका ज़्यादा पसंद है
मैंने single-character commands वाली एक stack machine बनाई थी, और इसी समस्या का एक variation हल करना था। संख्याएँ सिर्फ़ 0 से 9 तक थीं, और अक्षर
23का मतलब था 2 को push करना और फिर 3 को push करना। असली संख्या 23 दिखाने के लिए45*3+जैसा expression लिखना पड़ता थाइसलिए हर integer को सबसे कम character count में encode करने की समस्या बची
इस्तेमाल किए जा सकने वाले tools थे: digits
0~9,P: Pi,*:(a * b),/:(a / b),-:(a - b),+:(a + b),s:sin(a),c:cos(a),q:sqrt(a),l:log(a),~:abs(a),#:round(a),$:Math.floor(a),C:clamp(a),<:min(a, b),>:max(a, b),^:pow(a, b),a:atan2(a, b),%:positiveMod(a, b),!:(1 - a),?:(a <= 0 ? 0 : 1),o:a xor b scaled by c; ((a*c) xor (b*c))/c,d: stack के top को duplicate करना,:: top की दो items को swap करना,;: top और तीसरी item को swap करनाबाद में इस stack machine को complex-number stack के रूप में फिर से बनाकर देखना चाहूँगा कि क्या-क्या किया जा सकता है
अगली बार ऐसा कुछ post करूँगा तो phone से नहीं लिखूँगा
https://en.wikipedia.org/wiki/Kolmogorov_complexity
" 23"से represent किया जा सकता हैdigit + * digit + *जैसे pattern की repetition या उसके equivalent रूप होंगे“संख्या 2 को सिर्फ़ तीन बार इस्तेमाल किया गया” छोटी-सी कमी है, लेकिन ऐसा तभी है जब हम इस तथ्य को ignore करें कि radical notation common value को default मानकर 1/2 power को छिपा देता है
छिपे हुए 2 काफ़ी ज़्यादा हैं
फिर तो मानना पड़ेगा कि 2 भी
1+1छिपाता है, और क्या game असंभव हो जाएगा?higher-degree polynomials की तुलना में quadratic polynomials बहुत ज़्यादा common हैं, इसलिए square root arbitrary powers की तुलना में ज़्यादा fundamental लगता है
fancy functions allow करने के बाद game के हास्यास्पद हो जाने वाली बातें बहुत हैं, लेकिन व्यक्तिगत रूप से मुझे लगता है कि specific rule restrictions के बिना भी संतोषजनक solutions खोजने में मज़ा है
इससे जुड़ा एक reverse engineering/CTF challenge था। cheating रोकने के लिए नाम नहीं बताऊँगा, लेकिन मेरा solution ऐसा shellcode inject करना था जो stack pointer में एक खास संख्या add करता था
लेकिन पूरे shellcode में, add की जाने वाली संख्या सहित, सिर्फ़ ASCII alphanumeric bytes ही इस्तेमाल किए जा सकते थे
इसलिए मैंने SAT solver का इस्तेमाल करके ऐसी संख्या-combinations ढूँढीं जो forbidden bytes इस्तेमाल किए बिना desired value तक add हो जाएँ
https://docs.google.com/presentation/d/19K7SK1L49reoFgjEPKCF...
mobile game Tchisla याद आता है। इसमें दी गई एक संख्या और कुछ operators, square root और
!वगैरह का इस्तेमाल करके 1000 या 10000 तक की सभी संख्याएँ बनानी होती हैंकाफ़ी मज़ेदार है, खेलते-खेलते strategies बनती हैं, और user experience भी simple और efficient है। बस यह पहले से जान लें कि यह बहुत समय खा जाता है
[0] https://apps.apple.com/fr/app/tchisla-number-puzzle/id110062...
क्लासिक four fours problem है, और बचपन में मैंने इसे “The Man Who Counted” नाम की किताब से सीखा था
https://en.wikipedia.org/wiki/Four_fours
https://en.wikipedia.org/wiki/The_Man_Who_Counted
The Definitive Four Fours Answer Key
https://dwheeler.com/fourfours/
उसी से मैंने false induction सीखी थी। मुझे वह कहानी भी पसंद थी जिसमें लोग कतार में खड़े होते हैं, उनकी पीठ पर कुछ चिपका होता है, और उन्हें अंदाज़ा लगाना होता है कि वह क्या है
कमाल तो है, लेकिन उस
sqrtsymbol के अंदर छिपे हुए 2 बहुत ज़्यादा हैं