Mavzu: Kutubxonalar, Matematik kutubxona, random kutubxonasi
Download 54.17 Kb.
|
UZMU Jizzax filiali Amaliy matematika fakulteti
- Bu sahifa navigatsiya:
- Random.NextDouble()
- Tasodiflar tasodifan bo’lmaydi ).
Random.Next() metodi [0; 2 147 483 647) oraliqdan integer tipidagi tasodifiy sonni tanlab beradi.
• Random.Next(int a) – [0; a) oraliqdagi tasodifiy butun sonni olish uchun ishlatiladi. • Random.Next(int a,int b) – [a;b) oraliqdagi tasodifiy butun sonni olib beradi. Int tipida qiymat qaytaradi. • Random.NextBytes(byte [] b) – byte tipidagi b massivni tasodifiy sonlar bilan to’ldirib beradi. • Random.NextDouble() – [0;1) oraliqdagi tasodifiy haqiqiy sonni tanlab olish uchun ishlatiladi. Metodlarni kodda quyidagicha ishlatish mumkin: using System; class dotnetuz { public static void Main() { Random tasodifiy = new Random(); Console.WriteLine("Integer tipidagi 5 ta tasodifiy sonlar:"); for (int i = 0; i < 5; i++) { Console.Write(tasodifiy.Next() + " "); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("0 va 40 orasidagi 7 ta tasodifiy sonlar:"); for (int i = 0; i < 7; i++) { Console.Write(tasodifiy.Next(41) + " "); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("40 va 90 orasidagi 8 ta tasodifiy sonlar:"); for (int i = 0; i < 8; i++) { Console.Write(tasodifiy.Next(40, 91) + " "); } Console.WriteLine(); Console.WriteLine(); byte[] massiv = new byte[10]; tasodifiy.NextBytes(massiv); Console.WriteLine("byte tipidagi 10 ta tasodifiy sonlar:"); foreach (byte item in massiv) { Console.Write(item + " "); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("0 va 1 orasidagi 5 ta tasodifiy haqiqiy sonlar:"); for (int i = 0; i < 5; i++) { Console.Write(tasodifiy.NextDouble() + " "); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("0 va 15 orasidagi 5 ta tasodifiy haqiqiy sonni olish ham mumkin:"); for (int i = 0; i < 5; i++) { Console.Write(tasodifiy.NextDouble() * 15 + " "); } Console.ReadKey(); } } Natija Integer tipidagi 5 ta tasodifiy sonlar: 19935471 1272063124 1570733439 1326559547 24648986 0 va 40 orasidagi 7 ta tasodifiy sonlar: 25 23 17 6 34 28 25 40 va 90 orasidagi 8 ta tasodifiy sonlar: 66 41 43 61 89 86 83 82 byte tipidagi 10 ta tasodifiy sonlar: 255 115 183 165 216 28 140 222 198 193 0 va 1 orasidagi 5 ta tasodifiy haqiqiy sonlar: 0,151187449764082 0,112327319622192 0,3266392398284 0,509324506628013 0,437839470541961 0 va 15 orasidagi 5 ta tasodifiy haqiqiy sonni olish ham mumkin: 5,39333248994934 2,85994078398679 9,05856904995561 6,59124690647761 11,7725050923287 Dastur kodini ishlatib ko’rganingizda sizdagi natija yuqoridagidan farq qilishi tabiiy, dasturni qayta-qayta ishlatganingizda har safar avvalgisidan farqli natijalar olasiz. Bu konstruktorning o'ziga xos xususiyatlaridan biridir. Mavzuyimiz hali tugamadi, chunki Random sinfining yana bitta konstruktori bor. Sinfdan quyidagicha obyekt olishimiz ham mumkin: Random rand = new Random(int n); Xo’sh, bu konstruktorni avvalgisidan qanday farqi bor? Agar ikkinchi konstruktor orqali obyekt olgan bo’lsangiz, chegaralar va n ning bir xil qiymatlarida olinadigan natijalar ham aynan bir xil bo’ladi. Dasturni har safar qayta ishga tushirilganda bir xil ketma-ketlik hosil bo’ladi. Konstruktordagi n ning qiymati yoki chegaralar o’zgartirilsagina natija o’zgaradi. Masalan, quyidagi kodni o’z kompilyatoringizda ishlatib ko’ring: using System; class Test { public static void Main() { Random tasodifiy = new Random(2); byte[] massiv = new byte[10]; tasodifiy.NextBytes(massiv); foreach (byte item in massiv) { Console.Write(item + " "); } Console.ReadKey(); } } Menda natija quyidagicha bo’ldi: 113 147 198 149 36 185 227 111 124 56 Shubhasiz, sizda ham shunday natija hosil bo’ladi va dasturni qayta-qayta ishlatsangiz ham natija o’zgarmaydi. Bu holat Random sinfining barcha metodlarida kuzatiladi. Konstruktorda kiritilgan n soni ketma-ketlikning boshlang’ich nuqtasi bo’lib, uning turli qiymatlarida ketma-ketlik turlicha bo’ladi. Xulosa qilib aytadigan bo’lsak, ikkinchi konstruktordan foydalanganingizda Tasodiflar tasodifan bo’lmaydi ). Download 54.17 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling