ইন ksh
, বাশ, জ্যাশ, ইয়াশ বা ব্যস্তবক্স sh
:
[ "$RANDOM" -lt 3277 ] && do_stuff
RANDOM
তাই উপরে (পাসে) একটি এক-ইন-দশ সুযোগ Korn থেকে, ব্যাশ, যশ, টু Z এবং busybox শাঁস বিশেষ পরিবর্তনশীল, 0 এবং 32767 প্রত্যেক সময় এটা মূল্যায়ন হচ্ছে মধ্যে একটি সিউডো-রেণ্ডম দশমিক পূর্ণসংখ্যা মান উৎপন্ন হয়।
আপনি এটি কোনও ফাংশন তৈরি করতে ব্যবহার করতে পারেন যা আপনার প্রশ্নে বর্ণিত হিসাবে আচরণ করে, কমপক্ষে বাশে:
function chance {
[[ -z $1 || $1 -le 0 ]] && return 1
[[ $RANDOM -lt $((32767 / $1 + 1)) ]]
}
একটি যুক্তি সরবরাহ করতে ভুলে যাওয়া, বা একটি অবৈধ যুক্তি সরবরাহ করা, 1 এর ফলাফল উত্পন্ন করবে, তাই chance && do_stuff
কখনই হবে না do_stuff
।
এটি ব্যবহার করে "1 ইন এন " এর সাধারণ সূত্র ব্যবহার করে $RANDOM
যা [[ $RANDOM -lt $((32767 / n + 1)) ]]
32768 চান্সে একটি (732767 / n ⎦ + 1) দেয়। n
সম্ভাব্য মানগুলির পরিসীমাতে অসম বিভক্ত হওয়ার কারণে যার মানগুলি 32768 এর গুণক নয় তা পক্ষপাতিত্ব প্রবর্তন করে।