অসীম শক্তি টাওয়ার


22

চ্যালেঞ্জ

বেশ সহজ, একটি ইনপুট দেওয়া হয়েছে x, এটি অসীম শক্তি টাওয়ার গণনা করুন !

x^x^x^x^x^x...

আপনারা সেখানে গণিত-প্রেমীদের জন্য, এটি হ'ল xঅসীম প্রবন্ধ

নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

x^x^x^x^x^x... = x^(x^(x^(x^(x...)))) != (((((x)^x)^x)^x)^x...)

অবাক করে দিয়েছি যে এর সাথে জড়িত আমাদের কাছে "সরল" গণিতের চ্যালেঞ্জ নেই! *

অনুমিতি

  • xসর্বদা একত্রিত হবে ।
  • নেতিবাচক এবং জটিল সংখ্যাগুলি পরিচালনা করতে সক্ষম হওয়া উচিত
  • এটি , তাই সর্বনিম্ন বাইটস জয়!
  • আপনার উত্তরগুলি কমপক্ষে 5 দশমিক জায়গায় সঠিক হওয়া উচিত

উদাহরণ

Input >> Output

1.4 >> 1.8866633062463325
1.414 >> 1.9980364085457847
[Square root of 2] >> 2
-1 >> -1
i >> 0.4382829367270323 + 0.3605924718713857i
1 >> 1
0.5 >> 0.641185744504986
0.333... >> 0.5478086216540975
1 + i >> 0.6410264788204891 + 0.5236284612571633i
-i >> 0.4382829367270323 -0.3605924718713857i
[4th root of 2] >> 1.239627729522762

* ( এখানে আরও জটিল চ্যালেঞ্জ বাদে )


1
আমি মনে করি না এই টাওয়ারটি x = −2 বা x = .50.5 এ রূপান্তর করে ।
অ্যান্ডারস ক্যাসরগ

@ অ্যান্ডারস ক্যাসরগ আমি সম্মত, যদিও সমস্ত প্রোগ্রামের একই রূপান্তরিত উত্তর রয়েছে বলে মনে হয়। কেন তারা একত্রিত হয় না?
গ্রাভিটন

2
x = −2 একটি 8-চক্রের প্রতি আকৃষ্ট হয় এবং x = .50.5 6-চক্রের প্রতি আকৃষ্ট হয়। (আমার প্রোগ্রামটি এখনও এই ক্ষেত্রে একটি উত্তর দেয়, তবে এটি চক্রের একটি পয়েন্ট এবং একটি নির্দিষ্ট পয়েন্ট নয়; এটি রূপান্তরকে নির্দেশ করে না))
অ্যান্ডারস ক্যাসরগ

নিবন্ধন করুন -২ এর জন্য '8' এবং -0.5 এর জন্য '6' কেন আপনার জানা হবে না? অবশ্যই কৌতূহলের বাইরে।
গ্রাভিটন

2
পুনরাবৃত্তিগুলি আমি যত সহজে সাবলীলভাবে
Anders Kaseorg

উত্তর:



10

পাইথ,  4  3 বাইট

