গ্রাহামের সংখ্যাটির শেষ সংখ্যাগুলি গণনা করুন


13

গ্রাহামের সংখ্যাটি in. এ শেষ হয় এটি একটি বিশাল সংখ্যা, তাত্ত্বিকভাবে মহাবিশ্বের আকারের চেয়ে বেশি তথ্য সংরক্ষণের প্রয়োজন। তবে গ্রাহামের সংখ্যার শেষ কয়েকটি অঙ্ক গণনা করা সম্ভব।

শেষ কয়েকটি সংখ্যা হ'ল:

02425950695064738395657479136519351798334535362521
43003540126026771622672160419810652263169355188780
38814483140652526168785095552646051071172000997092
91249544378887496062882911725063001303622934916080
25459461494578871427832350829242102091825896753560
43086993801689249889268099510169055919951195027887
17830837018340236474548882222161573228010132974509
27344594504343300901096928025352751833289884461508
94042482650181938515625357963996189939679054966380
03222348723967018485186439059104575627262464195387

আপনার প্রোগ্রামে এগুলি (বা অনুরূপ সংখ্যা) থাকতে পারে না তবে তাদের অবশ্যই গণনা করতে হবে। এটি অবশ্যই 200 বা তার বেশি সংখ্যার গণনা করবে।

Stdout যাও আউটপুট। শালীন হার্ডওয়্যারটিতে সর্বোচ্চ 2 মিনিটের চলমান সময়। সংক্ষিপ্ততম প্রোগ্রামের জয়।


কত অঙ্ক মুদ্রণ করা উচিত?
ডগবার্ট

@ ডগবার্ট ডি'হো আমি সেটা মিস করছিলাম. 200 বা আরও ভাল হবে।
টমাস ও

3**7625597484987পাইথন যেখানে করে তা রুবি এমনকি
গণনাও

@gnibbler, উমম কিভাবে? ফলাফল 3 ট্রিলিয়ন এর বেশি সংখ্যক হবে।
ডগবার্ট

1
@ ডগবার্ট, যথেষ্ট মেমরি এবং সময় দিয়েছিল পাইথন এটি দীর্ঘস্থায়ী করে ব্যবহার করে একটি গণনা এগিয়ে যাবে। রুবি 3 ** 5000000 এমনকি করবে না। সেখানে কিছুটা সীমাবদ্ধতা রয়েছে বলে মনে হচ্ছে
gnibbler

উত্তর:


9

ডিসি - 21 অক্ষর

[3z202>xO200^|]dsxxrp

এটি আমার কম্পিউটারে প্রায় এক মিনিট সময় নেয় এবং 200 এর চেয়ে বড় মানের জন্য এটি অনেক বেশি সময় নিতে পারে leading এটি নেতৃস্থানীয় শূন্যগুলি আউটপুট দেয় না।

এখানে একটি সামান্য দীর্ঘ কিন্তু দ্রুত সংস্করণ (26 অক্ষর):

[3rAz^|dz205>x]dsxxAz6-^%p
3[3rAz^|dz202>x]dsxxAz3-^%p # or an extra character for a few less iterations

4

হাস্কেল, 99

পারফরম্যান্স তাত্পর্যপূর্ণ নয়, তবে এটি আমার দশক পুরানো হার্ডওয়্যারটিতে এক মিনিটে 500 সংখ্যার গণনা পরিচালনা করে।

f a b|b==0=1|odd b=mod(a*f a(b-1))m|0<1=f(mod(a^2)m)$div b 2
main=print$iterate(f 3)3!!500
m=10^500

(বিটিডব্লিউ, আমি আরও আধুনিক হার্ডওয়্যারে এর পারফরম্যান্স সম্পর্কে শুনতে আগ্রহী)


আমার পিসিতে চালাতে প্রায় 19 সেকেন্ড সময় নেয়। পার্শ্ব নোটে, এটি আউটপুটের আগে একটি শীর্ষস্থানীয় 0 মুদ্রণ করে না।
ডগবার্ট

