Onlayn tasodifiy ikkilik raqamlar generatori. Tasodifiy raqamlar generatori onlayn


E'tibor bering, ideal holda tasodifiy sonlarni taqsimlash zichligi egri rasmda ko'rsatilgandek ko'rinadi. 22.3. Ya'ni, ideal holda, har bir intervalda bir xil miqdordagi nuqtalar mavjud: N i = N/k , Qayerda N umumiy ballar soni, k intervallar soni, i= 1, , k .

Guruch. 22.3. Tasodifiy sonlarning chastota diagrammasi,
nazariy jihatdan ideal generator tomonidan yaratilgan

Shuni esda tutish kerakki, ixtiyoriy tasodifiy sonni yaratish ikki bosqichdan iborat:

  • normallashtirilgan tasodifiy sonni yaratish (ya'ni 0 dan 1 gacha bir xil taqsimlangan);
  • normallashtirilgan tasodifiy sonlar konvertatsiyasi r i tasodifiy raqamlarga x i, ular foydalanuvchi tomonidan talab qilinadigan (o'zboshimchalik) tarqatish qonuniga muvofiq yoki kerakli oraliqda taqsimlanadi.

Raqamlarni olish usuliga ko'ra tasodifiy sonlar generatorlari quyidagilarga bo'linadi:

  • jismoniy;
  • jadvalli;
  • algoritmik.

Jismoniy RNG

Jismoniy RNGga misol bo'lishi mumkin: tanga ("boshlar" 1, "dumlar" 0); zar; raqamlar bilan sektorlarga bo'lingan o'qli baraban; shovqinli termal qurilmadan foydalanadigan apparat shovqin generatori (HS), masalan, tranzistor (22.422.5-rasm).

Guruch. 22.4. Tasodifiy sonlarni hosil qilishning apparat usuli sxemasi
Guruch. 22.5. Apparat usuli yordamida tasodifiy sonlarni olish sxemasi
"Tanga yordamida tasodifiy sonlarni yaratish" topshirig'i

Tanga yordamida 0 dan 1 gacha bo'lgan oraliqda bir xil taqsimlangan tasodifiy uch xonali sonni yarating. Aniqlik uchta kasr.

Muammoni hal qilishning birinchi usuli
Tangani 9 marta tashlang va agar tanga boshlarga tushsa, "0" ni, agar u boshlarga tushsa, "1" ni yozing. Deylik, tajriba natijasida biz 100110100 tasodifiy ketma-ketlikni oldik.

0 dan 1 gacha intervalni chizing. Raqamlarni chapdan o'ngga ketma-ket o'qib, intervalni ikkiga bo'ling va har safar keyingi intervalning qismlaridan birini tanlang (agar siz 0 olsangiz, chap tomonni, agar olsangiz a 1, keyin o'ng). Shunday qilib, siz intervalning istalgan nuqtasiga, xohlaganingizcha aniq borishingiz mumkin.

Shunday qilib, 1 : interval yarmiga bo'linadi va , o'ng yarmi tanlanadi, interval toraytiriladi: . Keyingi raqam 0 : interval yarmiga bo'linadi va , chap yarmi tanlanadi, interval toraytiriladi: . Keyingi raqam 0 : interval yarmiga bo'linadi va , chap yarmi tanlanadi, interval toraytiriladi: . Keyingi raqam 1 : interval yarmiga bo'linadi va , o'ng yarmi tanlanadi, interval toraytiriladi: .

Muammoning aniqlik shartiga ko'ra, yechim topildi: bu oraliqdan istalgan raqam, masalan, 0,625.

Printsipial jihatdan, agar biz qat'iy yondashadigan bo'lsak, intervallarni bo'linish topilgan intervalning chap va o'ng chegaralari uchinchi kasr aniqligi bilan TAQDIM OLguncha davom ettirilishi kerak. Ya'ni, aniqlik nuqtai nazaridan, hosil qilingan raqam endi u joylashgan oraliqdan hech qanday raqamdan ajralib turmaydi.

Muammoni hal qilishning ikkinchi usuli
Hosil bo'lgan 100110100 ikkilik ketma-ketligini uchliklarga ajratamiz: 100, 110, 100. Bu ikkilik sonlarni o'nlik sonlarga aylantirgandan so'ng: 4, 6, 4 hosil bo'ladi. Oldinga “0.” o'rniga qo'yilganda: 0,464 hosil bo'ladi. Bu usul faqat 0,000 dan 0,777 gacha raqamlarni ishlab chiqishi mumkin (chunki uchta ikkilik raqamdan "siqib chiqarilishi" mumkin bo'lgan maksimal miqdor 111 2 = 7 8 dir), ya'ni aslida bu raqamlar sakkizlik sanoq sistemasida ifodalanadi. Tarjima uchun sakkizlik raqamlar ichida kasr tasvirlashni bajaramiz:
0,464 8 = 4 8 1 + 6 8 2 + 4 8 3 = 0,6015625 10 = 0,602 10.
Shunday qilib, kerakli raqam: 0,602.

Jadvalli RNG

Jadvalli RNGlar tasodifiy sonlar manbai sifatida tekshirilgan o'zaro bog'liq bo'lmagan, ya'ni hech qanday tarzda bir-biriga bog'liq bo'lmagan raqamlarni o'z ichiga olgan maxsus tuzilgan jadvallardan foydalanadi. Jadvalda 22.1-rasmda bunday jadvalning kichik bir qismi ko'rsatilgan. Jadvalni chapdan o'ngga yuqoridan pastga aylantirib, kerakli o'nli kasrlar soni bilan 0 dan 1 gacha teng taqsimlangan tasodifiy sonlarni olishingiz mumkin (bizning misolimizda har bir raqam uchun uchta kasrdan foydalanamiz). Jadvaldagi raqamlar bir-biriga bog'liq bo'lmagani uchun jadvalni turli yo'llar bilan, masalan, yuqoridan pastga yoki o'ngdan chapga yoki, aytaylik, juft holatda bo'lgan raqamlarni tanlash mumkin.

22.1-jadval.
Tasodifiy raqamlar. Bir tekisda
0 dan 1 gacha taqsimlangan tasodifiy sonlar
Tasodifiy raqamlar Bir tekis taqsimlangan
0 dan 1 gacha tasodifiy raqamlar
9 2 9 2 0 4 2 6 0.929
9 5 7 3 4 9 0 3 0.204
5 9 1 6 6 5 7 6 0.269
… …

Ushbu usulning afzalligi shundaki, u haqiqatan ham tasodifiy sonlarni ishlab chiqaradi, chunki jadvalda tekshirilgan bog'liq bo'lmagan raqamlar mavjud. Usulning kamchiliklari: ko'p sonli raqamlarni saqlash juda ko'p xotirani talab qiladi; Ushbu turdagi jadvallarni yaratish va tekshirishda katta qiyinchiliklar mavjud, jadvaldan foydalanishda takrorlash endi raqamli ketma-ketlikning tasodifiyligini va natijaning ishonchliligini kafolatlamaydi.

500 ta mutlaqo tasodifiy tasdiqlangan raqamlarni o'z ichiga olgan jadval mavjud (I. G. Venetskiy, V. I. Venetskayaning "Iqtisodiy tahlildagi asosiy matematik va statistik tushunchalar va formulalar" kitobidan olingan).

Algoritmik RNG