অতিক্রম 4 এখনও নিয়মিত 4; (

u^Q

এটি অনলাইনে চেষ্টা করুন

কিভাবে এটা কাজ করে

u       first repeated value under repeated application of G ↦
 ^QG        input ** G
    Q   starting at input

2
আপনার শেষের দরকার নেই G, এটি স্বয়ংক্রিয়ভাবে পূর্ণ হবে।
FryAmTheEggman

ঠিক আছে, ধন্যবাদ!
অ্যান্ডারস কাসের্গ

7

হাস্কেল , 100 63 বাইট

রূপান্তর না করে এমন ইনপুটগুলির জন্য (উদা। -2) এটি শেষ হবে না:

import Data.Complex
f x=until(\a->magnitude(a-x**a)<1e-6)(x**)x

untilআমাকে 37বাইট সম্পর্কে শেখানোর এবং সংরক্ষণ করার জন্য @ forrjanJohansen অনেক ধন্যবাদ !

এটি অনলাইন চেষ্টা করুন!


1
আপনি এই untilফাংশন দিয়ে অনেক ছোট করতে পারেন । এটি অনলাইন চেষ্টা করুন!
janrjan জোহানসেন

ঝরঝরে! জানতাম না until, অনেক অনেক ধন্যবাদ।
ბიმო

7

পাইথন 3 , 40 39 35 বাইট

  • বাইটের জন্য @ আর্জান জোহানসেনকে ধন্যবাদ: এর d>99পরিবর্তে d==99: কম বাইট-কাউন্টের জন্য আরও 1 টি পুনরাবৃত্তি
  • ধন্যবাদ ইউরিয়েলকে 4 টি বাইটের জন্য: x**Trueএক্স এর মূল্যায়ণ করা সত্যটির বুদ্ধিমান ব্যবহার x**(d>99or g(x,d+1))। শব্দটির এক্সপ্রেশন 99 এর চেয়ে বেশি গভীরতার জন্য সত্যকে মূল্যায়ন করে এবং এইভাবে পাস হওয়া মানটি দেয়।

সর্বোচ্চ-গভীরতা 100 সহ পুনরাবৃত্ত ল্যাম্বদা অর্থাৎ গভীরতার জন্য 100 একই মান প্রদান করে। প্রকৃতপক্ষে কনভার্জেন্সি-অজোনস্টিক, সুতরাং ফাংশনের জন্য অ-রূপান্তরকারী মানগুলির সাথে সংখ্যার জন্য অপ্রত্যাশিত আশা করুন।

g=lambda x,d=0:x**(d>99or g(x,d+1))

এটি অনলাইন চেষ্টা করুন!


1
Tio লিংকের মাধ্যমে আপনি প্রতিস্থাপন করতে পারেন complex('j')সঙ্গে1j
জনাব Xcoder

1
d>99আরও একটি পুনরাবৃত্তি করে এবং সংক্ষিপ্ত হয়।
janর্জন জোহানসেন

1
4 বাইট সংরক্ষণ করুন g=lambda x,d=0:x**(d>99or g(x,d+1)), সাথে x**Trueমূল্যায়ন করুনx
উরিল

@ ইউরাইল, এটি সত্যিই স্মার্ট ..... ধন্যবাদ !!!
অফিসিয়ালাইম

6

পাইথন 3, 37 30 27 বাইট

@ ফিলিপনার্দিবাটিস্তা থেকে -7 বাইট।
@Xnor থেকে -3 বাইট

পাইথনের অনেক কিছুই আমার আর মনে নেই তবে আমি আমার রুবির উত্তরটি পোর্ট করতে পেরেছি এবং অন্যান্য পাইথন 3 টি উত্তরকে পরাজিত করেছি: ডি

lambda x:eval('x**'*99+'1')

এটি অনলাইন চেষ্টা করুন!


1
এফওয়াইআই, এটি প্রদর্শিত হয় যে এফ-স্ট্রিংগুলি পাইথন ৩.6-এ প্রথম চালু হয়েছিল: পাইথন.আর . / দেবদেব / পেপস / পেপ ০৯৮৮ দেখুন । (এটি আপনাকে ব্যাখ্যা করবে যে কেন আপনার কোডটি আমার জন্য 3.5.2 তে কাজ করে না)) ভেবেছিলাম যে অন্য কেউ বিভ্রান্ত হলে আমি এই বিষয়টি উল্লেখ করব।
ম্যাথমন্ডন

1
আপনাকে x, eval('x**'*99+'1')কাজের মানটির পরিবর্তে দরকার নেই
xnor

@ এক্সনোর দোহ, অবশ্যই এটি করেছেন :) ধন্যবাদ
দানিরো

@ এক্সনর ঝরঝরে - আমি আমার রুবির উত্তরে একই জিনিসটি প্রয়োগ করেছি এবং এটি
কোনওরকমে

+1, আমি নিজেকে অস্তিত্বের কথা ভুলে গিয়ে চড় মারছি ....: ডি
অফিসিয়ালাইম

4

গণিত, 12 বাইট

#//.x_:>#^x&

ইনপুট হিসাবে একটি ভাসমান ‐ পয়েন্ট নম্বর নেয়।


4

জে , 5 বাইট

^^:_~

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

প্রথমে আমি দেখাব যে শেষটি পার্স করার পরে কোন আদেশটি কার্যকর করা হচ্ছে ~এবং ওয়াক-থ্রোটি হবে নতুন ক্রিয়াটির জন্য।

(^^:_~) x = ((x&^)^:_) x

((x&^)^:_) x  |  Input: x
      ^:_     |  Execute starting with y = x until the result converges
  x&^         |    Compute y = x^y

