ভূমিকা
এই চ্যালেঞ্জের মধ্যে আমরা খুব খারাপ সিডোডোরডম সংখ্যা ব্যবহার করে একটি নির্দিষ্ট সম্ভাব্য সেলুলার অটোমেটন অনুকরণ করব । সেলুলার অটোমেটন নিম্নলিখিত স্থানীয় নিয়মে বাইনারি স্ট্রিংগুলিতে সংজ্ঞায়িত হয়। ধরুন যে কোনও কক্ষের বাম প্রতিবেশী এবং সেলে নিজেই রয়েছে রাজ্যগুলি a
এবং b
।
- তাহলে
min(a,b) == 0
, তারপর নতুন রাষ্ট্রb
হয়max(a,b)
। - যদি
min(a,b) == 1
, তবে নতুন রাষ্ট্রেরb
থেকে এলোমেলোভাবে নির্বাচন করা হয়{0,1}
।
নিম্নলিখিত চিত্রটি একটি একক সম্ভাব্য দশ-ধাপ বিবর্তন দেখায় 1
।
1
11
101
1111
11001
101011
1111111
10001001
110011011
1010111101
দুটি সংলগ্ন কীভাবে 1
কখনও কখনও বিকাশ হয় 1
এবং কখনও কখনও 0
এবং সীমান্তের সর্বাধিক বিটগুলি সর্বদা 1
এস Note আপনার কাজটি এই ফর্মটির সেলুলার অটোমেটনের বিবর্তন তৈরি করা produce
ইনপুট
আপনার ইনপুটগুলি একটি ধনাত্মক পূর্ণসংখ্যা n
, প্রদর্শন করার জন্য সারিগুলির সংখ্যা এবং বিটগুলির একটি খালি খালি তালিকা নেই L
যা আমরা এলোমেলোতার উত্স হিসাবে ব্যবহার করি।
আউটপুট
আপনার আউটপুটটি তালিকার একটি তালিকা বা বিটের 2 ডি অ্যারে, সময়ের পদক্ষেপের 1
জন্য একক বিবর্তন চিত্রিত n
করে উপরের চিত্রের মতো। আপনি চাইলে 0
সমান দৈর্ঘ্যের সারি পেতে আউটপুটকে প্যাড করতে পারেন, তবে সেখানে অবশ্যই শীর্ষস্থানীয় হবে না 0
।
সেলুলার অটোমেটনে এলোমেলো পছন্দগুলি তালিকা থেকে আঁকা উচিত L
, ক্লান্ত হয়ে গেলে আবার শুরুতে ফিরে যেতে হবে। আরও স্পষ্টতই, যদি আউটপুট এক সময়ে এক সারিতে উপরে থেকে নীচে, বাম থেকে ডানদিকে বিভ্রান্ত হয়, তবে ক্রমাগত এলোমেলো পছন্দগুলি তালিকা L
হিসাবে প্রয়োজনীয় হিসাবে বহুবার পুনরাবৃত্তি করবে ।
উদাহরণ
ধরুন ইনপুটগুলি হ'ল n = 7
এবং L = [0,1,0]
। তারপরে সেলুলার অটোমেটনটি 7 টি পদক্ষেপের সময় নীচের হিসাবে বিকশিত হয়, যেখানে আমরা v
প্রতিটি এলোমেলো পছন্দের উপরে একটি অধিকার রেখেছি:
[1]
[1,1]
v
[1,0,1]
[1,1,1,1]
v v v
[1,1,0,0,1]
v
[1,1,1,0,1,1]
v v v
[1,0,0,1,1,1,1]
আমরা যদি একটি দ্বারা চিহ্নিত সমস্ত বিটগুলি পড়ি তবে v
আমরা পাই 01001001
যা L
2.66 বার পুনরাবৃত্তি হয়। পরবর্তী র্যান্ডম বিট হবে 0
।
বিধি এবং স্কোরিং
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়। ইনপুট এবং আউটপুটগুলির সঠিক ফর্ম্যাটটি গুরুত্বহীন (কারণের মধ্যে)।
পরীক্ষার কেস
নির্ধারিত সংস্করণ, প্রতিটি এলোমেলো বিট হয় 0
:
Inputs: 10 [0]
Output:
1
11
101
1111
10001
110011
1010101
11111111
100000001
1100000011
প্রতিটি এলোমেলো বিট হয় 1
:
Inputs: 6 [1,1]
Output:
1
11
111
1111
11111
111111
সিউডোর্যান্ডম সংস্করণ:
Inputs: 10 [0,0,1]
Output:
1
11
101
1111
10101
111111
1010011
11110101
101011111
1111101001
Inputs: 10 [1,0,0,1]
Output:
1
11
111
1001
11011
111111
1001101
11010111
111111101
1011001111
Inputs: 15 [1,1,1,0,0,0]
Output:
1
11
111
1111
10001
110011
1110111
11011001
111111011
1100011111
11100100011
111101100101
1001111101111
11011000111111
101101001011101
min(a,b)
সঙ্গেa+b>1
এবংmax(a,b)
সঙ্গেa+b
? আমি বুঝতে পেরেছিলাম1
-> এর প্রথম প্রথম কেসটি হ্যান্ডেল করার জন্য আপনাকে সম্ভবত কিছু করতে হবে11
(আমি মনে করি আপনি কাজ করতে পারেL=[1]+f()...
, অথবা সামনে 1 সন্নিবেশ করতে কিছু উপায় খুঁজে বেরL
কারণ যে সবসময় দ্বিতীয় লাইন 1 পপ হবে)