পটভূমি
ফিবোনাচি টাইলিং হ'ল (1 ডি) লাইনের দুটি টুকরোগুলি ব্যবহার করে: একটি সংক্ষিপ্ত, এস , এবং একটি দীর্ঘ এল , এল (তাদের দৈর্ঘ্যের অনুপাতটি স্বর্ণের অনুপাত, তবে এটি এই চ্যালেঞ্জের সাথে প্রাসঙ্গিক নয়)। এই দুটি প্রোটোটাইল ব্যবহার করে টাইলিংয়ের জন্য প্রকৃতপক্ষে ফিবোনাচি টাইলিং হতে নিম্নলিখিত শর্তগুলি পূরণ করতে হবে:
- টালি দ্বারা আচ্ছাদন subsequence থাকতে পারবে না এস এস ।
- টাইলিংয়ে অবশ্যই এলটিএলটি অনুচ্ছেদে থাকা উচিত ।
- নিম্নলিখিত সমস্ত বিকল্পগুলি সম্পাদন করে যদি কোনও নতুন টাইলিং রচনা করা হয় তবে ফলাফলটি অবশ্যই একটি ফিবোনাচি টাইলিং হতে হবে:
- এলএল → এস
- এস → এল
- এল → (খালি স্ট্রিং)
আসুন কয়েকটি উদাহরণ দেখুন:
SLLSLLSLLSLS
এটি একটি বৈধ টাইলিংয়ের মতো দেখায়, কারণ এতে দুটি * এস * এস বা তিনটি * এল * এস থাকে না তবে আসুন এটি রচনাটি সম্পাদন করুন:
LSLSLSLL
এটি এখনও দুর্দান্ত দেখায়, তবে আমরা যদি এটি আবার রচনা করি তবে আমরা পাই
LLLS
যা বৈধ ফিবোনাচি টাইলিং নয়। অতএব, পূর্ববর্তী দুটি ক্রমগুলি বৈধ tilings ছিল না।
অন্যদিকে, যদি আমরা শুরু করি
LSLLSLSLLSLSLL
এবং বার বার এটি সংক্ষিপ্ত ক্রম রচনা
LSLLSLLS
LSLSL
LL
S
সমস্ত ফলাফল বৈধ ফিবোনাচি সারণি, কারণ আমরা কখনই এই স্ট্রিংগুলির মধ্যে কোথাও এসএস বা এলএলএল পাই না ।
আরও পড়ার জন্য, একটি থিসিস রয়েছে যা এই টাইলিংটিকে পেনরোজ টিলিংসের সাধারণ 1D উপমা হিসাবে ব্যবহার করে।
চ্যালেঞ্জ
একটি প্রোগ্রাম বা ফাংশন লিখুন, যা একটি অ-নেতিবাচক পূর্ণসংখ্যা এন দেওয়া হয় , সমস্ত অক্ষর ফিবোনাচি টাইলিংগুলিকে N অক্ষর (সত্তা S
বা L
) যুক্ত স্ট্রিং আকারে প্রদান করে ।
আপনি ফাংশন আর্গুমেন্ট, STDIN বা ARGV এর মাধ্যমে ইনপুট নিতে পারেন এবং ফলাফলটি ফিরে আসতে বা মুদ্রণ করতে পারেন।
এটি কোড গল্ফ, সংক্ষিপ্ত উত্তর (বাইটে) জিতেছে।
উদাহরণ
N Output
0 (an empty string)
1 S, L
2 SL, LS, LL
3 LSL, SLS, LLS, SLL
4 SLSL, SLLS, LSLS, LSLL, LLSL
5 LLSLL, LLSLS, LSLLS, LSLSL, SLLSL, SLSLL
...
8 LLSLLSLS, LLSLSLLS, LSLLSLLS, LSLLSLSL, LSLSLLSL, SLLSLLSL, SLLSLSLL, SLSLLSLL, SLSLLSLS
LSLSL
->LL
?