এটি কি প্রার্থী ক্যালভিন নম্বর?


27

এই চ্যালেঞ্জটি আমাদের কিংবদন্তি চ্যালেঞ্জ লেখক Cal , ক্যালভিনের শখগুলির - যা এখন হেল্কা হোম্বা নামকরণ করা হয়েছে - ডেনিস নাম্বার জেনারেটের মতো একই অনুভূতিতে একটি শ্রদ্ধা ।

ক্যালভিন পিপিসিজিতে বেশ চিত্তাকর্ষক অবদানকারী, সামগ্রিকভাবে 6th ষ্ঠ সর্বাধিক খ্যাতি এবং সম্ভবত আমাদের সকলের মধ্যে অনির্দিষ্টভাবে সেরা চ্যালেঞ্জ লেখার দক্ষতা। তবে অবশ্যই এই চ্যালেঞ্জের জন্য আমরা তার ব্যবহারকারীর আইডিতে ফোকাস করব।

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 - nn

এখানে প্রথম কয়েকটি সংখ্যা প্রকাশ করা যেতে পারে যা এইভাবে প্রকাশ করা যেতে পারে, যা আমরা এরপরে কলভিন নাম্বারে কল করব :

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(যেমন n10 দ্বারা বিভাজ্য) এর মানগুলির জন্য ক্যালভিন (এন) সমাপ্ত হয় ।102n - n

    এটি হ'ল, প্যাটার্নটি স্বাভাবিকের চেয়ে দ্বিগুণ অঙ্কের জন্য প্রসারিত হয়, সমাপ্তিতে অতিরিক্ত সংখ্যার সাথে 9সমান n

  • যখন nএকটি শক্তি 10( 10, 100, 1000, ইত্যাদি), প্যাটার্ন প্রসারিত আরও-যে এমনকি একক অঙ্ক একটি পারেন হয় 9বা 0

    এই নিদর্শনটি নিম্নলিখিত: নাইন এবং শূন্য। একটি চার্টে এটি বোঝা সহজ (আপনার সমাধানটি কেবল যাইহোক 10000 পর্যন্ত সংখ্যা পরিচালনা করতে হবে, সুতরাং আপনার প্রয়োজন কেবল এটি):(n + 1) * 10n - nn

    n      |  Calvin(n)
    -------+-----------------------
    10     |  19 nines, 1 zero
    100    |  298 nines, 2 zeroes
    1000   |  3997 nines, 3 zeroes
    10000  |  49998 nines, 4 zeroes
    

    নাইন সংখ্যা এমনকি ক্যালভিন নম্বরের নিজেই বিভিন্ন বৈশিষ্ট্য প্রদর্শন করে, কিন্তু এই চ্যালেঞ্জের জন্য এটি খুব বেশি বিশদ।

চ্যালেঞ্জ

ক্যালভিন নাম্বারগুলি অনেক বড়, খুব দ্রুত পাওয়া যায়, " সুনির্দিষ্ট-নির্ভুলতার পূর্ণসংখ্যার ব্যতীত ভাষায় ন্যাশনাল ক্যালভিন নম্বর চ্যালেঞ্জটি সম্ভব হয় get সুতরাং, কোনও সংখ্যা উপরের ধরণগুলির সাথে খাপ খায় কিনা তা নির্ধারণ করা চ্যালেঞ্জ হ'ল", একটি নম্বর একটি "প্রার্থী ক্যালভিন নম্বর" বা না।

