تولید اعداد تصادفی در سی شارپ
در اینجا با نحوه تولید اعداد تصادفی در زبان برنامه نویسی شارپ آشنا خواهید شد.
#C کلاس Random را برای تولید اعداد تصادفی بر اساس مقدار seed در دسترس قرار داده است. برای تولید اعداد تصادفی از متد های زیر از کلاس Random استفاده کنید.
1- ()Next
متد ()Next یک عدد صحیح تصادفی مثبت را در محدوده پیش فرض 2,147,483,648- تا 2,147,483,647 برمی گرداند.
2- Next(int)
متد Next(int) یک عدد صحیح تصادفی مثبت را برمی گرداند که کمتر از حداکثر مقدار تعیین شده باشد.
3- Next(int, int)
متد Next(int, int) یک عدد صحیح تصادفی مثبت را در محدوده حداقل و حداکثر مشخص شده برمی گرداند (شامل حداقل و بدون حداکثر).
4- ()NextDouble
متد ()NextDouble اعداد ممیز شناور تصادفی را تولید می کند که بزرگتر یا مساوی 0.0 و کمتر از 1.0 است.
5- ()NextByte
متد ()NextByte آرایه تعیین شده را با بایت های تصادفی پر می کند.
مثال زیر نحوه تولید اعداد صحیح تصادفی را نشان می دهد.
متد ()Next را چندین بار فراخوانی کنید تا چندین عدد تصادفی را به دست آورید، همانطور که در زیر نشان داده شده است.
خروجی قطعه کد بالا عبارت است از:
ایجاد اعداد تصادفی در محدوده خاص
از متد Next(int) برای تولید یک عدد صحیح تصادفی که کمتر از مقدار حداکثر مشخص شده است استفاده کنید.
مثال زیر اعداد تصادفی مثبتی را تولید می کند که کمتر از 10 هستند.
خروجی قطعه کد بالا عبارت است از:
تولید اعداد تصادفی در محدوده حداقل تا حداکثر
از متد Next(int min, int max) برای بدست آوردن یک عدد صحیح تصادفی که در محدوده مشخصی قرار دارد استفاده کنید.
خروجی قطعه کد بالا عبارت است از:
در مثال بالا، rnd.Next(10,20) اعداد تصادفی را تولید می کند که بین 10 تا 19 هستند.
ایجاد اعداد ممیز شناور تصادفی
همانطور که در زیر نشان داده شده است از متد ()NextDouble برای بدست آوردن یک عدد ممیز شناور تصادفی بین 0.0 تا 1.0 استفاده کنید.
خروجی قطعه کد بالا عبارت است از:
تولید بایت های تصادفی
از متد ()NextBytes برای تولید یک سری مقادیر بایت استفاده کنید. یک آرایه را برای پر کردن تعداد مقادیر بایت ارسال کنید.
مثال زیر نحوه تولید یک عدد تصادفی با استفاده از متد ()NextBytes را نشان می دهد:
خروجی قطعه کد بالا عبارت است از:
مقدار Seed
کلاس Random از مقدار seed به عنوان مقدار شروع برای الگوریتم تولید اعداد شبه تصادفی استفاده می کند. به طور پیش فرض، کلاس Random از ساعت سیستم برای تولید مقدار seed خود استفاده می کند تا هر نمونه از کلاس Random بتواند اعداد تصادفی مختلفی را تولید کند.
دو نمونه مختلف از کلاس Random که مقدار seed یکسانی دارند، اعداد تصادفی یکسانی را تولید می کنند، همانطور که در زیر نشان داده شده است.
خروجی قطعه کد بالا عبارت است از:
در مثال بالا، دو شی مختلف از کلاس Random با مقدار seed یکسان نمونه سازی شده اند. بنابراین، آنها اعداد تصادفی یکسانی را تولید می کنند.
به طور پیش فرض، مقدار seed وابسته به زمان است. در NET Core. مقدار seed پیش فرض توسط thread-static ، مولد اعداد شبه تصادفی، تولید می شود.