)K`0
"$+"+¶<`.+
$.(*__2*$-1*
এটি অনলাইন চেষ্টা করুন!
0-ভিত্তিক, সুতরাং ইনপুট এন প্রথম দেয় এন + 1 ফলাফল দেয়।
ব্যাখ্যা
ওইআইএস থেকে পুনরাবৃত্তি ব্যবহার করে:
a(n) = a(n-1) + 2*a(n-2) + 1
চলুন প্রোগ্রামটির মাধ্যমে চলুন:
)K`0
এটি একটি ধ্রুবক পর্যায়: এটি ইনপুটটি বাতিল করে এবং কার্যকারী স্ট্রিংটিকে 0
সিকোয়েন্সের প্রাথমিক মান সেট করে । )
একটি গ্রুপ এই পর্যায়ে গোপন। এই গোষ্ঠীটি নিজেই কিছু করে না, তবে প্রায় প্রতিটি পর্যায়ে (গ্রুপ পর্যায় সহ) এর ফলাফলটি একটি লগতে রেকর্ড করে, এবং 0
প্রোগ্রামটি কাজ করার জন্য আমাদের সেই লগটিতে অনুলিপিটির দুটি কপি প্রয়োজন হবে ।
"$+"+¶<`.+
$.(*__2*$-1*
এখানে কনফিগারেশনের একটি গুচ্ছ রয়েছে: "$+"+
একটি লুপে মঞ্চটি মোড়ক করে। "$+"
একটি প্রতিকল্পন হিসাবে গণ্য, এবং হয় $+
প্রোগ্রামের ইনপুট, অর্থাত বোঝায় এন । যে লুপ চালানো হয় এই উপায়ে এন বার।
তারপরে ¶<
প্রতিটি পুনরাবৃত্তি একটি আউটপুট পর্যায়ে আবৃত করে, যা মঞ্চটির মুদ্রণ করে আবৃত একটি পিছনের লাইনফিডের সাথে ইনপুটটি (সুতরাং প্রথম পুনরাবৃত্তিটি শূন্যটি প্রিন্ট করে, দ্বিতীয় পুনরাবৃত্তিটি প্রথম পুনরাবৃত্তির ফলাফল প্রিন্ট করে)।
মঞ্চটি নিজেই শেষ লাইনের বিকল্পের সাথে পুরো কাজের স্ট্রিংকে প্রতিস্থাপন করে। এটির পুনরাবৃত্তি অপারেটরের জন্য একটি অন্তর্নিহিত বন্ধ হওয়া বন্ধনী এবং অন্তর্নিহিত যুক্তি ব্যবহার করে *
, সুতরাং এটির জন্য এটি সংক্ষিপ্ত:
$.($&*__2*$-1*_)
প্রথম বন্ধনীর ভিতরে থাকা উপাদানগুলি তিন ভাগে বিভক্ত করা যেতে পারে:
$&*_
: একটি (n-1) এর একটি স্ট্রিং দেয় _
এর ।
_
: একক দেয় _
।
2*$-1*_
: 2 * a (n-1) এর স্ট্রিং দেয় _
। দ্য$-1
অর্থাত গত সামনে লুপ পুনরাবৃত্তির, ফলে লগের মধ্যে উপান্ত্য ফলাফলের বোঝায়। এজন্য শুরু করার জন্য আমাদের লগটিতে শূন্যের অনুলিপিগুলি দরকার ছিল, অন্যথায় এটি প্রথম পুনরাবৃত্তিতে প্রোগ্রামটির ইনপুটকে বোঝায়।
তারপরে $.(…)
ফলাফলযুক্ত স্ট্রিংয়ের দৈর্ঘ্য পরিমাপ করে। অন্য কথায়, আমরা a(n) = a(n-1) + 1 + 2*a(n-2)
অ্যানারি পেরিয়ে গণনা করেছি (বাস্তবে না:$.(…)
অলস এবং আসলে যদি এটি গাণিতিকের মাধ্যমে ফলাফলের দৈর্ঘ্যটি সরাসরি নির্ধারণ করতে পারে তবে এটির বিষয়বস্তুটি মূল্যায়ন করি না, সুতরাং এটি আরও কার্যকর)।
প্রোগ্রামের শেষে রেটিনার অন্তর্নির্মিত আউটপুটটির কারণে চূড়ান্ত লুপ পুনরাবৃত্তির ফলাফল ( অনুক্রমের এন + 1 ম উপাদান) মুদ্রিত হয়।