প্রার্থী ক্যালভিন নম্বর বিবেচনা করার জন্য এখানে কোনও সংখ্যার মানদণ্ড রয়েছে (এরপরে সংক্ষিপ্তার জন্য সিসিএন হিসাবে উল্লেখ করা হয়):

  • এটি একটি সংখ্যার সাথে শেষ হয় যা পূর্ণসংখ্যার জন্য প্যাটার্নে ফিট করে ।10n - nn

    সুতরাং, সিসিএন হওয়ার জন্য একটি সংখ্যার 9 বা 98 বা 997, 9996, 99995 ইত্যাদি দিয়ে শেষ হতে হবে must

  • শেষ সংখ্যাটি যদি হয় তবে এটি পূর্ববর্তী বিন্দুর মতোই 0শেষ হতে হবে ।102n - nn

    এর অর্থ এটি 12312312399999999999999999999999999999999999980সিসিএন নয়, তবে 10485759999999999999999999999999999999999999980এটি (এটি সঠিক, বাস্তবে)।

  • nপূর্ববর্তী দুটি পদক্ষেপের মান যদি 10 এর শক্তি হয় তবে পুরো সংখ্যাটি অবশ্যই উপরে বর্ণিত তৃতীয় প্যাটার্নের সাথে মানিয়ে যাবে।

ইনপুট আউটপুট

ইনপুটটি স্ট্রিং হিসাবে সরবরাহ করা হবে এবং এটি সর্বদা এমন সংখ্যার প্রতিনিধিত্ব করবে Calvin(10000) + 10000যা কম (যা হিসাবে প্রকাশ করা যায় )। (নির্মল করতে, সর্বাধিক সম্ভাব্য ইনপুট 50000 নবম সংখ্যা, এবং অন্তত সম্ভব ইনপুট ।)10500001

যদি ইনপুটটি এমন কোনও সংখ্যাকে উপস্থাপন করে যা সিসিএন হয় এবং অন্যথায় মিথ্যা মান থাকে The জন্য এই পদ সংজ্ঞা, মেটা দেখতে

পরীক্ষার মামলা

ইনপুটগুলির ফলস্বরূপ সত্যের মান হওয়া উচিত:

9
26997
99999999999999999990
437893890380859374999999999999985
10485759999999999999999999999999999999999999980
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900
259232147948794494594485446818048254863271026096382337884099237269509380022108148908589797968903058274437782549758243999867043174477180579595714249308002763427793979644775390624999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999850
1027092382693614216458468213549848274267264533712122209400214436472662418869004625362768700557725707157332451380426829473630485959339004149867738722096608953864534215649211386152032635755501464142277508289403434891444020975243742942368836579910208098242623061684967794815600266752580663281483595687307649904776800899000484103534573979334062832465904049046104660220505973505050538180250643437654409375728443182380726453925959886901573523090619465866810938078629561306599174923972607310649219442207992951278588892681161967770532314854195892941913447519131828356181219857012229150315613569162930098836696593474888020746503116685472977764615483225628639443918309216648893055765917642528801571387940219884056021782642758517893124803355573565644666880920219871370649806723296262307899148031362558110611562055614190049332906933360406981359187305353360484377948591528385990255894034369523166777375785900198782250651053530165824984161319460372145229568890321167955690544235365954748429659526071133879976348254667755220636244075595290123987745560038255541751251200827018722242010925729483977388235141539109139120069464709993781356334885359200734157439642935779132120725231008699003342908280056975158266782782304550273268246184659474285971272532354920744956064671379745219778013465792544241259691493098443741845166419905920702654683993902052727208789915748213660571390107102976665776293366616518962323688316843422737162297255648351087284877987537325761187239807598009767936409247247417410607537333841650998421607775989879490006136112078031237742552602618996017404602674987181629319060214150458746352191115606789019875790921190573561400752476956787515392210098071407806221412149732955903681690377998882038499470092453400748916257640501488510563314141992573250882286817352407459053866180642034662845694338400386823496563185664221362457851894843439705365082614359220653285052800751906334000698723288454227654466240011140570190301931122357632719033275258503935182047714841766010764632214069382579660602964184231995352310981811428980530707871661256260926759509418970021224649566130995825802676411575264295689037775857674060557127369881379685432291930869072749065675720647595081516460449973211035071920099349836074945813885239767788449030051892470053308048906746273036871919251738920141071153777908913021898541658119513188402271468288293408246833819954990709460114510017598873554406350044072275643892449218394225569069468466660333869360644718801813500285081977089623921689922204185138003164149106921903053243405307546841149889662566529697217181329051855403329741409045760789280950603184354320839342588593832348459938736210265795978675460906504449491132656307256451707333439200130425932724262464823848348296787445624028385464112471408499986690593095395244034885421580844176161027627954578726208600199909963055422192706751708210693468639072881081717288837393188012794669089175022406897622823484220002211676520484520241135615999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999028