জে সমাধান এখানে সত্যিই দুর্দান্ত। সূক্ষ্ম শস্যের মধ্যে আপনার প্রথম লাইনটি ভাঙ্গার জন্য, নিম্নলিখিত কি ঘটেছিল তা বলা কি সঠিক: (^^:_) পাওয়ার কঞ্জের মাধ্যমে একটি নতুন ডায়াডিক ক্রিয়া তৈরি করে, তারপরে স্ব-ক্রিয়া ~ক্রিয়াটি ক্রিয়াকে মনাদিক করে তোলে, যাতে কোনও যুক্তি দেওয়া হলে xতা প্রসারিত হয় x (^^:_) x। বাম xপরবর্তীকালে "লাঠি", দান ((x&^)^:_) xআপনার নোট অনুযায়ী, এবং পুনরাবৃত্তির সময় শুধুমাত্র ডান যুক্তি পরিবর্তন?
জোনা

1
@Jonah নিশ্চিত, যখন ক্ষমতা সঙ্গে একটি দ্বৈত দুটি আর্গুমেন্ট দান, x u^:n yবাম যুক্তি যুগল সঙ্গে একটি একসংখ্যা যে নেস্টেড হয় গঠনের জোড়া হয় nবার yx u^:n y -> (x&u)^:n y -> (x&u) ... n times ... (x&u) y
মাইল

4

সি # (.নেট কোর) , 79 78 বাইট

x=>{var a=x;for(int i=0;i++<999;)a=System.Numerics.Complex.Pow(x,a);return a;}

এটি অনলাইন চেষ্টা করুন!

আমি i= 999 পর্যন্ত পুনরাবৃত্তি করতে বেছে নিয়েছি কারণ আমি যদি 99 পর্যন্ত পুনরাবৃত্তি করি তবে কয়েকটি উদাহরণ প্রয়োজনীয় নির্ভুলতায় পৌঁছায় না। উদাহরণ:

Input:                      (0, 1)
Expected output:            (0.4382829367270323, 0.3605924718713857)
Output after 99 iterations: (0.438288569331222,  0.360588154553794)
Output after 999 iter.:     (0.438282936727032,  0.360592471871385)

আপনি দেখতে পাচ্ছেন, 99 টি পুনরাবৃত্তির পরে কল্পিত অংশটি 5 ম দশমিক স্থানে ব্যর্থ হয়েছিল।

Input:                      (1, 1)
Expected output:            (0.6410264788204891, 0.5236284612571633)
Output after 99 iterations: (0.64102647882049,   0.523628461257164)
Output after 999 iter.:     (0.641026478820489,  0.523628461257163)

এই ক্ষেত্রে 99 পুনরাবৃত্তির পরে আমরা প্রত্যাশিত নির্ভুলতা পাই। আসলে, আমি iএকই বাইট গণনা সহ = 1e9 পর্যন্ত পুনরাবৃত্তি করতে পারতাম , তবে এটি কোডটি যথেষ্ট ধীর করে দেবে

  • 1 বাইট একটি অনামী ব্যবহারকারীর জন্য ধন্যবাদ সংরক্ষণ করা।

1
+1 জটিল শ্রেণীর জন্য আমি জানতাম না যে এর অস্তিত্ব রয়েছে।
TheLethalCoder

1
@ লেটলকোডার আমি এটি গুগল না করা পর্যন্ত না করি। :-)
চার্লি


2

রুবি, 21 20 বাইট

->n{eval'n**'*99+?1}

দাবি অস্বীকার : একটি শক্তিতে একটি জটিল সংখ্যা উত্থাপন করার সময় রুবি কিছু অদ্ভুত মান প্রত্যাবর্তন করে বলে মনে হয় । আমি ধরে নিয়েছি রুবির পুরো গণিত মডিউলটি ঠিক করার পক্ষে এই চ্যালেঞ্জের সুযোগ নেই but তবে অন্যথায় এই ফাংশনের ফলাফলগুলি সঠিক হওয়া উচিত। সম্পাদনা : আমার পাইথন 3 উত্তর থেকে সর্বশেষ পরিবর্তনগুলি প্রয়োগ করেছেএবং হঠাৎ এটি কোনওরকম একই প্রত্যাশিত ফলাফল দেয় :)

এটি অনলাইন চেষ্টা করুন!


এর পরে স্থানটি বের করুন eval
মূল্য কালি

আপনার আসল সংস্করণটি জটিল পরীক্ষার ক্ষেত্রে ব্যর্থ হয়েছে কারণ এটি স্ট্রিংটিকে স্পষ্ট করেছে "0+1i**0+1i**0+1i**...", যা ভুল উপায়ে পার্স করে যেহেতু **তার চেয়ে বেশি অগ্রাধিকার রয়েছে +
janrjan জোহানসেন

