Random turkumi
Massivlardan
foydalanadigan
dasturlarni
sozlashda,
tasodifan
belgilangan dastlabki ma‘lumotlarni yuzaga chiqarish bir qancha
qulayliklar tug‗diradi. S# kutubxonasida bu kabi vaziyatlar uchun System
nomlar bо‗shlig‗ida aniqlangan Random turkumi mavjud. Tasodifiy
bо‗lmagan raqamlar ketma-ketligini aniqlash uchun avvalambor,
konstruktor yordamida turkumning nusxasini yaratish zarur, masalan:
Random a = new Random(); //1
Random b = new Random(1 ); //2
Konstruktorning ikki turi mavjud: parametrlarga ega
bо‗lmagan konstruktor
(1-operator) generatorning joriy vaqt oralig‗ida aniqlangan dastlabki
vazifasidan foydalanadi. Bunday vaziyatda har gal betakror ketma-ketlik
vujudga keladi. Int turidagi parametrga ega bо‗lgan konstruktor (2-
operator) sonlarning bir xil ketma-ketligini olish imkonini beruvchi
generatorning dastlabki vazifasini belgilaydi.
Galdagi qiymatlarni aniqlash uchun jadvalda keltirilgan usullardan
foydalaniladi:
4.1-jadval
System turkumidagi asosiy usullar.Random
Nomi
Tavsifi
Next()
int turidagi musbat oraliqda butun musbat raqamni qaytaradi
Next(maks)
Oraliqda butun musbat raqamni qaytaradi [0, maks]
Next(min, maks)
Oraliqda butun musbat raqamni qaytaradi [min, maks]
NextBytes(massiv)
Oraliqda raqamlar massivini qaytaradi [0, 255]
NextDouble ()
Oraliqda moddiy musbat raqamni qaytaradi [0,1]
Ushbu usullardan foydalanish namunasi 4.1-varaqchada kelti-rilgan.
21
4.1-varaqcha. Tasodifiy bо‗lmagan raqamlar generatori bilan ishlash.
using System;
namespace ConsoleApplication1{
class Classl
{static void Main()
{
Random a = new Random();
Random b = new Random( 1 );
const int n = 10;
Console.WriteLine( "\n Oraliq [0, 1]:" );
for ( int i = 0; i < n; ++i )
Console.Write("{0,6:0.##}", a.NextDouble() );
Console.WriteLine("An Oraliq [0, 1000]:" );
for ( int i = 0; i < n; ++i )
Console.Write(" " + b.Next( 1000 ) );
Console.WriteLine( "\n Oraliq [-10, 10]:" );
Console.ReadKey();
}
}}
for ( int i = 0; i < n; ++i )
Console.Write( " " + a.Next(-10, 10) );
Console.WriteLine( "\n Massiv [0, 255]:" );
byte[] mas = new byte[n];
a.NextBytes(mas);
for (int i = 0; i < n; ++i) Console.Write( " " + mas[i] );
Dastur ishining natijasi:
Oraliq [0, 1]:
0,02 0,4 0,24 0,55 0,92 0,84
Oraliq [0, 1000]:
248 110 467 771 657 432
Oraliq [-10, 10]:
-8 9 -6 -10 7 4 9 -5
Massiv [0, 255]:
181 105 60 50 70 77 9 28 133 150
0,9 0,78 0,78 0,74
354 943 101 642
-2 -1
22
Do'stlaringiz bilan baham: |