Ushbu RNGlar tomonidan yaratilgan raqamlar har doim psevdo-tasodifiy (yoki kvazi-tasodifiy), ya'ni har bir keyingi hosil qilingan raqam avvalgisiga bog'liq:

r i + 1 = f(r i) .

Bunday raqamlardan tashkil topgan ketma-ketliklar halqalarni hosil qiladi, ya'ni cheksiz ko'p marta takrorlanadigan tsikl bo'lishi shart. Takroriy tsikllar davrlar deb ataladi.

Ushbu RNGlarning afzalligi ularning tezligi; generatorlar deyarli hech qanday xotira resurslarini talab qilmaydi va ixchamdir. Kamchiliklari: raqamlarni to'liq tasodifiy deb atash mumkin emas, chunki ular o'rtasida bog'liqlik mavjud, shuningdek, kvazi-tasodifiy raqamlar ketma-ketligida davrlar mavjud.

Keling, RNGni olishning bir nechta algoritmik usullarini ko'rib chiqaylik:

  • median kvadratlar usuli;
  • o'rta mahsulotlar usuli;
  • aralashtirish usuli;
  • chiziqli kongruent usuli.

O'rta kvadrat usuli

Ba'zi to'rt xonali raqam mavjud R 0 . Bu raqam kvadratga bo'linadi va kiritiladi R 1 . Keyingi dan R 1 o'rtadagi (to'rtta o'rta raqam) yangi tasodifiy sonni oladi va uni yozadi R 0 . Keyin protsedura takrorlanadi (22.6-rasmga qarang). E'tibor bering, aslida tasodifiy raqam sifatida qabul qilmaslik kerak ghij, A 0.ghij chapga nol va o'nli nuqta qo'shilgan. Bu fakt rasmdagi kabi aks ettirilgan. 22.6 va keyingi shunga o'xshash raqamlarda.

Guruch. 22.6. O'rtacha kvadratlar usuli sxemasi

Usulning kamchiliklari: 1) agar ba'zi iteratsiyada raqam bo'lsa R 0 nolga teng bo'ladi, keyin generator buziladi, shuning uchun dastlabki qiymatni to'g'ri tanlash muhimdir R 0 ; 2) generator ketma-ketlikni takrorlaydi M n qadamlar (eng yaxshisi), qaerda n raqam raqami R 0 , M sanoq tizimining asosi.

Masalan, rasmda. 22.6: agar raqam R 0 ikkilik sanoq sistemasida ifodalanadi, keyin psevdotasodifiy sonlar ketma-ketligi 2 4 = 16 bosqichda takrorlanadi. E'tibor bering, agar boshlang'ich raqam noto'g'ri tanlangan bo'lsa, ketma-ketlikning takrorlanishi oldinroq sodir bo'lishi mumkin.

Yuqorida tavsiflangan usul Jon fon Neumann tomonidan taklif qilingan va 1946 yilga borib taqaladi. Ushbu usul ishonchsiz bo'lib chiqqanligi sababli, u tezda tark etildi.

O'rta mahsulot usuli

Raqam R 0 ga ko'paytiriladi R 1, olingan natijadan R 2 o'rtasi chiqariladi R 2 * (bu boshqa tasodifiy raqam) va ko'paytiriladi R 1 . Barcha keyingi tasodifiy sonlar ushbu sxema yordamida hisoblab chiqiladi (22.7-rasmga qarang).

Guruch. 22.7. Median mahsulotlar usulining sxemasi

Aralashtirish usuli

Aralash usuli hujayra tarkibini tsiklik ravishda chapga va o'ngga siljitish uchun operatsiyalardan foydalanadi. Usulning g'oyasi quyidagicha. Hujayra boshlang'ich raqamni saqlasin R 0 . Hujayra tarkibini tsiklik ravishda hujayra uzunligining 1/4 qismiga chapga siljitish orqali biz yangi raqamga ega bo'lamiz. R 0 *. Xuddi shu tarzda, hujayraning tarkibini velosipedda aylantirish R 0 o'ngga hujayra uzunligining 1/4 qismiga, biz ikkinchi raqamni olamiz R 0**. Raqamlar yig'indisi R 0* va R 0** yangi tasodifiy raqamni beradi R 1 . Keyinchalik R 1 kiritilgan R 0 va operatsiyalarning butun ketma-ketligi takrorlanadi (22.8-rasmga qarang).


Guruch. 22.8. Aralashtirish usuli diagrammasi

E'tibor bering, yig'indidan olingan raqam R 0* va R 0 ** , hujayra ichiga to'liq sig'masligi mumkin R 1 . Bunday holda, olingan raqamdan qo'shimcha raqamlarni olib tashlash kerak. Keling, buni rasmda tushuntiramiz. 22.8, bu erda barcha hujayralar sakkizta ikkilik raqam bilan ifodalanadi. Mayli R 0 * = 10010001 2 = 145 10 , R 0 ** = 10100001 2 = 161 10 , Keyin R 0 * + R 0 ** = 100110010 2 = 306 10 . Ko'rib turganingizdek, 306 raqami 9 ta raqamni (ikkilik sanoq tizimida) egallaydi va hujayra R 1 (xuddi shunday R 0) maksimal 8 bitni o'z ichiga olishi mumkin. Shuning uchun, qiymatni kiritishdan oldin R 1, 306 raqamidan bitta "qo'shimcha", eng chap bitni olib tashlash kerak, natijada R 1 endi 306 ga emas, balki 00110010 2 = 50 10 ga boradi. Shuni ham yodda tutingki, Paskal kabi tillarda hujayra to'lib ketganda qo'shimcha bitlarni "qirqish" o'zgaruvchining belgilangan turiga muvofiq avtomatik ravishda amalga oshiriladi.

Chiziqli kongruent usuli

Chiziqli kongruent usuli hozirgi vaqtda tasodifiy sonlarni simulyatsiya qilishda eng oddiy va eng ko'p qo'llaniladigan protseduralardan biridir. Bu usulda mod( x, y), birinchi argument ikkinchisiga bo'linganda qoldiqni qaytaradi. Har bir keyingi tasodifiy son oldingi tasodifiy raqam asosida quyidagi formula yordamida hisoblanadi:

r i+ 1 = mod( k · r i + b, M) .

Ushbu formula yordamida olingan tasodifiy sonlar ketma-ketligi deyiladi chiziqli kongruent ketma-ketlik. Ko'pgina mualliflar chiziqli kongruent ketma-ketlikni qachon deb atashadi b = 0 multiplikativ kongruent usuli, va qachon b ≠ 0 — aralash kongruent usuli.

Yuqori sifatli generator uchun mos koeffitsientlarni tanlash kerak. Raqam bo'lishi kerak M ancha katta edi, chunki davr bundan ortiq bo'lishi mumkin emas M elementlar. Boshqa tomondan, ushbu usulda ishlatiladigan bo'linish juda sekin ishlaydi, shuning uchun ikkilik kompyuter uchun mantiqiy tanlov bo'ladi. M = 2 N, chunki bu holda bo'linishning qolgan qismini topish kompyuter ichida "VA" ikkilik mantiqiy operatsiyasiga qisqartiriladi. Eng katta tub sonni tanlash ham keng tarqalgan M, 2 dan kam N: maxsus adabiyotlarda isbotlanganki, bu holda olingan tasodifiy sonning past tartibli raqamlari r i+ 1 xuddi eskilari kabi tasodifiy harakat qiladi, bu umuman tasodifiy sonlarning butun ketma-ketligiga ijobiy ta'sir qiladi. Misol tariqasida, ulardan biri Mersenne raqamlari, 2 31 1 ga teng va shunday qilib, M= 2 31 1 .

