यह चुनौती हमारे लीजेंडरी चैलेंज राइटर ™, केल्विन के शौक के लिए एक श्रद्धांजलि है - जिसका नाम अब हेल्का होम्बा के नाम पर रखा गया है , जो जेनरेट डेनिस नंबर के समान ही है ।
केल्विन PPCG के लिए एक बहुत प्रभावशाली योगदानकर्ता है, जिसकी कुल मिलाकर 6 वीं ख्याति है और शायद निर्विवाद रूप से हम सभी में से सर्वश्रेष्ठ चुनौती लेखन कौशल है। हालांकि, निश्चित रूप से, इस चुनौती के लिए, हम उसकी उपयोगकर्ता आईडी पर ध्यान केंद्रित करेंगे।
26997 पहली बार में बहुत दिलचस्प नहीं लग सकता है। वास्तव में, यह
कुछ मायनों में लगभग दिलचस्प है। उदाहरण के लिए, यहाँ 26997 mod <n>
कुछ मूल्यों के लिए एक चार्ट है n
:
n | 26997 % n
----+-----------
3 | 0
4 | 1
5 | 2
6 | 3
7 | 5 :(
8 | 5
9 | 6
10 | 7
हालांकि, 26997 उन कुछ नंबरों में से एक है, जिनके द्वारा प्रतिनिधित्व किया जा सकता है , जहां एक पूर्णांक> 0 है।(n * 10)n - n
n
इस तरह से व्यक्त की जा सकने वाली पहली कुछ संख्याएँ हैं, जिन्हें हम बाद में केल्विन नंबर कहेंगे :
9
398
26997
2559996
312499995
46655999994
8235429999993
1677721599999992
387420488999999991
99999999999999999990
28531167061099999999989
8916100448255999999999988
3028751065922529999999999987
1111200682555801599999999999986
437893890380859374999999999999985
184467440737095516159999999999999984
82724026188633676417699999999999999983
39346408075296537575423999999999999999982
19784196556603135891239789999999999999999981
10485759999999999999999999999999999999999999980
इन केल्विन नंबरों में कुछ दिलचस्प गुण हैं। अधिक पैटर्न तब सामने आते हैं जब हम उन्हें सही-संरेखित करते हैं और सभी को हाइलाइट करते हैं 9
:
इस चुनौती के लिए हमारी रुचि के हैं:
भले ही
n
, हर केल्विन संख्या के साथ समाप्त होता है ।10n - n
तो, केल्विन (1) के साथ समाप्त होता है
9
, केल्विन (2) के साथ समाप्त होता है98
, और पैटर्न जारी है997
,9996
और99995
, आदि, प्रत्येक क्रमिक केल्विन संख्या की गिनती के साथ और9
शुरुआत में एक अतिरिक्त जोड़ रहा है ।मूल्यों के लिए
n
जहांn % 10 == 0
(अर्थातn
10 से विभाज्य है), केल्विन (एन) के साथ समाप्त होता है ।102n - n
यही है, पैटर्न सामान्य रूप से दोगुने के लिए विस्तार करता है,
9
शुरुआत में बराबर संख्या में अतिरिक्त संख्या के साथn
।जब
n
की एक शक्ति है10
(10
,100
,1000
, आदि), पैटर्न फैली आगे-हर भी एकल अंक एक या तो है9
या एक0
।यह पैटर्न निम्न है: nines, और zeroes। यह एक चार्ट में समझने में आसान है (आपके समाधान को वैसे भी केवल 10000 तक संख्याओं को संभालना होगा, इसलिए आपको इसकी आवश्यकता है:)
(n + 1) * 10n - n
n
n | Calvin(n) -------+----------------------- 10 | 19 nines, 1 zero 100 | 298 nines, 2 zeroes 1000 | 3997 nines, 3 zeroes 10000 | 49998 nines, 4 zeroes
नाइन की संख्या यहां तक कि खुद केल्विन नंबरों के कई गुणों को प्रदर्शित करती है, लेकिन इस चुनौती के लिए बहुत अधिक विवरण है।
चुनौती
केल्विन संख्याएँ बहुत बड़ी हैं, बहुत जल्दी, "एनटी केल्विन नंबर प्राप्त करने के लिए चुनौती के बिना भाषाओं में मनमाने ढंग से सटीक पूर्णांक के बिना संभव है। इसलिए, चुनौती यह निर्धारित करने के लिए है कि क्या कोई संख्या उपरोक्त पैटर्न को फिट करती है - चाहे एक संख्या "उम्मीदवार केल्विन नंबर" है या नहीं।
यहां एक संख्या के लिए एक उम्मीदवार केल्विन नंबर माना जाता है (उसके बाद संक्षेप में CCN के रूप में संदर्भित) के मानदंड हैं :
यह एक संख्या के साथ समाप्त होता है जो पूर्णांक के लिए पैटर्न को फिट करता है ।
10n - n
n
तो, CCN होने के लिए, एक संख्या को 9 या 98, या 997, 9996, 99995, आदि के साथ समाप्त होना चाहिए।
यदि अंतिम अंक है
0
, तो उसे पिछले बिंदु के समान ही समाप्त होना चाहिए ।102n - n
n
इसका मतलब यह है कि
12312312399999999999999999999999999999999999980
CCN नहीं है, लेकिन10485759999999999999999999999999999999999999980
यह (वास्तव में सही है)।यदि
n
पिछले दो चरणों का मान 10 की शक्ति है, तो पूरी संख्या को ऊपर वर्णित तीसरे पैटर्न में फिट होना चाहिए।
इनपुट आउटपुट
इनपुट एक स्ट्रिंग के रूप में प्रदान किया जाएगा, और यह हमेशा एक संख्या का प्रतिनिधित्व करेगा Calvin(10000) + 10000
जो इससे कम है (जिसे भी व्यक्त किया जा सकता है
)। (स्पष्ट करने के लिए, सबसे बड़ा संभव इनपुट 50000 nines है, और सबसे कम संभव इनपुट है ।)1050000
1
आउटपुट एक सत्य मान होना चाहिए यदि इनपुट एक संख्या का प्रतिनिधित्व करता है जो एक CCN है, और एक मिथ्या मूल्य अन्यथा। इन शर्तों की परिभाषा के लिए , मेटा देखें ।
परीक्षण के मामलों
इनपुट जो कि एक सत्य मूल्य में परिणत होने चाहिए:
9
26997
99999999999999999990
437893890380859374999999999999985
10485759999999999999999999999999999999999999980
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900
259232147948794494594485446818048254863271026096382337884099237269509380022108148908589797968903058274437782549758243999867043174477180579595714249308002763427793979644775390624999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999850
1027092382693614216458468213549848274267264533712122209400214436472662418869004625362768700557725707157332451380426829473630485959339004149867738722096608953864534215649211386152032635755501464142277508289403434891444020975243742942368836579910208098242623061684967794815600266752580663281483595687307649904776800899000484103534573979334062832465904049046104660220505973505050538180250643437654409375728443182380726453925959886901573523090619465866810938078629561306599174923972607310649219442207992951278588892681161967770532314854195892941913447519131828356181219857012229150315613569162930098836696593474888020746503116685472977764615483225628639443918309216648893055765917642528801571387940219884056021782642758517893124803355573565644666880920219871370649806723296262307899148031362558110611562055614190049332906933360406981359187305353360484377948591528385990255894034369523166777375785900198782250651053530165824984161319460372145229568890321167955690544235365954748429659526071133879976348254667755220636244075595290123987745560038255541751251200827018722242010925729483977388235141539109139120069464709993781356334885359200734157439642935779132120725231008699003342908280056975158266782782304550273268246184659474285971272532354920744956064671379745219778013465792544241259691493098443741845166419905920702654683993902052727208789915748213660571390107102976665776293366616518962323688316843422737162297255648351087284877987537325761187239807598009767936409247247417410607537333841650998421607775989879490006136112078031237742552602618996017404602674987181629319060214150458746352191115606789019875790921190573561400752476956787515392210098071407806221412149732955903681690377998882038499470092453400748916257640501488510563314141992573250882286817352407459053866180642034662845694338400386823496563185664221362457851894843439705365082614359220653285052800751906334000698723288454227654466240011140570190301931122357632719033275258503935182047714841766010764632214069382579660602964184231995352310981811428980530707871661256260926759509418970021224649566130995825802676411575264295689037775857674060557127369881379685432291930869072749065675720647595081516460449973211035071920099349836074945813885239767788449030051892470053308048906746273036871919251738920141071153777908913021898541658119513188402271468288293408246833819954990709460114510017598873554406350044072275643892449218394225569069468466660333869360644718801813500285081977089623921689922204185138003164149106921903053243405307546841149889662566529697217181329051855403329741409045760789280950603184354320839342588593832348459938736210265795978675460906504449491132656307256451707333439200130425932724262464823848348296787445624028385464112471408499986690593095395244034885421580844176161027627954578726208600199909963055422192706751708210693468639072881081717288837393188012794669089175022406897622823484220002211676520484520241135615999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999028
ऐसे इनपुट जिनके परिणामस्वरूप गलत मूल्य होना चाहिए:
1
26897
79999999999999999990
437893890380859374299999999999985
12312312399999999999999999999999999999999999980
999998999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900
259232147948794494594485446818048254863271026096382337884099237269509380022108148908589797968903058274437782549758243999867043174477180579595714249308002763427793979644775390624999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999911111
1027092382693614216458468213549848274267264533712122209400214436472662418869004625362768700557725707157332451380426829473630485959339004149867738722096608953864534215649211386152032635755501464142277508289403434891444020975243742942368836579910208098242623061684967794815600266752580663281483595687307649904776800899000484103534573979334062832465904049046104660220505973505050538180250643437654409375728443182380726453925959886901573523090619465866810938078629561306599174923972607310649219442207992951278588892681161967770532314854195892941913447519131828356181219857012229150315613569162930098836696593474888020746503116685472977764615483225628639443918309216648893055765917642528801571387940219884056021782642758517893124803355573565644666880920219871370649806723296262307899148031362558110611562055614190049332906933360406981359187305353360484377948591528385990255894034369523166777375785900198782250651053530165824984161319460372145229568890321167955690544235365954748429659526071133879976348254667755220636244075595290123987745560038255541751251200827018722242010925729483977388235141539109139120069464709993781356334885359200734157439642935779132120725231008699003342908280056975158266782782304550273268246184659474285971272532354920744956064671379745219778013465792544241259691493098443741845166419905920702654683993902052727208789915748213660571390107102976665776293366616518962323688316843422737162297255648351087284877987537325761187239807598009767936409247247417410607537333841650998421607775989879490006136112078031237742552602618996017404602674987181629319060214150458746352191115606789019875790921190573561400752476956787515392210098071407806221412149732955903681690377998882038499470092453400748916257640501488510563314141992573250882286817352407459053866180642034662845694338400386823496563185664221362457851894843439705365082614359220653285052800751906334000698723288454227654466240011140570190301931122357632719033275258503935182047714841766010764632214069382579660602964184231995352310981811428980530707871661256260926759509418970021224649566130995825802676411575264295689037775857674060557127369881379685432291930869072749065675720647595081516460449973211035071920099349836074945813885239767788449030051892470053308048906746273036871919251738920141071153777908913021898541658119513188402271468288293408246833819954990709460114510017598873554406350044072275643892449218394225569069468466660333869360644718801813500285081977089623921689922204185138003164149106921903053243405307546841149889662566529697217181329051855403329741409045760789280950603184354320839342588593832348459938736210265795978675460906504449491132656307256451707333439200130425932724262464823848348296787445624028385464112471408499986690593095395244034885421580844176161027627954578726208600199909963055422192706751708210693468639072881081717288837393188012794669089175022406897622823484220002211676520484520241135615999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999027
नियम
आप अपने कार्यक्रम में किसी भी बिंदु पर, पूर्णांक से बड़ा संभाल नहीं कर सकते
18446744073709551615
( ), यदि आपकी भाषा में मनमाना-सटीक पूर्णांक (या इससे अधिक संख्या के साथ उच्च संख्या में संचय करने के लिए संख्याओं की अनुमति है)।264
यह बस उन समाधानों को रोकने के लिए है जो सभी संभव केल्विन नंबरों (या सभी संभावित मूल्यों ) के माध्यम से लूप करते हैं ।
10n - n
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाएगा।
9
होना चाहिए वह सत्य है। फिक्स्ड।