@ আরজান জোহেনসেন হু, আপনি ঠিক বলেছেন আমার ধারণা আমি এই কারণে বোকা হয়েছি #inspectএবং #to_sবিভিন্ন মূল্যবোধ ফিরিয়ে দিয়েছি । প্রাথমিক উত্তর জমা দেওয়ার আগে আমি আইআরবিতে কিছু পরীক্ষা করেছি এবং দেখেছি যে Complex(1,2), আরএপিএলে প্রবেশ করানো হবে (1+2i), বন্ধনীগুলি সহ including মানটি স্ট্রিংফাই করার সময় তবে প্রথম বন্ধনী অন্তর্ভুক্ত করা হয় না, সুতরাং আপনার নজির হিসাবে অগ্রাধিকারটি এটি বিশৃঙ্খলাবদ্ধ করে।
দানিরো

আমি ভেবেছিলাম evalব্যবহার নিষিদ্ধ ছিল।
ভি। কুর্তোয়া

@ V.Courtois ঠিক আছে। কিন্তু এটা না.
ডানিরো

2

টিআই-বেসিক, 16 বাইট

ইনপুট এবং আউটপুট সংরক্ষণ করা হয় Ans

Ans→X
While Ans≠X^Ans
X^Ans
End

1

আর , 36 33 বাইট

- 3 বাইট জারকো ডাবলডামকে ধন্যবাদ

Reduce(`^`,rep(scan(,1i),999),,T)

স্টিডিনের কাছ থেকে পড়ে। Reduceসঠিক ক্রমে ক্ষতিকারককে প্রয়োগ করতে ডান দিক থেকে।

এটি চেষ্টা করুন (ফাংশন)

এটি চেষ্টা করুন (স্টাডিন)


1
scan(,1i)কাজ করে। একইভাবে কীভাবে scan(,'')কাজ করে।
জেএডি

@ জারকো ডাবডেলডাম অবশ্যই! কখনও কখনও আমার মস্তিষ্ক কাজ করে না।
জিউসেপে

1

জাভাস্ক্রিপ্ট, 33 বাইট

f=(x,y=x)=>(x**y===y)?y:f(x,x**y)

জাভাস্ক্রিপ্ট কল্পিত সংখ্যা হ্যান্ডেল করে না।
kamoroso94

1

এমএটিএল , 20 10 বাইট

@ লুইস মেন্ডোকে অর্ধেকে ধন্যবাদ জানাতে হবে

t^`Gw^t5M-

এটি অনলাইন চেষ্টা করুন!

এটি আমার প্রথম এবং এমএটিএল ব্যবহারের মাধ্যমে আমার প্রথমবার যাতে আমি নিশ্চিত যে এটি সহজেই ছড়িয়ে পড়েছে।


সাইটে স্বাগতম, এবং প্রথম প্রথম উত্তর! কয়েকটি পরামর্শ: XIIসমতুল্য t। আপনি স্বয়ংক্রিয় ক্লিপবোর্ড থেকে মুক্তি XHএবং Hব্যবহার করতে পারেন M, এটি ttt^`yw^t5M-]bb-x। এবং শেষ অংশে, আপনি যে অযাচিত মানগুলি ব্যবহার করতে পারেন তা মুছে ফেলার পরিবর্তে &, যা কেবলমাত্র শীর্ষটি দেখানোর জন্য অন্তর্নিহিত প্রদর্শন ফাংশনটিকে বলে। সুতরাং, আপনি ttt^`yw^t5M-]&কয়েকটি বাইট ব্যবহার এবং সংরক্ষণ করতে পারেন ।
লুইস মেন্ডো

এছাড়াও, প্রথম tপ্রয়োজন হয় না এবং ব্যবহার Gঅন্য পরিবর্তে tআপনি এড়াতে পারেন &এবং এইভাবে ছেড়ে ]অন্তর্নিহিত: t^`Gw^t5M-। আরে, আমরা বাইট গণনা অর্ধেক কমিয়েছি!
লুইস মেন্ডো

@ লুইস মেন্ডো দুর্দান্ত টিপসের জন্য ধন্যবাদ! এমএটিএল সম্পর্কে আমার অনেক কিছু শেখার আছে তবে আমি এটি সত্যিই পছন্দ করি।
সিনাস্কি

এটা শুনে আনন্দিত হলাম!
লুইস মেন্ডো

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