از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ایجاد یک عدد تصادفی در bash
سرفصلهای مطلب
استفاده از ژنراتور تصادفی:
عدد تصادفی یا محدوده ای از اعداد تصادفی را می توان با استفاده از متغیر $RANDOM تولید کرد. به طور پیش فرض یک عدد تصادفی بین 0 تا 32767 تولید می کند. اما می توانید با تقسیم مقدار $RANDOM با یک مقدار خاص، محدوده اعداد را برای تولید اعداد تصادفی تنظیم کنید. استفاده های مختلف از متغیر $RANDOM برای تولید اعداد تصادفی در قسمت بعدی آموزش نشان داده شده است.
تولید اعداد تصادفی با استفاده از متغیر $RANDOM:
راه های تولید اعداد تصادفی در terminal و اجرای یک فایل اسکریپت در اینجا نشان داده شده است.
الف. اعداد تصادفی را از terminal
دستور زیر را برای ایجاد یک عدد تصادفی در محدوده 0 تا 32767 اجرا کنید.
شما می توانید با تقسیم متغیر $RANDOM با یک مقدار خاص و بدست آوردن مقدار باقیمانده، یک عدد تصادفی از یک محدوده خاص ایجاد کنید. دستور زیر را اجرا کنید تا یک عدد تصادفی در محدوده 1 تا 50 ایجاد شود. در اینجا از دو براکت اول با $ استفاده شده است.
دستور زیر را اجرا کنید تا یک عدد تصادفی در محدوده 10 تا 40 ایجاد شود. در اینجا از براکت سوم با $ استفاده شده است.
ب. اعداد تصادفی را با استفاده از اسکریپت تولید کنید
ایجاد یک bash فایل با اسکریپت زیر برای تولید یک عدد تصادفی از محدوده خاص که در آن مقادیر حداقل و حداکثر محدوده از کاربر گرفته می شود. اگر مقدار حداکثر گرفته شده کوچکتر از مقدار حداقل باشد، یک پیام خطا نمایش داده می شود. اگر اختلاف بین حداکثر و حداقل مقدار 1 باشد، پیغام خطا دیگری نمایش داده می شود. در صورتی که مقادیر حداقل و حداکثر معتبر به عنوان ورودی در نظر گرفته شوند، در هر اجرای این اسکریپت یک عدد تصادفی ایجاد می شود.
# یک محدوده بر اساس تصادفی تعریف شده توسط کاربر ایجاد کنید
#مقدار پایین و بالایی را از کاربر بگیرید
echo “حداقل مقدار را وارد کنید:”
خواندن کمترین
echo “حداکثر مقدار را وارد کنید:”
خواندن بیشترین
#بررسی کنید مقادیر گرفته شده معتبر هستند
اگر [[ $maximum < $minimum ]]; سپس
echo “حداکثر مقدار نمی تواند کمتر از مقدار حداقل باشد”
خروج 1
فی
#تفاوت اعداد را دریابید
تفاوت=$((حداکثر دلار–حداقل دلار))
#مقدار تفاوت را بررسی کنید
اگر [[ $diff == 1 ]]; سپس
echo “محدوده اعداد باید بیشتر از 1 باشد”
خروج 1
فی
#عدد تصادفی را تولید کنید
عدد تصادفی=$((حداقل دلار + تصادفی $ % حداکثر دلار))
شماره تولید شده را #چاپ کنید
echo “عدد تصادفی تولید شده عبارت است از: $randomNumber“
اگر اسکریپت چندین بار اجرا شود خروجی زیر ظاهر می شود. در اینجا اسکریپت فوق سه بار اجرا شده است. پیغام خطا برای دو اجرای اول به دلیل ورودی نامعتبر چاپ شده است و یک عدد تصادفی برای آخرین اجرا ایجاد شده است.
تولید اعداد تصادفی با استفاده از دستور shuf:
استفاده از دستور ‘shuf’ راه دیگری برای تولید اعداد تصادفی یک محدوده خاص است. راه های تولید یک عدد تصادفی از terminal و استفاده از یک اسکریپت در این آموزش نشان داده شده است.
الف. اعداد تصادفی را از terminal
دستور زیر را برای ایجاد یک عدد تصادفی بین 0 تا 50 با استفاده از دستور ‘shuf’ اجرا کنید.
با توجه به خروجی زیر دستور فوق سه بار اجرا شده و سه عدد تصادفی تولید شده است.
ب. اعداد تصادفی را با استفاده از اسکریپت تولید کنید
ایجاد یک bash فایل با اسکریپت زیر برای ایجاد لیستی از اعداد تصادفی بر اساس روی مقدار ورودی حلقه «for» برای اجرای دستور «shuf» چندین بار برای تولید لیستی از اعداد تصادفی بین 1 تا 100 و print تعداد.
# با استفاده از دستور ‘shuf’ یک تصادفی ایجاد کنید
echo “چند عدد تصادفی می خواهید ایجاد کنید؟:”
خواندن عدد
#اعداد تصادفی تولید شده را چاپ کنید
echo “اعداد تصادفی تولید شده عبارتند از:”
برای n که در `دنباله “$شماره“`
انجام دادن
عدد تصادفی=$(زدن -من 1–100 -n1)
echo $randomNumber
انجام شده
خروجی زیر نشان می دهد که 5 به عنوان مقدار ورودی در نظر گرفته شده است و 5 عدد تصادفی تولید شده است که نه بیشتر از 100 و نه کمتر از 1 هستند.
تولید اعداد تصادفی با استفاده از /dev/urandom:
/dev/urandom را می توان با دستورات مختلف برای تولید انواع مختلف مقادیر تصادفی استفاده کرد. نمی توان از آن برای تعیین مقادیر محدوده مانند دستور ‘shuf’ و متغیر $RANDOM استفاده کرد. اما تعداد ارقام عدد تصادفی را می توان در دستور با /dev/urandom تعریف کرد. استفاده از دستور ‘od’ با /dev/urandom در قسمت بعدی این آموزش نشان داده شده است. از این دستور می توان برای تعیین تعداد بایت ها استفاده کرد که در آن هر بایت را می توان با یک عدد اعشاری بین 0 تا 255 تعریف کرد.
برای ایجاد یک عدد تصادفی بین 0 تا 255 دستور زیر را اجرا کنید.
خروجی نشان می دهد که دستور بالا سه بار اجرا شده است و سه عدد تصادفی مختلف در اینجا تولید شده است که مقادیر بیشتر از 255 نیست.
نتیجه:
سه روش مختلف برای تولید اعداد تصادفی در این آموزش با استفاده از مثال های مختلف توضیح داده شده است. کدگذار می تواند محدوده خاصی از اعداد تصادفی را با استفاده از متغیر $RANDOM یا دستور “shuf” در bash. کدگذار می تواند از /dev/urandom با هر دستور دیگری برای تولید تعداد تصادفی بایت ها یا طول های خاص استفاده کند. تولید اعداد تصادفی یک نیاز بسیار رایج برای برنامه نویسی است و امیدوارم خوانندگان بتوانند بر اساس اعداد تصادفی تولید کنند. روی الزامات آنها پس از خواندن این آموزش.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 17:08:04