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


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বার y। x 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.