একটি প্রোগ্রামে, আমাকে 0 বা 1 এর একটি এলোমেলো মানের একটি ভেরিয়েবল সেট করতে হবে।
কীভাবে এটি করব তা আমি বুঝতে পারি না এবং গুগল আমাকে ব্যর্থ করেছে।
একটি প্রোগ্রামে, আমাকে 0 বা 1 এর একটি এলোমেলো মানের একটি ভেরিয়েবল সেট করতে হবে।
কীভাবে এটি করব তা আমি বুঝতে পারি না এবং গুগল আমাকে ব্যর্থ করেছে।
উত্তর:
একটি সহজ পদ্ধতি হ'ল $RANDOMব্যাপ্তির মধ্যে সিউডোর্যান্ডম 16 বিট পূর্ণসংখ্যা নম্বর পুনরুদ্ধার করতে ব্যবহার করা [0; 32767]। আপনি কেবল এটিকে রূপান্তর করতে পারেন [0; 1] এলোমেলো সংখ্যার 2 মডিউল গণনা করে:
echo $(( $RANDOM % 2 ))
বাশের সম্পর্কে আরও তথ্য $RANDOM: http://www.tldp.org/LDP/abs/html/randomvar.html
এই সাধারণ নির্মাণের সাহায্যে আপনি সহজেই এলোমেলো ব্যবহার করে শক্তিশালী স্ক্রিপ্টগুলি তৈরি করতে পারেন, এই কমিকের মতো ...
$[]সিনট্যাক্স ব্যবহার করছে - কে জানে যে তাদের বৈশিষ্ট্যটি rmছিল কিনা --no-preserve-root?
rm: it is dangerous to operate recursively on '/' rm: use --no-preserve-root to override this failsafe, তারা তাদের মাথা কম এবং সেটি স্তব্ধ হয়ে, বুদ্ধিমান তারা খেলা হারিয়েছে, তাদের ডিস্ক নিশ্চিহ্ন করতে এগিয়ে dd, সম্মানের বাইরে।
--no-preserve-rootকেবলমাত্র "ইদানীং" প্রয়োগ করা হয়েছে। কখন এটি বাস্তবায়িত হয়েছিল সে সম্পর্কে কোনও তথ্য নেই, তবে আইআইআরসি এটি কয়েক বছরের পুরনো। এবং এটি লিনাক্সের ক্ষেত্রে খুব সামান্য পরিমাণ। এখানে এই সম্পর্কে একটি টিকিট দেওয়া হয়েছে: বাগস.লানচপ্যাড.এন.বুন্টু
আপনি ব্যবহার করতে পারেন shuf
DESCRIPTION
Write a random permutation of the input lines to standard output.
-i, --input-range=LO-HI
treat each number LO through HI as an input line
-n, --head-count=COUNT
output at most COUNT lines
উদাহরণ:
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
1
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
0
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
0
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
1
কেমন:
#!/bin/bash
r=$(($RANDOM % 2))
echo $r
অথবা এমনকি:
r=$(($(od -An -N1 -i /dev/random) % 2))
অথবা সম্ভবত:
r=$(seq 0 1 | sort -R | head -n 1)
বা আরও হ্যাকলি:
r=$(($(head -128 /dev/urandom | cksum | cut -c1-10) % 2))
এবং যদিও:
r=$(apg -a 1 -M n -n 1 -m 8 -E 23456789 | cut -c1)
পাশাপাশি:
r=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2))
বিদ্যমান উত্তরের চেয়ে এই স্ক্রিপ্টটির কোনও সুবিধা নেই। কেবল বিনোদনের উদ্দেশ্যে ...
এর থেকে একটি বাইট পান /dev/urandom(যদিও সাধারণভাবে স্বেচ্ছাসেবী বাইনারি অক্ষরগুলি কনসোলে প্রেরণ করার প্রস্তাব দেওয়া হয় না - কারণ এটি অপ্রত্যাশিত / বিভ্রান্তিকর ফলাফল দিতে পারে):
head -c 1 /dev/urandom
এবং দশমিক সংখ্যায় পরিণত করুন:
head -c 1 /dev/urandom | od -An -t u1
এবং এর বিভাগের বাকী অংশগুলি 2 দ্বারা পান:
echo $((`head -c 1 /dev/urandom | od -An -t u1` % 2))
--no-preserve-root- তাই তারা যে রাশিয়ান রুলেটকে আশা করেছিল তারা না ...