ভূমিকা
নিম্নলিখিত প্রয়োগের সাথে আপনাকে একটি এলোমেলো পূর্ণসংখ্যার জেনারেটর দেওয়া হচ্ছে
- প্রথম প্রার্থনা সর্বদা 1 প্রদান করে।
- দ্বিতীয় অনুরোধটি 1 এবং 2 এর মধ্যে একটি এলোমেলো পূর্ণসংখ্যা প্রদান করে।
- তৃতীয় প্রার্থনাটি 1 থেকে 3 এর মধ্যে একটি এলোমেলো পূর্ণসংখ্যা প্রদান করে।
- নবম প্রার্থনাটি 1 এবং n এর মধ্যে একটি এলোমেলো পূর্ণসংখ্যা প্রদান করে lusive
উপরের ফাংশনের উপর ভিত্তি করে, একটি এলোমেলো ডাইস জেনারেটর লিখুন যা পুরোপুরি এলোমেলো, সমান সম্ভাবনা সহ 1 এবং 6 (সমেত) এর মধ্যে একটি মান ফিরিয়ে দেয়।
বিধি
- আপনার প্রোগ্রাম / ফাংশনটির ফলাফল 1 এবং 6 এর মধ্যে একটি এলোমেলো পূর্ণসংখ্যার অন্তর্ভুক্ত হওয়া উচিত, কিছু ব্যবহারযোগ্য আকারে সমেত, যেমন স্ট্যান্ডার্ড আউটপুট বা ফাংশন রিটার্ন মান হিসাবে।
- উপরে আরোহণের এলোমেলো সংখ্যা জেনারেটরটিকে আপনার প্রোগ্রামের একটি "ফ্রি" ফাংশন হিসাবে সংজ্ঞায়িত করা যেতে পারে (যেমন, আপনার চরিত্রের গণনা গণনা করা হয় না), বা একটি পৃথক স্ক্রিপ্ট / প্রোগ্রাম যা প্রয়োজন অনুসারে কার্যকর করা হয়, ধরে নিয়ে রাষ্ট্র (
n
) স্থির থাকে কল মধ্যে। - ধরে নিন যে আপনার প্রোগ্রামের একক ব্যবহারের ক্ষেত্রে আর 1000 এর বেশি ডাইস রোলগুলির জন্য অনুরোধ করা হবে না, এবং প্রারম্ভিক
1
ওভারফ্লো এড়াতে প্রাথমিক র্যান্ডম নম্বর জেনারেটর 1000 ডাইস রোলসের শেষে পুনরায় সেট করা যাবেn
। - উপরে বর্ণিত আরোহী র্যান্ডম জেনারেটর ব্যতীত আপনার প্রোগ্রামটি এলোমেলো সংখ্যার অন্য কোনও উত্স ব্যবহার করতে পারে না । আপনি অবশ্যই প্রতিটি একক ডাইস রোল আউটপুট জন্য এলোমেলো সংখ্যা জেনারেটর থেকে একাধিক র্যান্ডম সংখ্যার জন্য অনুরোধ করতে পারেন।
- এটি কোড-গল্ফ, তাই বিজয়ী সংক্ষিপ্ত উত্তর বা টাইয়ের ক্ষেত্রে বেশিরভাগ ভোট। আপনি যদি 1000 টিরও কম রেন্ডম সংখ্যার ব্যবহার করে 1000 ডাইস রোলস তৈরি করতে পারেন তবে নিজেকে 10-পয়েন্ট দক্ষতার বোনাস দিন ।
উদাহরণ
./asc-rand
1 # random integer between 1 and 1
./asc-rand
1 # random integer between 1 and 2
./asc-rand
3 # random integer between 1 and 3
./asc-rand
4 # random integer between 1 and 4
# dice-gen generates random dice based on output of asc-rand program.
./dice-gen
3
./dice-gen
6
./dice-gen
5
./dice-gen
1
iterate(6):b=asc-rand(); print b
অবৈধ বা এটি কার্যকর নয়? আমি তৃতীয় নিয়ম ভুল বুঝতে পারে।