ইনপুটগুলির ফলস্বরূপ মান হওয়া উচিত:

1
26897
79999999999999999990
437893890380859374299999999999985
12312312399999999999999999999999999999999999980
999998999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900
259232147948794494594485446818048254863271026096382337884099237269509380022108148908589797968903058274437782549758243999867043174477180579595714249308002763427793979644775390624999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999911111
1027092382693614216458468213549848274267264533712122209400214436472662418869004625362768700557725707157332451380426829473630485959339004149867738722096608953864534215649211386152032635755501464142277508289403434891444020975243742942368836579910208098242623061684967794815600266752580663281483595687307649904776800899000484103534573979334062832465904049046104660220505973505050538180250643437654409375728443182380726453925959886901573523090619465866810938078629561306599174923972607310649219442207992951278588892681161967770532314854195892941913447519131828356181219857012229150315613569162930098836696593474888020746503116685472977764615483225628639443918309216648893055765917642528801571387940219884056021782642758517893124803355573565644666880920219871370649806723296262307899148031362558110611562055614190049332906933360406981359187305353360484377948591528385990255894034369523166777375785900198782250651053530165824984161319460372145229568890321167955690544235365954748429659526071133879976348254667755220636244075595290123987745560038255541751251200827018722242010925729483977388235141539109139120069464709993781356334885359200734157439642935779132120725231008699003342908280056975158266782782304550273268246184659474285971272532354920744956064671379745219778013465792544241259691493098443741845166419905920702654683993902052727208789915748213660571390107102976665776293366616518962323688316843422737162297255648351087284877987537325761187239807598009767936409247247417410607537333841650998421607775989879490006136112078031237742552602618996017404602674987181629319060214150458746352191115606789019875790921190573561400752476956787515392210098071407806221412149732955903681690377998882038499470092453400748916257640501488510563314141992573250882286817352407459053866180642034662845694338400386823496563185664221362457851894843439705365082614359220653285052800751906334000698723288454227654466240011140570190301931122357632719033275258503935182047714841766010764632214069382579660602964184231995352310981811428980530707871661256260926759509418970021224649566130995825802676411575264295689037775857674060557127369881379685432291930869072749065675720647595081516460449973211035071920099349836074945813885239767788449030051892470053308048906746273036871919251738920141071153777908913021898541658119513188402271468288293408246833819954990709460114510017598873554406350044072275643892449218394225569069468466660333869360644718801813500285081977089623921689922204185138003164149106921903053243405307546841149889662566529697217181329051855403329741409045760789280950603184354320839342588593832348459938736210265795978675460906504449491132656307256451707333439200130425932724262464823848348296787445624028385464112471408499986690593095395244034885421580844176161027627954578726208600199909963055422192706751708210693468639072881081717288837393188012794669089175022406897622823484220002211676520484520241135615999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999027

বিধি

  • আপনি আপনার প্রোগ্রামের কোনও পর্যায়ে ( ) এর চেয়ে বড় সংখ্যক হ্যান্ডেল করতে পারবেন না , যদি আপনার ভাষাতে স্বেচ্ছাসেবী-নির্ভুলতা পূর্ণসংখ্যার (বা সংখ্যার প্রকারের চেয়ে বেশি সংখ্যক স্টোরিংয়ের অনুমতি দেওয়ার জন্য যথেষ্ট পরিমাণে নির্ভুলতার সাথে সংখ্যা) থাকে।18446744073709551615264

    এটি কেবলমাত্র সম্ভাব্য ক্যালভিন নম্বরগুলি (বা সমস্ত সম্ভাব্য মান ) এর মধ্য দিয়ে লুপগুলি রোধ করতে পারে ।10n - n

  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিতবে।