Chiziqli kongruent ketma-ketliklarga qo'yiladigan talablardan biri bu davr uzunligi imkon qadar uzun bo'lishidir. Davrning uzunligi qiymatlarga bog'liq M , k Va b. Quyida keltirilgan teorema bizga ma'lum qiymatlar uchun maksimal uzunlik davriga erishish mumkinligini aniqlash imkonini beradi M , k Va b .

Teorema. Raqamlar bilan aniqlangan chiziqli kongruent ketma-ketlik M , k , b Va r 0, uzunlik davriga ega M agar va faqat agar:

  • raqamlar b Va M nisbatan oddiy;
  • k 1 marta p har bir asosiy uchun p, bu bo'luvchidir M ;
  • k 1 4 ning karrali, agar M 4 ga karra.

Nihoyat, tasodifiy sonlarni hosil qilish uchun chiziqli kongruent usulidan foydalanishga bir nechta misollar bilan yakunlaylik.

1-misol ma'lumotlari asosida yaratilgan bir qator psevdo-tasodifiy raqamlar har safar takrorlanishi aniqlandi. M/4 raqam. Raqam q hisob-kitoblar boshlanishidan oldin o'zboshimchalik bilan o'rnatiladi, ammo shuni yodda tutish kerakki, seriyalar umuman tasodifiy taassurot qoldiradi. k(va shuning uchun q). Natijani biroz yaxshilash mumkin, agar b g'alati va k= 1 + 4 · q bu holda qator har bir takrorlanadi M raqamlar. Uzoq qidiruvdan keyin k tadqiqotchilar 69069 va 71365 qiymatlariga qaror qilishdi.

2-misoldagi ma'lumotlardan foydalangan holda tasodifiy sonlar generatori 7 million davriy tasodifiy, takrorlanmaydigan raqamlarni ishlab chiqaradi.

Soxta tasodifiy raqamlarni yaratishning multiplikativ usuli 1949 yilda D. H. Lehmer tomonidan taklif qilingan.

Jeneratorning sifatini tekshirish

Butun tizimning sifati va natijalarning aniqligi RNG sifatiga bog'liq. Shuning uchun, RNG tomonidan yaratilgan tasodifiy ketma-ketlik bir qator mezonlarga javob berishi kerak.

O'tkazilgan tekshiruvlar ikki turga bo'linadi:

  • taqsimotning bir xilligini tekshiradi;
  • statistik mustaqillik testlari.

Tarqatishning bir xilligini tekshiradi

1) RNG yagona tasodifiy qonunga xos bo'lgan statistik parametrlarning quyidagi qiymatlariga yaqin bo'lishi kerak:

2) Chastotani tekshirish

Chastotani tekshirish sizga oraliqda qancha raqam tushishini aniqlash imkonini beradi (m r – σ r ; m r + σ r) , ya'ni (0,5 0,2887; 0,5 + 0,2887) yoki oxir-oqibat (0,2113; 0,7887). 0,7887 0,2113 = 0,5774 bo'lgani uchun biz yaxshi RNGda chizilgan barcha tasodifiy sonlarning taxminan 57,7% i ushbu intervalga to'g'ri kelishi kerak degan xulosaga keldik (22.9-rasmga qarang).

Guruch. 22.9. Ideal RNG chastota diagrammasi
chastotani tekshirish uchun uni tekshirishda

Shuni ham hisobga olish kerakki, (0; 0,5) oraliqdagi raqamlar soni taxminan (0,5; 1) oraliqdagi raqamlar soniga teng bo'lishi kerak.

3) Xi-kvadrat testi

Xi-kvadrat testi (ch 2 testi) eng mashhur statistik testlardan biridir; boshqa mezonlar bilan birgalikda qo'llaniladigan asosiy usuldir. Xi-kvadrat testi 1900 yilda Karl Pirson tomonidan taklif qilingan. Uning ajoyib ishi zamonaviy matematik statistikaning asosi hisoblanadi.

Bizning holatimizda, chi-kvadrat mezonidan foydalangan holda sinov bizga qancha ekanligini aniqlashga imkon beradi haqiqiy RNG RNG benchmarkiga yaqin, ya'ni u yagona tarqatish talabini qondiradimi yoki yo'qmi.

Chastotalar diagrammasi ma'lumotnoma RNG rasmda ko'rsatilgan. 22.10. Yo'naltiruvchi RNG ning taqsimot qonuni bir xil bo'lgani uchun, u holda (nazariy) ehtimollik p i raqamlarni kiritish i th interval (bu barcha intervallar k) ga teng p i = 1/k . Va shunday qilib, har birida k intervallar uriladi silliq tomonidan p i · N raqamlar ( N hosil qilingan raqamlarning umumiy soni).

Guruch. 22.10. Malumot RNG ning chastota diagrammasi

Haqiqiy RNG raqamlarni taqsimlaydi (va teng ravishda emas!). k intervallarni va har bir intervalni o'z ichiga oladi n i raqamlari (jami n 1 + n 2 + + n k = N ). Sinov qilinayotgan RNG qanchalik yaxshi ekanligini va u mos yozuvlarga qanchalik yaqinligini qanday aniqlashimiz mumkin? Olingan sonlar soni o'rtasidagi kvadratik farqlarni hisobga olish juda mantiqiy n i va "ma'lumotnoma" p i · N . Keling, ularni qo'shamiz va natija:

ch 2 tajriba. = ( n 1 p 1 · N) 2 + (n 2 p 2 · N) 2 + + ( n k – p k · N) 2 .

Ushbu formuladan kelib chiqadiki, har bir atamadagi farq qanchalik kichik bo'lsa (va shuning uchun ch 2 eksp. qiymati qanchalik kichik bo'lsa), haqiqiy RNG tomonidan yaratilgan tasodifiy sonlarning taqsimlanish qonuni kuchliroq bo'ladi.

Oldingi ifodada atamalarning har biriga bir xil og'irlik (1 ga teng) berilgan, bu aslida to'g'ri bo'lmasligi mumkin; shuning uchun, chi-kvadrat statistikasi uchun har birini normallashtirish kerak i th muddat, uni bo'lish p i · N :

Nihoyat, keling, hosil bo'lgan ifodani ixchamroq yozamiz va uni soddalashtiramiz:

uchun chi-kvadrat sinov qiymatini oldik eksperimental ma'lumotlar.

Jadvalda 22.2 berilgan nazariy chi-kvadrat qiymatlari (ch 2 nazariy), bu erda ν = N 1 - erkinlik darajalari soni, p Bu RNG yagona taqsimot talablariga qanchalik javob berishi kerakligini ko'rsatadigan foydalanuvchi tomonidan belgilangan ishonch darajasi yoki p — ch 2 eksperimental qiymatining ehtimoli. jadvalli (nazariy) ch 2 nazariydan kamroq bo'ladi. yoki unga teng.