হ্যাঁ, এটি নেতৃস্থানীয় শূন্যগুলির সাথে সমস্ত অঙ্কের গুনে বগি। 501 ;-) জন্য কেবল গণনা করুন বেঞ্চমার্কের জন্য ধন্যবাদ। আপনি এটি ব্যাখ্যা বা সংকলন চালিত?
জেবি

আমি এটি দিয়ে সংকলিত ghc -o g.exe g.hs। এটি সঙ্কলনের সেরা উপায় কিনা তা নিশ্চিত নন।
ডগবার্ট

আমি কেবল দৌড়েছি ghc -O3 graham.hs অনলাইন ডক থেকে প্রস্তাবিত বাদাস বিকল্পগুলি বলে মনে হচ্ছে -O2 -fvia-C। (এবং দেখে মনে হচ্ছে যে আমার জিএইচসি এরই মধ্যে কয়েকটি রিলিজ পিছনে রয়েছে)
জেবি

এটি উভয় সঙ্গে একই গতিতে চলমান হবে বলে মনে হয় -O3এবং -O2 -fvia-Cপ্রায় 18.3 সেকেন্ডে।
ডগবার্ট

3

পাইথন - 41 টি অক্ষর

499 সংখ্যা

x=3;exec'x=pow(3,x,10**500);'*500;print x

500 সংখ্যা

x=3;exec'x=pow(3,x,10**500);'*500;print'0'+`x`

1
আপনি জ্ঞান ব্যবহার করছেন যে পিছন থেকে 500th অঙ্ক একটি 0. নিজেই এর ভুল উত্তর বলো 200. দিতে হবে,

1
@ টিম সমস্যাটি "200 ডিজিট বা আরও বেশি" চেয়েছে। কেবল হার্ডকোড একটি গণনা যা কাজ করে এবং এটি দিয়ে সম্পন্ন করা হয়। (বা এটি এটিকে ছেড়ে দিন: এটি 499 ডিজিট মুদ্রণ করে এবং জিজ্ঞাসা করা প্রশ্নের পক্ষে এটি যথেষ্ট ভাল)
জেবি

@ জেবি: অবশ্যই, 0 টি বাদ দিলে আমি 499 এর সাথে সন্তুষ্ট হব। এখন, তবে এটি ধরে নেওয়া হয় যে একটি নির্দিষ্ট অঙ্ক 0 হবে

@ user475 - পাওয়ার-টাওয়ারগুলির বৈশিষ্ট্য অনুসারে, আপনি যদি সর্বশেষ (d) সংখ্যাগুলি গণনা করছেন এবং ফলাফলটি (d) সংখ্যাগুলির চেয়ে কম হয়, তবে অনুপস্থিত অঙ্কগুলি (বাম দিকে) অবশ্যই "0 এর" হবে। সুতরাং অনুপস্থিত "0" সংখ্যা যুক্ত করা ঠিক আছে, তবে ফলাফলের দৈর্ঘ্য পরীক্ষা করে এবং "0 এর" উপযুক্ত সংখ্যা যুক্ত করে এটি করা উচিত।
কেভিন ফেগান

3

পাইথন - 62 59 55 টি অক্ষর

x=3
for i in range(500):x=pow(3,x,10**500)
print"0%d"%x

আমার পিসিতে প্রায় 12 সেকেন্ড সময় নেয়।

sh-3.1$ time python cg_graham.py
02425950695064738395657479136519351798334535362521430035401260267716226721604198
10652263169355188780388144831406525261687850955526460510711720009970929124954437
88874960628829117250630013036229349160802545946149457887142783235082924210209182
58967535604308699380168924988926809951016905591995119502788717830837018340236474
54888222216157322801013297450927344594504343300901096928025352751833289884461508
94042482650181938515625357963996189939679054966380032223487239670184851864390591
04575627262464195387

