সংক্ষিপ্ত বিবরণ
একটি প্রোগ্রাম লিখুন যা ফ্র্যাক্টালকে এনকোডিং করার জন্য কিছুটা নিদর্শন দেওয়া, পাশাপাশি ফ্র্যাক্টাল এবং প্রজন্মের সংখ্যার প্রতি-প্রজন্মের স্কেল ফ্যাক্টর সহ সাধারণ ফ্র্যাক্টাল নিদর্শনগুলি মুদ্রণ করে।
ব্যাখ্যা
এখানে সিয়েরপিনস্কি কার্পেটের একটি ASCII উপস্থাপনা :
জেনারেশন 0:
#
প্রজন্ম 1:
# # #
# #
# # #
প্রজন্ম 2:
# # # # # # # # #
# # # # # #
# # # # # # # # #
# # # # # #
# # # #
# # # # # #
# # # # # # # # #
# # # # # #
# # # # # # # # #
এএসসিআইআই সিয়েরপিনস্কি কার্পেটের জেনারেশন এন + 1 গ্রিডের কেন্দ্রীয় উপাদানটি নিখোঁজ থাকা প্রজন্ম এন এর 8 কপি সম্বলিত একটি 3x3 গ্রিড দিয়ে তৈরি।
সুতরাং, কারণ এটি একটি 3x3 গ্রিড ব্যবহার করে সংজ্ঞায়িত হয়েছে এবং প্রতিটি প্রজন্মের প্রস্থ এবং উচ্চতায় 3 গুণ বড় হয়, তাই আমরা বলতে পারি এটির স্কেল ফ্যাক্টর 3।
আমরা সিয়েরপিনস্কি কার্পেটের জন্য বিট প্যাটার্নটি নির্ধারণ করতে পারি 3x3 গ্রিডে 0 থেকে 8 অবধি উপাদানগুলি শীর্ষে, নীচে থেকে নীচে, বাম থেকে ডানে, এবং প্রজন্মের এন + 1 এ যদি একটি পূর্ণসংখ্যার সংযুক্ত বিট সেট করে থাকে সেই গ্রিড পজিশনে প্রজন্মের এন এর অনুলিপি:
bit: place value: bit pattern: bit value:
0 1 2 1 2 4 1 1 1 1 2 4
3 4 5 8 16 32 1 0 1 8 0 32
6 7 8 64 128 256 1 1 1 64 128 256
integer value = 1 + 2 + 4 + 8 + 32 + 64 + 128 + 256 = 495
২ এর স্কেল ফ্যাক্টরের জন্য, বিট প্যাটার্নটি এভাবে সাজানো হবে:
0 1
2 3
ইত্যাদি।
আপনার কাজটি হ'ল এমন একটি প্রোগ্রাম লিখুন যা এই ফর্মটিতে কিছুটা প্যাটার্ন গ্রহণ করে, একটি স্কেল ফ্যাক্টর (যেমন সিয়েরপিনস্কি কার্পেটের জন্য 3) এবং একটি জেনারেশন নম্বর এবং একটি এএসসিআইআই ফ্র্যাক্টালকে আউটপুট দেয়।
ইনপুট
আপনার প্রোগ্রামটি নিম্নলিখিত ক্রমে 3 টি পূর্ণসংখ্যা গ্রহণ করবে: কিছুটা প্যাটার্ন, একটি স্কেল ফ্যাক্টর (2 থেকে 5 এর মধ্যে অন্তর্ভুক্ত) এবং একটি প্রজন্মের গণনা (0 থেকে 5 অবধি অন্তর্ভুক্ত)।
আপনাকে এই মানগুলিতে কোনও ইনপুট বৈধতা দেওয়ার দরকার নেই এবং যদি প্রোগ্রামটি নির্দিষ্ট রেঞ্জের চেয়ে বড় মানের জন্য কাজ করে তবে তা পুরোপুরি ঠিক আছে।
ইনপুটগুলি যে কোনও ফর্মে পাস করা যেতে পারে (টিপলস, কমা / স্থান-পৃথক তালিকা ইত্যাদি)
আউটপুট
প্রোগ্রামটি #
অক্ষরের একটি ফ্র্যাক্টাল আউটপুট তৈরি করতে পারে তারপরে এমন একটি স্থান যেখানে ফ্র্যাক্টাল সংজ্ঞায়িত করা হয়, ডাবল-স্পেস যেখানে এটি নেই এবং প্রতিটি লাইনের শেষে একটি নিউলাইন অক্ষর হয় সেগুলি প্রিন্ট করে বা স্ট্রিং ফিরিয়ে দেয় একটি ফাংশন থেকে
উদাহরণ
ইনপুট:
495,3,3
আউটপুট (সিয়েরপিনস্কি কার্পেট উত্পাদন 3):
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
ইনপুট:
7,2,5
আউটপুট ( Sierpinski ট্রায়াঙ্গেল ):
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # #
# # # #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # #
# # # #
# # # # # # # #
# # # #
# # # #
# #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # #
# # # #
# # # # # # # #
# # # #
# # # #
# #
# # # # # # # #
# # # #
# # # #
# #
# # # #
# #
# #
#
ইনপুট:
325,3,3
আউটপুট ( ক্যান্টোর ডাস্ট ):
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
ইনপুট
186,3,3
আউটপুট ( ভিসেক ফ্র্যাক্টাল ):
#
# # #
#
# # #
# # # # # # # # #
# # #
#
# # #
#
# # #
# # # # # # # # #
# # #
# # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # #
# # #
# # # # # # # # #
# # #
#
# # #
#
# # #
# # # # # # # # #
# # #
#
# # #
#
ইনপুট:
279,3,3
আউটপুট (একটি অসামান্য ফ্র্যাক্টাল উদাহরণ):
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # #
# # #
# # # # # # # # #
# # #
# # #
# # # # # # # # #
# # #
# # #
# # #
#
#
# # #
#
#
# # # # # # # # #
# # #
# # #
# # #
#
#
# # #
#
#
প্রভৃতি
নোট:
- এটি কোড-গল্ফ তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর
- আপনার প্রোগ্রামটি একা একা বা এমন কোনও ফাংশন হতে পারে যা 3 ইনপুট পরামিতি এবং একটি স্ট্রিং (বা মুদ্রণ) দিয়ে ডাকা হয়
- জেনারেশন 0 হিসাবে সংজ্ঞায়িত করা হয়
#
(এ#
বিট প্যাটার্নের জন্যও একটি স্থান দ্বারা অনুসরণ করা) । - শেষ লাইনে একটি ট্রেলিং করা নিউলাইন optionচ্ছিক তবে অনুমোদিত, প্রতিটি লাইনে সাদা-স্পেসের পরিমাণের পরিমাণ।
279,3,3
?
"##"
করা"# "
। আমি দেখতে পাচ্ছি লাইনের শেষে থাকা একটি স্থানের স্থানটি আপনার উদাহরণগুলিতে অন্তর্ভুক্ত রয়েছে, এটি কি প্রয়োজনীয়? । সর্বশেষ বিধি অনুসারে আমি এটি alচ্ছিকভাবে ধরে নেব, তবে 0 প্রজন্মের জন্য আপনার পিছনে স্থানের প্রয়োজনের বিষয়টি আমাকে বিস্মিত করে। এছাড়াও আমি মনে করি আপনার সর্বাধিক শ্বেতস্পেস এবং নিউলাইনগুলি (আপনার এটি বহুবচন রয়েছে) নির্দেশিত হওয়া উচিত। চূড়ান্ত উদাহরণ হিসাবে আমি সর্বদা 2 * 5 space 6 স্পেসের 5 ^ 6 = 15625 লাইনের অ্যারে দিয়ে শুরু করতে পারি তারপরে এর বিকল্পগুলি রাখি#
। বেশিরভাগ ইনপুট ক্ষেত্রে এটি অপ্রত্যাশিত শ্বেতক্ষেত্রের একটি বিশাল পরিমাণ