22.2-jadval.
ch 2 taqsimotining bir necha foiz punktlari
p = 1% p = 5% p = 25% p = 50% p = 75% p = 95% p = 99%
ν = 1 0.00016 0.00393 0.1015 0.4549 1.323 3.841 6.635
ν = 2 0.02010 0.1026 0.5754 1.386 2.773 5.991 9.210
ν = 3 0.1148 0.3518 1.213 2.366 4.108 7.815 11.34
ν = 4 0.2971 0.7107 1.923 3.357 5.385 9.488 13.28
ν = 5 0.5543 1.1455 2.675 4.351 6.626 11.07 15.09
ν = 6 0.8721 1.635 3.455 5.348 7.841 12.59 16.81
ν = 7 1.239 2.167 4.255 6.346 9.037 14.07 18.48
ν = 8 1.646 2.733 5.071 7.344 10.22 15.51 20.09
ν = 9 2.088 3.325 5.899 8.343 11.39 16.92 21.67
ν = 10 2.558 3.940 6.737 9.342 12.55 18.31 23.21
ν = 11 3.053 4.575 7.584 10.34 13.70 19.68 24.72
ν = 12 3.571 5.226 8.438 11.34 14.85 21.03 26.22
ν = 15 5.229 7.261 11.04 14.34 18.25 25.00 30.58
ν = 20 8.260 10.85 15.45 19.34 23.83 31.41 37.57
ν = 30 14.95 18.49 24.48 29.34 34.80 43.77 50.89
ν = 50 29.71 34.76 42.94 49.33 56.33 67.50 76.15
ν > 30 ν + sqrt(2 ν ) · x p+ 2/3 · x 2 p 2/3 + O(1/sqrt( ν ))
x p = 2.33 1.64 0,674 0.00 0.674 1.64 2.33

Qabul qilinadigan deb hisoblanadi p 10% dan 90% gacha.

Agar ch 2 exp. ch 2 nazariyasidan ancha ko'p. (ya'ni p katta), keyin generator qanoatlantirmaydi kuzatilgan qiymatlardan beri yagona taqsimlash talabi n i nazariyadan juda uzoqqa boring p i · N va tasodifiy deb hisoblash mumkin emas. Boshqacha qilib aytganda, shunday katta ishonch oralig'i o'rnatiladiki, raqamlarga nisbatan cheklovlar juda bo'shashadi, raqamlarga qo'yiladigan talablar zaiflashadi. Bunday holda, juda katta mutlaq xatolik kuzatiladi.

Hatto D. Knuth o'zining "Dasturlash san'ati" kitobida ch 2 tajribaga ega ekanligini ta'kidladi. kichiklar uchun, umuman olganda, bu ham yaxshi emas, garchi bu bir qarashda bir xillik nuqtai nazaridan ajoyib bo'lib tuyulsa ham. Darhaqiqat, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6 raqamlar qatorini oling, ular bir xillik va bir xillik nuqtai nazaridan idealdir. 2 tajriba. amalda nolga teng bo'ladi, lekin siz ularni tasodifiy deb tan olishingiz dargumon.

Agar ch 2 exp. ch 2 nazariyasidan ancha kam. (ya'ni p kichik), keyin generator qanoatlantirmaydi kuzatilgan qiymatlardan beri tasodifiy yagona taqsimot talabi n i nazariyaga juda yaqin p i · N va tasodifiy deb hisoblash mumkin emas.

Lekin agar ch 2 exp. ch 2 nazariyasining ikkita qiymati o'rtasida ma'lum bir oraliqda yotadi. , mos keladigan, masalan, p= 25% va p= 50%, keyin sensor tomonidan yaratilgan tasodifiy son qiymatlari butunlay tasodifiy deb taxmin qilishimiz mumkin.

Bundan tashqari, barcha qadriyatlarni yodda tutish kerak p i · N etarlicha katta bo'lishi kerak, masalan, 5 dan ortiq (ampirik tarzda topilgan). Shundagina (etarlicha katta statistik namunaga ega bo'lgan holda) tajriba sharoitlarini qoniqarli deb hisoblash mumkin.

Shunday qilib, tekshirish tartibi quyidagicha.

Statistik mustaqillik uchun testlar

1) Ketma-ketlikda raqamlarning paydo bo'lish chastotasini tekshirish

Keling, bir misolni ko'rib chiqaylik. Tasodifiy son 0,2463389991 2463389991 raqamlaridan, 0,5467766618 raqamlari esa 5467766618 raqamlardan iborat. Raqamlar ketma-ketligini bog'lab, bizda: 2463389996161.

Nazariy ehtimollik aniq p i yo'qotish i Raqam (0 dan 9 gacha) 0,1 ga teng.

2) Bir xil sonlar qatorining ko'rinishini tekshirish

bilan belgilaymiz n L uzunlikdagi bir qatordagi bir xil raqamlar qatori soni L. Hamma narsani tekshirish kerak L 1 dan m, Qayerda m bu foydalanuvchi tomonidan ko'rsatilgan raqam: ketma-ketlikda bir xil raqamlarning maksimal uchraydigan soni.

“24633899915467766618” misolida uzunligi 2 (33 va 77) bo'lgan 2 ta seriya topildi, ya'ni n 2 = 2 va 2 seriyali uzunlik 3 (999 va 666), ya'ni n 3 = 2 .

Bir qator uzunlikning paydo bo'lish ehtimoli L teng: p L= 9 10 L (nazariy). Ya'ni, bir belgi uzunlikdagi seriyaning paydo bo'lish ehtimoli quyidagilarga teng: p 1 = 0,9 (nazariy). Ikkita belgilar seriyasining paydo bo'lish ehtimoli: p 2 = 0,09 (nazariy). Bir qator uchta belgi paydo bo'lish ehtimoli: p 3 = 0,009 (nazariy).

Masalan, bir belgi uzunlikdagi seriyaning paydo bo'lish ehtimoli p L= 0,9, chunki 10 tadan bitta belgi bo'lishi mumkin va jami 9 ta belgi bo'lishi mumkin (nol hisobga olinmaydi). Va ikkita bir xil "XX" belgisining ketma-ket paydo bo'lish ehtimoli 0,1 · 0,1 · 9 ga teng, ya'ni "X" belgisining birinchi holatda paydo bo'lish ehtimoli 0,1 ga ko'paytiriladi. xuddi shu belgi ikkinchi "X" pozitsiyasida paydo bo'ladi va bunday kombinatsiyalar soni 9 ga ko'paytiriladi.

Qatorlarning paydo bo'lish chastotasi qiymatlar yordamida biz ilgari muhokama qilgan chi-kvadrat formulasi yordamida hisoblanadi p L .

Eslatma: Jeneratorni bir necha marta sinab ko'rish mumkin, ammo testlar to'liq emas va generator tasodifiy sonlarni ishlab chiqarishiga kafolat bermaydi. Misol uchun, 12345678912345 ketma-ketligini ishlab chiqaradigan generator sinovlar davomida ideal deb hisoblanadi, bu mutlaqo to'g'ri emas.

Xulosa qilib shuni ta'kidlaymizki, Donald E.Knutning "Dasturlash san'ati" (2-jild) kitobining uchinchi bobi butunlay tasodifiy sonlarni o'rganishga bag'ishlangan. U tasodifiy sonlarni yaratishning turli usullarini, tasodifiylikning statistik testlarini va bir xil taqsimlangan tasodifiy sonlarni boshqa turdagi tasodifiy miqdorlarga aylantirishni o'rganadi. Ikki yuzdan ortiq sahifalar ushbu materialning taqdimotiga bag'ishlangan.

  • Oʻquv qoʻllanma