real    0m11.807s
user    0m0.000s
sys     0m0.015s
sh-3.1$

3
নেটিভ পাওমোড হ'ল হত্যাকারী :-)
জেবি

আপনি ব্যবহার করতে পারেন10**500
gnibbler

@ জেবি, কেবলমাত্র এই কারণেই আমি এই প্রবেশের জন্য পাইথনটি ব্যবহার করেছি :)
ডগবার্ট

@gnibbler, আপডেট, ধন্যবাদ! আমি পাইথনে নতুন আছি :)
ডগবার্ট

0

অ্যাক্সিয়াম, 63 বাইট

f()==(r:=3;d:=10^203;for i in 1..203 repeat r:=powmod(3,r,d);r)

ungolf এবং ফলাফল

--This find the Graham's number follow the algo found in wiki
--http://en.wikipedia.org/wiki/Graham%27s_number
ff()==
   r:=3; d:=10^203
   for i in 1..203 repeat r:=powmod(3,r,d)
   r

(3) -> a:=f()::String
   (3)
  "8871783083701834023647454888222216157322801013297450927344594504343300901096
  92802535275183328988446150894042482650181938515625357963996189939679054966380
  03222348723967018485186439059104575627262464195387"
                                                             Type: String
(4) -> #a
   (4)  203
                                                    Type: PositiveInteger

# a = 203 মানে লেন সংখ্যাটি> 200 এটি মেনাস হয় যে এটির প্রথমে 0 নেই ...


0

হেডস্যাকস, 602 বাইট

(h@HP0&Y+h8h (hx0RWc@4vYcx#@#PJ"B?[#CPx (h Lx$2(pl2YL;KD:T{9$2j<
 LSSh,ZT l2I<Pp,@4SX`,:xtc@T",($)<cKT\lbBAy44,dQl[yL"l+i,;9<*j0P
|)lD[+`\RBi!< LaD(LHPLyt{{@\iADRQdHTZQIT3[X`DB*`X$Cxh$*(T0$| ,[;
4:bit0DqAqi!lCYQ)<Ad(|1<$R4l+#tZrLPDatC[d*@0pDclJbh0|#S9<JRy!TP0
D+!|qiTXp<r$##Atj,B1ts;HLJ"Xp44I4cK4@|Q,4JI$|hp$Zyd+yl:y<s#\pD:9
4RDK,A!<X \cqLZ" h,kHp|qLRQIDh,+StZbL+{(|jqqL;9L"(xd"<s$8\:x,CY\
z0T[,(XdcxlbaD*D;+tDj\JIi4k[)LPDLBzP@DSc$jL $s4BjQ19|;!)|9t;TaQA
dLzit[0@l2!)I$,0P@$y<L4pLPLStQT"!a| $+8(DZ`00t ,RtX4C@$yQ11|KI\"
`|2<k3|R(Dyi<)LshTrzQ$sp D+DRbH|Q$CqT0D;AA\jdXd"ppdK3LzZl#\Bl`@t
k$*,11qTK+Xp|rqDZXp4{C!<Y4

শেষ 200 সংখ্যা মুদ্রণ।

দৌড়ানোর আগে দয়া করে নতুন লাইনগুলি সরিয়ে দিন।


আমাদের কীভাবে এটি চালানোর কথা?
কেয়ার্ড কোইনরিঙ্গিংহিং

একেবারে কোনও ধারণা নেই (আমি কেবল এটি বিএফ থেকে অনুবাদ করেছি)। তবে আমি গিথুবে "হেডস্যাকস" অনুসন্ধান করেছি এবং দেখে মনে হচ্ছে কয়েকটি বাস্তবায়ন হয়েছে (যদিও রেফারেন্স বাস্তবায়ন লিঙ্কটি মারা গেছে বলে মনে হচ্ছে)।
17'র ফলমূল এওসোলিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.