"যদি আগের দুটি ধাপে n এর মান 10 হয় তবে পুরো সংখ্যাটি অবশ্যই উপরে বর্ণিত তৃতীয় প্যাটার্নের সাথে মানিয়ে যাবে" " 'তৃতীয় প্যাটার্ন' কী বোঝায়?
feersum

@ ফেয়ারসামে তিনটি জিনিসের বুলেটযুক্ত তালিকা রয়েছে - এটি সর্বশেষ।
ডোরকনবব

আমি বুঝতে পারি না যে দ্বিতীয় থেকে শেষের মিথ্যা টেস্ট কেসটি মিথ্যা কেন। এটি কোন নিয়ম লঙ্ঘন করে?
অ্যালেক্সিস কিং

@ অ্যালেক্সিসকিং ভাল ক্যাচ; যা কিছু শেষ হয় 9তা সত্যবাদী হওয়া উচিত। সংশোধন করা হয়েছে।
ডুরকনব

@ ডুরকনব এমনকি এই পরিবর্তন সত্ত্বেও, সংখ্যাটি এখনও মানদণ্ডের সাথে খাপ খায় বলে মনে হচ্ছে। 845 এ শেষ হওয়া কোনও সংখ্যার 152 টি নাইন থাকা উচিত নয়? এটি যথেষ্ট পরিমাণে বেশি বলে মনে হচ্ছে। সেখানে কি অর্ধেক নম্বর থাকার কথা ছিল?
অ্যালেক্সিস কিং

উত্তর:


8

র‌্যাকেট, 353

(require srfi/13)(let([s(~a(read))])(for/or([n(range 1 999)])(and(let*([y(string-length(~a n))])(string-suffix?(string-append(make-string(-(if(=(modulo n 10)0)(* 2 n)n)y)#\9)(~r #:min-width y #:pad-string"0"(-(expt 10 y)n)))s))(let([n(inexact->exact(/(log n)(log 10)))])(or(not(integer? n))(string-prefix?(make-string(-(*(+ 1 n)(expt 10 n))n)#\9)s))))))

স্টিডিন, আউটপুট #tবা থেকে একটি সংখ্যা গ্রহণ করে #f

অবরুদ্ধ সংস্করণ:

(require srfi/13)

(define (calvin? str)
  (for/or ([n (in-range 1 10001)])
    (and (10^n-n$? n str)
         (or (not (integer? (/ (log n) (log 10))))
             (expt-of-ten-check? n str)))))

(define (10^n-n$? n str)
  (let* ([div-by-ten? (zero? (modulo n 10))]
         [digits (string-length (~a n))]
         [nines (- (if div-by-ten? (* 2 n) n) digits)]
         [suffix (string-append (make-string nines #\9)
                                (~r #:min-width digits #:pad-string "0" (- (expt 10 digits) n)))])
    (string-suffix? suffix str)))

(define (expt-of-ten-check? n str)
  (let* ([n (inexact->exact (/ (log n) (log 10)))]
         [nines (- (* (add1 n) (expt 10 n)) n)]
         [prefix (make-string nines #\9)])
    (string-prefix? prefix str)))

আমি সাধারণত কোড গল্ফ করি না, এবং র‌্যাঙ্কটি অবশ্যই এর পক্ষে সবচেয়ে উপযুক্ত ভাষা নয়, তবে এখনও কেউ উত্তর দেয়নি, তাই আমি বুঝতে পেরেছিলাম যে আমি এটি একটি শট দেব। ;)


তারা হয়ত আমার উত্তর দেওয়ার জন্য অপেক্ষা করছিল, তবে আমার পোস্টের ইতিহাসের দিক দিয়ে সম্ভবত আপনি সবচেয়ে ভাল অপেক্ষা করেন নি;)
ক্যালভিনের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.