Math.random() qanday ishlashini hech o'ylab ko'rganmisiz? Tasodifiy son nima va u qanday olinadi? Intervyu savolini tasavvur qiling - tasodifiy sonlar generatorini bir nechta kod qatoriga yozing. Xo'sh, bu nima, baxtsiz hodisa va uni oldindan aytish mumkinmi?

Meni turli IT jumboqlari va vazifalari juda qiziqtiradi va tasodifiy sonlar generatori bu vazifalardan biridir. Odatda Telegram kanalimda intervyulardan har xil jumboqlarni va turli topshiriqlarni tahlil qilaman. Tasodifiy sonlar generatori muammosi juda mashhur bo'ldi va men uni nufuzli ma'lumot manbalaridan birining chuqurligida - ya'ni Habré-da davom ettirmoqchi edim.

Ushbu material texnologiyaning eng ilg'or bosqichida bo'lgan va blokcheyn loyihasi/startapiga kirishni istagan barcha front-end va Node.js dasturchilari uchun foydali bo'ladi, bu erda hatto front-end ishlab chiquvchilarga xavfsizlik va kriptografiya haqida savollar beriladi. kamida asosiy darajada.

Pseudo-tasodifiy sonlar generatori va tasodifiy sonlar generatori

Tasodifiy narsani olish uchun bizga entropiya manbai kerak, biz tasodifiylikni yaratish uchun foydalanamiz.

Ushbu manba entropiyani to'plash va undan keyin tasodifiy sonlarni yaratish uchun tasodifiy sonlar generatorlari (RNG) uchun zarur bo'lgan boshlang'ich qiymatni (urug') olish uchun ishlatiladi.

Pseudo-tasodifiy raqamlar generatori bitta urug'dan foydalanadi, shuning uchun uning psevdo-tasodifiyligi, Tasodifiy sonlar generatori esa har doim entropiyaning turli manbalaridan olingan yuqori sifatli tasodifiy o'zgaruvchidan boshlab tasodifiy son hosil qiladi.

Entropiya tartibsizlikning o'lchovidir. Axborot entropiyasi - bu ma'lumotlarning noaniqligi yoki oldindan aytib bo'lmaydiganligi o'lchovidir.
Ma'lum bo'lishicha, psevdo-tasodifiy ketma-ketlikni yaratish uchun bizga ma'lum bir formulaga asoslangan ma'lum ketma-ketlikni yaratadigan algoritm kerak bo'ladi. Ammo bunday ketma-ketlikni oldindan aytish mumkin. Biroq, agar bizda Math.random() bo'lmasa, o'z tasodifiy sonlar generatorini qanday yozishimiz mumkinligini tasavvur qilaylik.

PRNG-da takrorlanishi mumkin bo'lgan ba'zi algoritm mavjud.
RNG - bu qandaydir shovqindan raqamlarni to'liq olish jarayoni, nolga moyilligini hisoblash qobiliyati. Shu bilan birga, RNG taqsimotni tenglashtirish uchun ma'lum algoritmlarga ega.

Biz o'zimizning PRNG algoritmini o'ylab topamiz

Soxta tasodifiy sonlar generatori (PRNG) - elementlari bir-biridan deyarli mustaqil bo'lgan va berilgan taqsimotga (odatda bir xil) bo'ysunadigan raqamlar ketma-ketligini yaratuvchi algoritm.
Biz ba'zi raqamlar ketma-ketligini olishimiz va ulardan raqam modulini olishimiz mumkin. Aqlga keladigan eng oddiy misol. Qaysi ketma-ketlikni va modulni nimadan olish haqida o'ylashimiz kerak. Agar siz to'g'ridan-to'g'ri 0 dan N gacha va modul 2 bo'lsa, siz 1 va 0 generatorini olasiz:

Function* rand() ( const n = 100; const mod = 2; let i = 0; while (haqiqiy) ( rentabellik i % mod; agar (i++ > n) i = 0; ) ) i = 0 bo‘lsin; uchun (x of rand()) ( if (i++ > 100) sindirish; console.log(x); )
Bu funksiya 01010101010101... ketma-ketligini hosil qiladi va uni psevdo-tasodifiy deb atash ham mumkin emas. Generator tasodifiy bo'lishi uchun u keyingi bit testidan o'tishi kerak. Ammo bizda bunday vazifa yo'q. Shunga qaramay, hech qanday testlarsiz ham keyingi ketma-ketlikni bashorat qilishimiz mumkin, ya'ni bunday algoritm mos emas, lekin biz to'g'ri yo'nalishdamiz.

Agar ba'zi taniqli, ammo chiziqli bo'lmagan ketma-ketlikni, masalan, PI raqamini olsak nima bo'ladi. Va modul uchun qiymat sifatida biz 2 emas, balki boshqa narsani olamiz. Siz hatto modulning o'zgaruvchan qiymati haqida o'ylashingiz mumkin. Pi dagi raqamlar ketma-ketligi tasodifiy hisoblanadi. Jeneratör noma'lum nuqtadan boshlab Pi raqamlari yordamida ishlashi mumkin. PI-ga asoslangan ketma-ketlik va o'zgaruvchan modulli bunday algoritmga misol:

