1{?)=}&~".>")!@(</=+={"/>}*
দুচোখে:
1 { ? )
= } & ~ "
. > " ) ! @
( < / = + = {
" / > } * .
. . . . .
. . . .
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
এর ক্রমটি বিবেচনা করুন b(a) = a(n) - 1
এবং কিছুটা পুনর্বিন্যাস করুন:
b(a) = a(n) - 1
= a(n-1)*(a(n-1)-1) + 1 - 1
= (b(n-1) + 1)*(b(n-1) + 1 - 1)
= (b(n-1) + 1)*b(n-1)
= b(n-1)^2 + b(n-1)
এই সিকোয়েন্সটি খুব অনুরূপ তবে আমরা ইনক্রিমেন্টটি খুব শেষ পর্যন্ত পিছিয়ে দিতে পারি, যা এই প্রোগ্রামে একটি বাইট সংরক্ষণ করতে ঘটে।
সুতরাং এখানে বর্ণিত উত্স কোডটি রয়েছে:
টিমভির হেক্সাগনি কলরার দিয়ে তৈরি ।
এবং এখানে একটি মেমরি চিত্র রয়েছে (লাল ত্রিভুজটি মেমরি পয়েন্টারের প্রাথমিক অবস্থান এবং অরিয়েন্টেশন দেখায়):
Timwi এর সঙ্গে তৈরি করা হয়েছে EsotericIDE ।
কোডটি ধূসর পথের উপর দিয়ে শুরু হয় যা বাম কোণটি মোড়ানো করে, তাই প্রাথমিক রৈখিক বিটটি নিম্নলিখিতটি:
1{?)(
1 Set edge b(1) to 1.
{ Move MP to edge N.
? Read input into edge N.
)( Increment, decrement (no-op).
তারপরে কোডটি <
একটি শাখা যা হিট করে এবং প্রধান লুপটির শুরু (এবং শেষ) নির্দেশ করে। যতক্ষণ এন প্রান্তের ইতিবাচক মান রয়েছে ততক্ষণ সবুজ পথটি কার্যকর করা হবে uted এই পথটি কয়েক বার গ্রিডের চারপাশে আবৃত হয় তবে এটি আসলে সম্পূর্ণ লিনিয়ার:
""~&}=.*}=+={....(
.
তাই প্রকৃত কোড, নো-অপস আছেন:
""~&}=*}=+={(
"" Move the MP to edge "copy".
~ Negate. This is to ensure that the value is negative so that &...
& ...copies the left-hand neighbour, i.e. b(i).
}= Move the MP to edge b(i)^2 and turn it around.
* Multiply the two copies of b(i) to compute b(i)^2.
}= Move the MP back to edge b(i) and turn it around.
+ Add the values in edges "copy" and b(i)^2 to compute
b(i) + b(i)^2 = b(i+1).
={ Turn the memory pointer around and move to edge N.
( Decrement.
একবার এই হ্রাস কমে N
যাওয়ার পরে 0
, লাল পথটি কার্যকর করা হয়:
")!@
" Move MP back to edge b(i) (which now holds b(N)).
) Increment to get a(N).
! Print as integer.
@ Terminate the program.