Const vektor = [...Math.PI.toFixed(48).replace(".","")]; funktsiya* rand() ( uchun (i=3 bo'lsin; i<1000; i++) { if (i >99) i = 2; uchun (n=0; n Ammo JSda PI raqami faqat 48 tagacha ko'rsatilishi mumkin va undan ko'p emas. Shuning uchun, bunday ketma-ketlikni bashorat qilish hali ham oson va bunday generatorning har bir ishlashi har doim bir xil raqamlarni ishlab chiqaradi. Ammo bizning generatorimiz allaqachon 0 dan 9 gacha raqamlarni ko'rsatishni boshladi.

Biz 0 dan 9 gacha raqamlar generatorini oldik, lekin taqsimot juda notekis va u har safar bir xil ketma-ketlikni hosil qiladi.

Raqamli ko'rinishda biz Pi sonini emas, balki vaqtni olishimiz va bu raqamni raqamlar ketma-ketligi deb hisoblashimiz mumkin va ketma-ketlik har safar takrorlanmasligi uchun biz uni oxiridan o'qiymiz. Umuman olganda, bizning PRNG uchun algoritmimiz quyidagicha ko'rinadi:

Function* rand() ( let newNumVector = () => [...(+yangi sana)+""].reverse(); let vektor = newNumVector(); let i=2; while (haqiqiy) ( agar ( i++ > 99) i = 2; n=-1 bo‘lsin; while (++n)< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) tanaffus; console.log(x)
Bu allaqachon psevdo-tasodifiy raqamlar generatoriga o'xshaydi. Va xuddi shu Math.random() PRNG, biz bu haqda biroz keyinroq gaplashamiz. Bundan tashqari, har safar biz boshqacha birinchi raqamni olamiz.

Aslida, ushbu oddiy misollar yordamida siz murakkabroq tasodifiy sonlar generatorlari qanday ishlashini tushunishingiz mumkin. Va hatto tayyor algoritmlar ham mavjud. Misol tariqasida, ulardan birini ko'rib chiqaylik — bu Lineer Congruent PRNG (LCPRNG).

Chiziqli kongruent PRNG

Chiziqli kongruent PRNG (LCPRNG) psevdor tasodifiy raqamlarni yaratishning keng tarqalgan usuli hisoblanadi. Bu kriptografik jihatdan kuchli emas. Bu usul formula bo'yicha berilgan ba'zi natural son m modulli chiziqli takrorlanuvchi ketma-ketlikning shartlarini hisoblashdan iborat. Olingan ketma-ketlik boshlang'ich raqamni tanlashga bog'liq — ya'ni. urug'. Turli xil urug'lik qiymatlari bilan tasodifiy sonlarning turli ketma-ketliklari olinadi. JavaScript-da bunday algoritmni amalga oshirishga misol:

Const a = 45; const c = 21; const m = 67; var urug'i = 2; const rand = () => urug ' = (a * urug' + c) % m; for(i=0; i<30; i++) console.log(rand())
Ko'pgina dasturlash tillari LCPRNG dan foydalanadi (lekin bu algoritm (!) emas).

Yuqorida aytib o'tilganidek, bunday ketma-ketlikni bashorat qilish mumkin. Xo'sh, nima uchun bizga PRNG kerak? Agar xavfsizlik haqida gapiradigan bo'lsak, PRNG muammosi. Agar boshqa vazifalar haqida gapiradigan bo'lsak, unda bu xususiyatlar ortiqcha bo'lishi mumkin. Masalan, turli xil maxsus effektlar va grafik animatsiyalar uchun siz tez-tez tasodifiy qo'ng'iroq qilishingiz kerak bo'lishi mumkin. Va bu erda ma'nolarni taqsimlash va ishlash muhim! Xavfsiz algoritmlar tezlik bilan maqtana olmaydi.

Yana bir xususiyat - takrorlanuvchanlik. Ba'zi ilovalar urug'ni ko'rsatishga imkon beradi va agar ketma-ketlikni takrorlash kerak bo'lsa, bu juda foydali. Ko'paytirish, masalan, testlarda kerak. Va xavfsiz RNG talab qilmaydigan boshqa ko'plab narsalar mavjud.

Math.random() qanday ishlaydi

Math.random() usuli = crypto.getRandomValues(new Uint8Array(1)) diapazonidan soxta tasodifiy suzuvchi nuqta raqamini qaytaradi; console.log (qiymat)
Ammo, Math.random() PRNG dan farqli o'laroq, bu usul juda ko'p resurs talab qiladi. Gap shundaki, bu generator entropiya manbalariga (mak-manzil, protsessor, harorat va h.k.) kirish uchun operatsion tizimda tizim chaqiruvlaridan foydalanadi.

Turli lotereyalar, lotereyalar va boshqalar ko'pincha ijtimoiy tarmoqlar, Instagram va boshqalardagi ko'plab guruhlarda yoki ommaviy sahifalarda o'tkaziladi va akkaunt egalari tomonidan jamiyatga yangi auditoriyani jalb qilish uchun foydalaniladi.

Bunday chizmalarning natijasi ko'pincha foydalanuvchining omadiga bog'liq, chunki sovrinni oluvchi tasodifiy tarzda aniqlanadi.

Buni aniqlash uchun lotereya tashkilotchilari deyarli har doim bepul tarqatiladigan onlayn yoki oldindan o'rnatilgan tasodifiy raqamlar generatoridan foydalanadilar.

Tanlov

Ko'pincha bunday generatorni tanlash qiyin bo'lishi mumkin, chunki ularning funksionalligi butunlay boshqacha - ba'zilari uchun bu sezilarli darajada cheklangan, boshqalari uchun bu juda keng.

Bunday xizmatlarning juda ko'p soni amalga oshirilmoqda, ammo qiyinchilik shundaki, ular hajmi jihatidan farq qiladi.

Ko'pchilik, masalan, o'zlarining funksionalligi bilan ma'lum bir ijtimoiy tarmoqqa bog'langan (masalan, VKontakte-dagi ko'plab generator ilovalari faqat ushbu ijtimoiy tarmoqdagi havolalar bilan ishlaydi).

Eng oddiy generatorlar berilgan diapazondagi raqamni tasodifiy ravishda aniqlaydilar.

Bu qulay, chunki u natijani ma'lum bir post bilan bog'lamaydi, ya'ni u ijtimoiy tarmoqdan tashqarida va boshqa turli vaziyatlarda lotereyalar uchun ishlatilishi mumkin.

Ulardan boshqa foyda yo'q.

<Рис. 1 Генератор>

Maslahat! Eng mos generatorni tanlayotganda, u nima uchun ishlatilishini hisobga olish kerak.

Texnik xususiyatlari

Tasodifiy raqamlarni yaratish uchun optimal onlayn xizmatni tanlashning eng tezkor jarayoni uchun quyidagi jadvalda bunday ilovalarning asosiy texnik xususiyatlari va funksionalligi ko'rsatilgan.

Jadval 1. Tasodifiy sonni yaratish uchun onlayn ilovalarning ishlash xususiyatlari
Ism Ijtimoiy tarmoq Bir nechta natijalar Raqamlar ro'yxatidan tanlang Sayt uchun onlayn vidjet Bir qatordan tanlang Takrorlashlarni o'chirish
RandStuff Ha Ha Yo'q Ha Yo'q
Lotlar Rasmiy veb-sayt yoki VKontakte Yo'q Yo'q Ha Ha Ha
Tasodifiy raqam Rasmiy sayt Yo'q Yo'q Yo'q Ha Ha
Tasodifiy Rasmiy sayt Ha Yo'q Yo'q Ha Yo'q
Tasodifiy raqamlar Rasmiy sayt Ha Yo'q Yo'q Yo'q Yo'q

Jadvalda ko'rib chiqilgan barcha ilovalar quyida batafsilroq tavsiflanadi.

<Рис. 2 Случайные числа>

RandStuff

<Рис. 3 RandStuff>

Siz ushbu ilovadan http://randstuff.ru/number/ rasmiy veb-saytiga havola orqali onlayn foydalanishingiz mumkin.

Bu oddiy tasodifiy sonlar generatori, tez va barqaror ishlashi bilan ajralib turadi.

U rasmiy veb-saytdagi alohida mustaqil dastur formatida ham, VKontakte ijtimoiy tarmog'idagi dastur sifatida ham muvaffaqiyatli amalga oshirilmoqda.

Ushbu xizmatning o'ziga xosligi shundaki, u tasodifiy raqamni belgilangan diapazondan ham, saytda ko'rsatilishi mumkin bo'lgan raqamlarning aniq ro'yxatidan ham tanlashi mumkin.

Taroziga soling:

  • Barqaror va tez ishlash;
  • Ijtimoiy tarmoqqa to'g'ridan-to'g'ri ulanishning yo'qligi;
  • Siz bir yoki bir nechta raqamni tanlashingiz mumkin;
  • Siz faqat ko'rsatilgan raqamlar orasidan tanlashingiz mumkin.

Kamchiliklari:

  • VKontakte o'yinini o'tkaza olmaslik (bu alohida arizani talab qiladi);
  • VKontakte uchun ilovalar barcha brauzerlarda ishlamaydi;
  • Natija ba'zan bashorat qilinadigan ko'rinadi, chunki faqat bitta hisoblash algoritmi ishlatiladi.

Foydalanuvchilarning ushbu ilova haqidagi sharhlari quyidagicha: “Biz ushbu xizmat orqali VKontakte guruhlarida g'oliblarni aniqlaymiz. Rahmat", "Siz eng zo'rsiz", "Men faqat ushbu xizmatdan foydalanaman."

Lotlar

<Рис. 4 Cast Lots>

Ushbu dastur VKontakte ilovasi ko'rinishida rasmiy veb-saytda amalga oshiriladigan oddiy funktsiya generatoridir.

Veb-saytingizga kiritish uchun generator vidjeti ham mavjud.

Oldingi tavsiflangan dasturdan asosiy farq shundaki, bu sizga natijani takrorlashni o'chirish imkonini beradi.

Ya'ni, bir seansda bir necha avlodni ketma-ket o'tkazishda raqam takrorlanmaydi.

  • Veb-sayt yoki blogga kiritish uchun vidjet mavjudligi;
  • Natijalarni takrorlashni o'chirish qobiliyati;
  • "Bundan ham ko'proq tasodifiylik" funksiyasining mavjudligi, faollashtirilgandan so'ng tanlash algoritmi o'zgaradi.

Salbiy:

  • Bir vaqtning o'zida bir nechta natijalarni aniqlay olmaslik;
  • Muayyan raqamlar ro'yxatidan tanlash imkoniyati yo'qligi;
  • G'olibni omma oldida tanlash uchun siz alohida VKontakte vidjetidan foydalanishingiz kerak.

Foydalanuvchilarning sharhlari quyidagicha: "U barqaror ishlaydi, foydalanish juda qulay", "Qulay funksionallik", "Men faqat ushbu xizmatdan foydalanaman".

Tasodifiy raqam

<Рис. 5 Случайное число>

Ushbu xizmat http://randomnumber.rf/ manzilida joylashgan.

Oddiy generator bilan minimal funktsiyalar va qo'shimcha funktsiyalar.

Belgilangan diapazondagi raqamlarni tasodifiy yaratishi mumkin (maksimal 1 dan 99999 gacha).

Saytda hech qanday grafik dizayn yo'q, shuning uchun sahifa osongina yuklanadi.

Natijani bir tugmani bosish orqali nusxalash yoki yuklab olish mumkin.

Salbiy:

  • VKontakte uchun vidjet yo'qligi;
  • Qura o'tkazish imkoniyati yo'q;
  • Natijani blog yoki veb-saytga joylashtirishning hech qanday usuli yo'q.

Foydalanuvchilar ushbu xizmat haqida nima deyishadi: “Yaxshi generator, lekin funksiyalar yetarli emas”, “Juda kam funksiyalar”, “Keraksiz sozlamalarsiz raqamlarni tezda yaratish uchun javob beradi”.

Tasodifiy

<Рис. 6 Рандомус>

Ushbu tasodifiy sonlar generatorini http://randomus.ru/ saytida ishlatishingiz mumkin.

Yana bir, juda oddiy, lekin funktsional tasodifiy sonlar generatori.

Xizmat tasodifiy sonlarni aniqlash uchun etarli funksiyaga ega, ammo u o'yinlar va boshqa murakkab jarayonlarni o'tkazish uchun mos emas.

Salbiy:

  • Postning repostlari asosida chizmalarni ushlab turishning mumkin emasligi va boshqalar.
  • VKontakte uchun dastur yoki sayt uchun vidjet yo'q;
  • Natijalarni takrorlashni o'chirib qo'yish mumkin emas.

Yaqinda mashhur bo'lgan aniq va qulay onlayn raqamlar generatori. U foydalanuvchilar orasida ijtimoiy tarmoqlardagi sovrinlar o'yinlari chog'ida eng keng tarqalgan.

Boshqa sohalarda ham mashhur. Bizda ham parollar va raqamlar mavjud.

Bizning onlayn tasodifiy sonlar generatorimiz.

Bizning randomizer generatorimiz uni shaxsiy kompyuteringizga yuklab olishni talab qilmaydi. Hamma narsa onlayn raqamlar generatori rejimida sodir bo'ladi. Shunchaki parametrlarni belgilang: raqamlar tasodifiy tanlanadigan onlayn raqamlar diapazoni. Shuningdek, tanlangan raqamlar sonini ko'rsating.

Masalan, sizda VKontakte guruhi mavjud. Guruhda postni repost qilgan ishtirokchilar orasidan 5 ta sovrin yutib olasiz. Maxsus ilova yordamida biz ishtirokchilar ro‘yxatini oldik. Har biriga onlayn raqamlar uchun o'z seriya raqami berildi.

Endi biz onlayn generatorimizga o'tamiz va raqamlar oralig'ini (ishtirokchilar soni) ko'rsatamiz. Misol uchun, biz onlaynda 5 ta raqam kerakligini belgiladik, chunki bizda 5 ta sovrin bor. Endi yaratish tugmasini bosing. Keyin biz 1 dan 112 gacha bo'lgan 5 ta tasodifiy raqamni olamiz. Onlayn shaklda yaratilgan 5 ta raqam o'yin g'olibiga aylangan besh ishtirokchining seriya raqamiga mos keladi. Hammasi oddiy va qulay.

Tasodifiy sonlar generatorining yana bir afzalligi shundaki, barcha onlayn raqamlar tasodifiy ravishda chiqariladi. Ya'ni, unga ta'sir qilish yoki keyingi raqam qanday bo'lishini hisoblash mumkin emas. Halol va ishonchli deyish nimani anglatadi va bizning bepul generatorimiz yordamida sovg'alarni taqdim etayotgan ma'muriyat tanlov ishtirokchilarining shaxsida halol va munosibdir. Va agar biron bir qarorga shubhangiz bo'lsa, bizdan foydalanishingiz mumkin

Nima uchun tasodifiy sonlar generatori eng yaxshisidir?

Gap shundaki onlayn raqamlar generatori har qanday qurilmada va har doim onlayn mavjud. Sizda mavjud bo'lgan har qanday fikr uchun har qanday raqamni halollik bilan yaratishingiz mumkin. Va loyiha uchun xuddi shunday foydalaning tasodifiy sonlar generatori onlayn. Ayniqsa, o'yin yoki boshqa raqam uchun g'olibni onlayn tarzda aniqlash kerak bo'lsa. Gap shundaki tasodifiy sonlar generatori algoritmlarsiz butunlay tasodifiy har qanday raqamlarni hosil qiladi. Bu asosan raqamlar bilan bir xil.

Tasodifiy raqamlar generatori onlayn bepul!

Onlayn tasodifiy raqamlar generatori hamma uchun bepul. Siz yuklab olishingiz yoki sotib olishingiz shart emas tasodifiy sonlar generatori qura tashlash uchun onlayn. Siz shunchaki bizning veb-saytimizga kirishingiz va kerakli tasodifiy natijani olishingiz kerak. Bizda nafaqat bor tasodifiy sonlar generatori balki ko'pchilikka kerak va albatta lotereya yutib olishga yordam beradi. Lotereyalar uchun haqiqiy onlayn tasodifiy raqamlar generatori mutlaq tasodifiylikdir. Bizning saytimiz sizga nimani taqdim eta oladi.

Onlayn tasodifiy raqam

Agar siz onlayn tasodifiy raqamni izlayotgan bo'lsangiz, unda biz ushbu resursni aynan siz uchun yaratdik. Biz doimo algoritmlarimizni takomillashtirib boramiz. Haqiqiysini shu yerda olasiz tasodifiy sonlar generatori. U sizga kerak bo'lgan tasodifiy generator kabi har qanday ehtiyojlarni mutlaqo bepul va istalgan vaqtda ta'minlaydi. Biz bilan onlayn tasodifiy raqamlarni yarating. Har doim yaratilgan har bir raqam butunlay tasodifiy ekanligiga ishonch hosil qiling.

Tasodifiy raqamlar generatori

Bizning tasodifiy sonlar generatorimiz raqamlarni tasodifiy ravishda tasodifiy tanlaydi. Kompyuteringizda qaysi kun yoki soat borligi muhim emas. Bu haqiqiy ko'r tanlovdir. Tasodifiy generator barcha raqamlarni tasodifiy tartibda aralashtirib yuboradi. Va keyin ular orasidan siz ko'rsatgan tasodifiy raqamlar sonini tasodifiy tanlaydi. Ba'zan raqamlar takrorlanishi mumkin, bu tasodifiy sonlar generatorining to'liq tasodifiyligini isbotlaydi.

Tasodifiy onlayn

Tasodifiy - bu durang uchun eng ishonchli variant. Onlayn generator haqiqatan ham tasodifiy tanlovdir. Siz tasodifiy raqamni tanlashda har qanday ta'sirdan himoyalangansiz. G'olibni tasodifiy onlayn tanlash jarayonini videoga olish orqali. Sizga kerak bo'lgan narsa shu. Onlayn raqamlar generatorimiz yordamida onlayn yarmarkalarni tashkil qiling. Siz g'oliblar va mamnun o'yinchilarni olasiz. Va biz tasodifiy generatorimiz bilan sizni xursand qila olganimizdan xursandmiz.

Bizda berilgan taqsimotga bo'ysunadigan amalda mustaqil elementlardan tashkil topgan raqamlar ketma-ketligi mavjud. Qoida tariqasida, bir xil taqsimlash.

Excelda tasodifiy sonlarni turli usullar va usullarda yaratishingiz mumkin. Keling, ulardan faqat eng yaxshisini ko'rib chiqaylik.

Excelda tasodifiy raqamlar funktsiyasi

  1. RAND funktsiyasi tasodifiy, bir xil taqsimlangan haqiqiy sonni qaytaradi. U 1 dan kichik, 0 dan katta yoki teng bo'ladi.
  2. RANDBETWEEN funksiyasi tasodifiy butun sonni qaytaradi.

Keling, ulardan foydalanishni misollar bilan ko'rib chiqaylik.

RAND yordamida tasodifiy sonlarni tanlab olish

Bu funksiya argumentlarni talab qilmaydi (RAND()).

1 dan 5 gacha bo'lgan oraliqda tasodifiy haqiqiy sonni yaratish uchun, masalan, quyidagi formuladan foydalaning: =RAND()*(5-1)+1.

Qaytarilgan tasodifiy son interval bo'ylab bir xilda taqsimlanadi.

Har safar ishchi varaq hisoblanganda yoki ish varag'idagi istalgan katakdagi qiymat o'zgarganda yangi tasodifiy raqam qaytariladi. Agar siz yaratilgan populyatsiyani saqlamoqchi bo'lsangiz, formulani uning qiymati bilan almashtirishingiz mumkin.

  1. Tasodifiy raqam bilan katakchani bosing.
  2. Formulalar qatorida formulani tanlang.
  3. F9 tugmasini bosing. VA KIRISH.

Birinchi namunadagi tasodifiy sonlar taqsimotining bir xilligini taqsimlash gistogrammasi yordamida tekshiramiz.


Vertikal qiymatlar diapazoni chastotadir. Gorizontal - "cho'ntaklar".



RANDBETWEEN funksiyasi

RANDBETWEEN funksiyasi sintaksisi (pastki chegara; yuqori chegara). Birinchi dalil ikkinchisidan kamroq bo'lishi kerak. Aks holda, funksiya xatoga yo'l qo'yadi. Chegaralar butun sonlar sifatida qabul qilinadi. Formula kasr qismini olib tashlaydi.

Funktsiyadan foydalanishga misol:

0,1 va 0,01 aniqlikdagi tasodifiy raqamlar:

Excelda tasodifiy sonlar generatorini qanday qilish kerak

Keling, ma'lum diapazondan qiymat hosil qiluvchi tasodifiy sonlar generatorini yarataylik. Biz quyidagi formuladan foydalanamiz: =INDEX(A1:A10,INTEGER(RAND()*10)+1).

10 lik bosqichlarda 0 dan 100 gacha bo'lgan oraliqda tasodifiy sonlar generatorini yaratamiz.

Matn qiymatlari ro'yxatidan 2 ta tasodifiy birini tanlashingiz kerak. RAND funktsiyasidan foydalanib, biz A1: A7 diapazonidagi matn qiymatlarini tasodifiy raqamlar bilan taqqoslaymiz.

Asl ro'yxatdan ikkita tasodifiy matn qiymatini tanlash uchun INDEX funktsiyasidan foydalanamiz.

Roʻyxatdan bitta tasodifiy qiymatni tanlash uchun quyidagi formuladan foydalaning: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

Oddiy taqsimot tasodifiy sonlar generatori

RAND va RANDBETWEEN funksiyalari bir xil taqsimotga ega tasodifiy sonlarni hosil qiladi. Xuddi shu ehtimolga ega bo'lgan har qanday qiymat so'ralgan diapazonning pastki chegarasiga va yuqorisiga tushishi mumkin. Bu maqsadli qiymatdan katta tarqalishga olib keladi.

Oddiy taqsimot ishlab chiqarilgan raqamlarning ko'pchiligi maqsadli raqamga yaqin ekanligini anglatadi. RANDBETWEEN formulasini sozlaymiz va normal taqsimotga ega ma’lumotlar massivini yaratamiz.

X mahsulotining narxi 100 rublni tashkil qiladi. Ishlab chiqarilgan butun partiya normal taqsimotga amal qiladi. Tasodifiy o'zgaruvchi ham normal ehtimollik taqsimotiga amal qiladi.

Bunday sharoitlarda assortimentning o'rtacha qiymati 100 rublni tashkil qiladi. Keling, massivni yaratamiz va standart og'ish 1,5 rubl bo'lgan normal taqsimotga ega grafik tuzamiz.

Biz funksiyadan foydalanamiz: =NORMINV(RAND();100;1.5).

Excel qaysi qiymatlar ehtimollik oralig'ida ekanligini hisoblab chiqdi. Narxi 100 rubl bo'lgan mahsulotni ishlab chiqarish ehtimoli maksimal bo'lganligi sababli, formula 100 ga yaqin qiymatlarni boshqalarga qaraganda tez-tez ko'rsatadi.

Keling, grafikni chizishga o'tamiz. Avval siz toifalar bilan jadval yaratishingiz kerak. Buning uchun massivni nuqtalarga ajratamiz:

Olingan ma'lumotlarga asoslanib, biz normal taqsimotga ega diagramma yaratishimiz mumkin. Qiymat o'qi - intervaldagi o'zgaruvchilar soni, toifalar o'qi - davrlar.