Tasodifiy sonlar generatoriga nima kerak? Tasodifiy raqamlar generatori. Raqam generatori haqida tushuncha

Ruletkaning 10 marta aylanishidan juft raqam 5 marta chiqadi degan gapni hech tekshirganmisiz? Yoki siz bir necha marta lotereyalarda qatnashgan va hatto yutib olishga muvaffaq bo'lgandirsiz? Agar biz barcha natijalar haqiqatan ham tasodifiy ekanligini qabul qilsak, u holda biz ma'lum bir hodisaning yuzaga kelish ehtimoli haqida gapirishimiz mumkin.

Oxirgi bayonotni ifodalash uchun keling, voqealarda ishtirok etgan odamlarning so'zlarini takrorlaylik tasodifiy natija: qudratli tasodifiy ishlar.

Shunday qilib, tarqatish printsipi tasodifiy yoki yo'qligini qanday tekshirish mumkin? Tasodifiy raqamlar generatori bu vazifani bajaradi. Uning asosiy afzalligi shundaki, u onlayn rejimda ishlaydi, ya'ni u juda tez va yuklab olingandan so'ng Internet aloqasi mavjudligiga bog'liq emas.

Tasodifiy sonlar generatori qanday ishlaydi?

Ishni tasvirlash uchun sizga ko'p harflar kerak emas, hamma narsa juda oddiy: siz minimal va maksimal mumkin bo'lgan raqamlarni tanlashingiz kerak, hosil bo'lgan qiymatlar sonini kiritishingiz kerak, agar kerak bo'lsa, "Takrorlanishlarni istisno qilish" katagiga belgi qo'ying. allaqachon mavjud bo'lgan raqamlarning ko'rinishi va yaratish tugmasini bosing. Shundan so'ng, tugmani har bir keyingi bosish yangi tarqatish variantlarini ishlab chiqaradi.

Nima uchun bu kerak bo'lishi mumkin? Masalan, olish uchun omadli raqamlar lotereyada yoki ruletda. Bundan tashqari, generator psevdor tasodifiy raqamlar lotto bochkalarini yoki tanlov uchun tanga tashlashni taqlid qilish imkoniyatiga ega - boshlar va dumlar nol yoki bitta bilan ifodalanadi. Lekin asosiysi, sahifani yuklaganingizdan so'ng Internetga ulanishingiz shart emas - kod JavaScript-da yoziladi va foydalanuvchi tomonida, uning brauzerida bajariladi.

Buning ishlashini sinab ko'rish onlayn generator ba'zan juda berdi qiziqarli natijalar: 0 va 1 raqamlaridan foydalangan holda, 10 ta variant bilan, kamdan-kam hollarda 7 dan 3 gacha yoki hatto 6 ga nisbatda taqsimot hosil bo'lmaydi. bir xil raqamlar shartnoma.

Loto va yuqoridagi misollardan tashqari yana nima uchun tasodifiy raqamlarni tarqatish uchun foydali bo'lishi mumkin? Hech bo'lmaganda taxmin qilish o'yini uchun. Ehtimol, siz bu o'yinni bolalikda o'ynagansiz: uy egasi 1 dan 100 gacha bo'lgan raqamni taxmin qiladi, boshqalari esa buni taxmin qilishga harakat qilishadi. Ushbu generatorga nisbatan siz etakchi sifatida harakat qilasiz va kompyuter nima yashiringanligini taxmin qilishga harakat qiladi.

Siz hatto o'ynashingiz mumkin Dengiz jangi, darhol 0 dan 99 gacha bo'lgan oraliqdagi raqamlar guruhini qabul qiladi. Bu holda, raqamning eng muhim raqami harflar sifatida ishlatiladi (ular gorizontal ravishda ko'rsatilgan) - 0...9 a... va, pastki raqamlar bu holda 1...10 oralig'ini almashtiradi, keyin faqat bitta qo'shiladi. Ehtimol, hozir bu yondashuv juda aniq ko'rinmaydi, lekin bu odat masalasidir.

Uni ishlatishning yana bir qiziqarli usuli - sezgiingizni sinab ko'rish. Siz generator qaysi raqamlarni (birma-bir yoki guruhda) ishlab chiqarishini taxmin qilishga harakat qilasiz, tugmani bosing va to'g'ri natijaga qanchalik yaqin ekanligingizni tekshiring. Kim biladi, balki bir necha urinishlardan so'ng siz natijani aniq bashorat qila olasizmi?

Ammo shuni hisobga olish kerakki, tasodifiy sonlar generatori biron bir sababga ko'ra shunday nomlanadi. Mavjud usullar bugungi kunda haqiqiy tasodifiy qiymatni ta'minlay olmaydi - bu ko'plab omillarga bog'liq bo'lib, ular oldingi raqamni, joriy vaqtni, ma'lum bir xotira hujayrasining tarkibini va boshqa ma'lumotlarni o'z ichiga olishi mumkin. Ammo ichki ehtiyojlar uchun ularning funksionalligi odatda 100% etarli.

Umid qilamanki, siz generator uchun bu erda tasvirlangan variantlardan ko'ra kengroq foydalanishni topasiz. Va ehtimol siz taklif qilishingiz mumkin yaxshi fikr mavjud funksionallikni kengaytirish. Oxir-oqibat, bu noaniq g'oyadan haqiqiy timsolga aylangan eng aql bovar qilmaydigan fikrlar edi.


E'tibor bering, ideal holda tasodifiy sonlarni taqsimlash zichligi egri rasmda ko'rsatilgandek ko'rinadi. 22.3. Ya'ni, ideal holatda, har bir interval o'z ichiga oladi bir xil raqam ball: 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
Olingan ikkilik ketma-ketlikni 100110100 uchliklarga ajratamiz: 100, 110, 100. Bularni tarjima qilgandan keyin. ikkilik raqamlar o'nli kasrda biz olamiz: 4, 6, 4. Oldindagi "0." o'rniga, biz: 0,464 ni olamiz. 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'lmaganligi sababli, jadvalni kesib o'tish mumkin turli yo'llar bilan, masalan, yuqoridan pastga yoki o'ngdan chapga yoki, aytaylik, juft holatda bo'lgan raqamlarni tanlashingiz 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
… …

Qadr-qimmat bu usul Bu haqiqatan ham tasodifiy sonlarni ishlab chiqaradi, chunki jadvalda tasdiqlangan bog'liq bo'lmagan raqamlar mavjud. Usulning kamchiliklari: saqlash uchun katta miqdor raqamlar juda ko'p xotira 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 RNG-lar tomonidan yaratilgan raqamlar har doim psevdo-tasodifiy (yoki kvazi-tasodifiy), ya'ni hosil qilingan har bir keyingi raqam avvalgisiga bog'liq:

r i + 1 = f(r i) .

Bunday raqamlardan tashkil topgan ketma-ketliklar halqalarni hosil qiladi, ya'ni takrorlanadigan tsikl mavjud. cheksiz son bir marta. 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 mos keladigan usul.

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 (in eng yaxshi stsenariy), Qayerda 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 usuli 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 davrga erishish mumkinligini aniqlash imkonini beradi maksimal uzunlik muayyan qiymatlar uchun 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 uchun testlar.

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) intervalga tushadigan sonlar 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 kamroq qiymat ch 2 tajriba. ), haqiqiy RNG tomonidan yaratilgan tasodifiy sonlarni taqsimlash qonuni qanchalik kuchli bo'lsa, bir xil 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 taqsimot talabi n i nazariyadan juda uzoqqa boring p i · N va tasodifiy deb hisoblanmaydi. Boshqacha qilib aytganda, u juda katta o'rnatilgan ishonch oralig'i, raqamlar bo'yicha cheklovlar juda bo'shashsa, 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: Jeneratör bir necha marta sinovdan o'tkazilishi mumkin, ammo testlar to'liq emas va generator tasodifiy raqamlarni 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. Oʻrganadi turli usullar tasodifiy sonlarni yaratish, tasodifiylikning statistik testlari va bir xil taqsimlangan tasodifiy sonlarni boshqa turlarga aylantirish tasodifiy o'zgaruvchilar. Ikki yuzdan ortiq sahifalar ushbu materialning taqdimotiga bag'ishlangan.

Ko'pgina lotereya ishtirokchilari yutuqli kombinatsiyani tanlash va lotereya chiptasini to'ldirishga vaqt sarflashni xohlamaydilar.

Ularga yordam berish uchun ko'pchilik ixtisoslashgan lotereya saytlari juda qulay "Avtomatik terish" funksiyasini taklif qiladi. Bugun biz sizga nima ekanligini va u qanday ishlashini aytib beramiz.

"Avtomatik terish"

Bu funksiya klassik tasodifiy sonlar generatoridir, birinchi lotereya saytlari va virtual kazinolar tashkil etilganidan beri ixtiro qilingan. Virtual chipta xaridorlarining 70% dan ortig'i xorijiy lotereyalar ushbu mutlaqo bepul variantni tanlang.

Bundan tashqari, siz avtomatik ravishda bir nechta tanlashingiz mumkin qozongan kombinatsiya, lekin bir nechta (50 tagacha). Bu turli stavkalar bilan ko'p miqdorda lotereya chiptalarini sotib olgan o'yinchilar uchun juda qulay.

G'alabalar statistikasi

Agar siz hali ham “Avtomatik terish” funksiyasidan foydalanasizmi yoki chiptalarni o'zingiz to'ldirishga shubhangiz bo'lsa, o'qing. Euromillions lotereyasining g'oliblarining sharhlari shuni ko'rsatadiki, chiptani to'ldirish usullaridagi farq hech qanday tarzda ishtirokchining imkoniyatlariga ta'sir qilmaydi. Lotereya statistikasi buni bizga aytib beradi, unga ko'ra umumiy soni Internet saytlarida ushbu imkoniyatdan foydalangan o'yinchilar taxminan 70% yutuq oladilar. Asossiz bo'lmaslik uchun biz 2012 yilda kompyuter yordamida pul tikgan omadli g'oliblarga misollar keltiramiz.

2012-yil mart oyida amerikalik juftlik Nyu-York lotereyasida 218 million dollarlik katta jekpot yutib oldi. Ular rivojlanmagan lotereya strategiyasi(bo'limni o'qing O'yin strategiyalari), lekin oddiygina “Avtomatik terish” funksiyasidan foydalanilgan.

G'oliblar durang qayd etish Amerika fuqarosi PowerBall lotereyalari 586 million dollarni teng taqsimlagan , tasodifiy sonlar generatori yordamida chiptalarini to‘ldirdi.

G‘olib kombinatsiya haqida o‘ylashni istamagan keksa ayol raqamlar tanlashni kompyuterga ishonib topshirib, 336 million AQSh dollarini yutib oldi.

Tasodifiy sonlar generatorining afzalliklari

Ushbu funktsiyadan foydalanishning birinchi shubhasiz afzalligi vaqtni sezilarli darajada tejashdir. Bir marta bosish bilan siz istalgan xorijiy lotereyaning bitta o'yiniga bir vaqtning o'zida bir nechta pul tikishingiz mumkin.

Ikkinchi afzallik shundaki, u g'alaba qozonish kombinatsiyasini yaratish uchun o'yinchining aqliy harakatlarini engillashtiradi. Agar siz numerologiya fanati bo'lmasangiz va raqamlarning sehriga ishonmasangiz, menga ishoning, kompyuterdan yaxshiroq Siz raqamlarning kombinatsiyasi bilan chiqolmaysiz.

"Avtomatik terish" foydasiga uchinchi fakt - bu jekpot va boshqa yirik sovrinlarni yutish uchun mutlaqo teng imkoniyatlar. lotereya chiptalari o'z qo'lingiz bilan to'ldiring.

Har kuni, hamma narsa ko'proq odamlar onlayn kazinolarga qiziqqan. Ba'zilar uchun bu o'yinlar shunchaki o'yin-kulgi, boshqalari esa ularni pul topish vositasi deb biladi. Ehtimol, o'yinchilarning har biri omadli kombinatsiyalarni ishlab chiqaradigan tasodifiy sonlar generatori qanday ishlashi bilan qiziqadi.

Slot mashinasi qurilmasi

Zamonaviy o'yin mashinalari http://igrat-avtomati-wulcan.com yutuqli kombinatsiyalarni ishlab chiqaradigan juda murakkab algoritmga ega. Uni qismlarga bo'lish mumkin: generatorlar ko'rinishidagi datchiklar, to'lovlarni qabul qiladigan va yutuqlarni beradigan hisoblagich, saqlash tizimi katta sovrinlar jackpot ko'rinishida, yutuqli mablag'larni chiqarish uchun yadro ko'rinishidagi algoritm. Ushbu Algoritmlar uyalar yoki rulet shaklida mexanik tuzilishga aylanadi.

Tasodifiy kombinatsiyalar va raqamlar sensori. (RNG)

Endi biz RNG ning o'zini ishlashini tasvirlashimiz mumkin. Bunday sensorlar o'yinni iloji boricha oldindan aytib bo'lmaydigan qilish niyatida ishlab chiqilgan. Ushbu sxema teng darajada ehtimoliy omil tufayli ishlaydi, masalan, rulet g'ildiragidagi turli teshiklarda to'pni to'xtatadi. Slotlar bilan tizim aynan bir xil ishlaydi, faqat u belgilarni to'xtatadi.

Zamonaviy o'yin uyasida ishlab chiquvchi bir nechta RNG o'rnatishi mumkin. Agar biz uchta yettilik o'yinini misol qilib olsak, individual kombinatsiyalar uchun bir nechta sensorlar bo'lishi mumkin, shuningdek alohida turlar raqamli g'ildirak yoki baraban raqamlarini to'xtatish uchun sensor.

Polka Mo''jizalari kabi o'yinlarda o'yindagi raqamlarni to'xtatish uchun sensorlar, shuningdek, har bir o'yinning vaqt oralig'ini hisoblab chiqadigan va boshqalarga o'tishni qayd qiluvchi sensorlar o'rnatilgan. o'yin maydonchalari. Bir nechta sensordan foydalanish tasodifiy g'alabalar sonini kamaytirish uchun mo'ljallangan. Bundan tashqari, Jackpotlar ko'rinishidagi yirik sovrinlar uchun odatda alohida sensorlar o'rnatiladi, ular tasodifan yutuqli kombinatsiyani ishlab chiqaradi, buni hisoblash mumkin emas.

Agar tasodifiy sonlar generatorini matematik nuqtai nazardan ko'rib chiqsak, uning ishini turli formulalar yordamida hisoblash mumkin emas. Ammo, agar siz allaqachon g'alaba qozongan vaziyatni hisobga olsangiz va bitta o'yin boshidan oxirigacha hisob-kitoblarni amalga oshirsangiz, formulani yozishingiz mumkin. Achinarlisi, jekpot chiqarilgandan keyin raqamlar ishlab chiqarishda davom etadi. yangi formula, bu faqat o'yin natijasiga ko'ra ma'lum bo'ladi.

Mashinaning egasi sensor sozlamalarini shunday sozlashi mumkinki, har bir yutuqli slot shartli ravishda har 300 yoki 500 o'yinda paydo bo'ladi, ammo egasining o'zi qancha olingan algoritmlar natijaga olib kelishini aniq bilmaydi. aniq g'alaba. Ammo sensorlarning sozlanishi haqiqatdir. Manfaatlar to'qnashuvining oldini olish uchun ular bitta emas, balki bir nechta sensorni o'rnatadilar, aks holda qimor uyining egasi doimo qora rangda qoladi va aks holda sensorni har qanday malakali odam aniqlab, kazino kassasini tozalashi mumkin edi. deyarli qonuniy tarzda.

Tasodifiy sonlar generatorining ishlash printsipi o'zining oldindan aytib bo'lmaydiganligi bilan mashhur, ammo u hech bo'lmaganda tahlil qilish uchun qulaydir, lekin yana bir nechta sensorlar bilan birgalikda hamma narsa chalkash bo'lib qoladi, bu esa kazinoni qimor o'yinlari muvaffaqiyatiga aylantiradi. nima uchun u butun dunyoda juda mashhur.

  • Tarjima

Tasavvur qiling, bu 1995 yil va siz birinchi onlayn xaridingizni amalga oshirish arafasidasiz. Siz Netscape brauzeringizni ochasiz va qahva ichasiz Bosh sahifa Sekin yuklaydi. Sizning yo'lingiz Amazon.com-da - do'stingiz sizga aytgan yangi onlayn-do'konda. Xaridni yakunlash va shaxsiy ma'lumotlarni kiritish bosqichi kelganda, brauzerdagi manzil "http" dan "https" ga o'zgaradi. Bu kompyuter Amazon serveri bilan shifrlangan aloqa o'rnatganligini bildiradi. Endi siz ma'lumotlarni serverga yuborishingiz mumkin kredit kartasi ma'lumotni ushlab qolishni xohlaydigan firibgarlardan qo'rqmasdan.

Afsuski, sizning birinchi onlayn xaridingiz boshidanoq buzilgan: siz tez orada brauzer tomonidan ulanish o'rnatish uchun qo'llaniladigan xavfsiz protokol aslida unchalik xavfsiz emasligini bilib olasiz.

Muammo shundaki, Netscape ishlatadigan maxfiy kalitlar etarlicha tasodifiy emas edi. Ularning uzunligi atigi 40 bit edi, ya'ni trillionga yaqin kombinatsiyalar mavjud. Ga o'xshaydi katta raqam, ammo xakerlar bu kodlarni hatto 1990-yillardagi kompyuterlarda ham taxminan 30 soat ichida buzishga muvaffaq bo'lishdi. Netscape maxfiy kalitni yaratish uchun ishlatgan go'yoki tasodifiy raqamga asoslangan edi uchta ma'no: kunning vaqti, jarayon identifikatori raqami va onaning jarayon identifikatori raqamini oldindan aytish mumkin. Shu sababli, tajovuzkor qo'pol kuch variantlari sonini kamaytirishga va kerakli kalitni Netscape kutganidan ancha oldinroq topishga muvaffaq bo'ldi.

Netscape dasturchilari kalitni yaratish uchun butunlay tasodifiy raqamlardan foydalanishni yaxshi ko'rar edilar, lekin ularni qanday olishni bilishmasdi. Sababi shundaki raqamli kompyuterlar har doim aniq belgilangan holatda bo'ladi, bu faqat dasturdan ma'lum bir buyruq qabul qilinganda o'zgaradi. Siz qila oladigan eng yaxshi narsa bu maxsus matematik funktsiyadan foydalangan holda psevdo-tasodifiy raqamlarni yaratish orqali tasodifiylikka taqlid qilishdir. Bunday raqamlar to'plami birinchi qarashda mutlaqo tasodifiy ko'rinadi, ammo xuddi shu protseduradan foydalanadigan boshqa birov aynan bir xil raqamlarni osongina yaratishi mumkin, shuning uchun ular odatda shifrlash uchun yomon.

Tadqiqotchilar kriptografik jihatdan xavfsiz deb topilgan psevdor tasodifiy raqamlar generatorlarini ixtiro qilishga muvaffaq bo'lishdi. Lekin ular yaxshi tasodifiy urug' bilan boshlanishi kerak, aks holda ular har doim bir xil raqamlar to'plamini yaratadilar. Va bu boshlang'ich qiymat uchun sizga taxmin qilish yoki bashorat qilishning iloji bo'lmagan narsa kerak.

Yaxshiyamki, har tomondan kompyuter bitlarining qat'iy deterministik dunyosini o'rab turgan xaotik koinotdan foydalanib, haqiqatdan ham oldindan aytib bo'lmaydigan qiymatlarni olish qiyin emas. Lekin buni aniq qanday qilish kerak?

Davomida so'nggi yillar Lavarand deb nomlangan onlayn tasodifiy sonlar manbai mavjud. U 1996 yilda dekorativ chiroq - lava chiroqining fotosuratlarini qayta ishlash orqali avtomatik ravishda tasodifiy qiymatlarni yaratish uchun yaratilgan bo'lib, u har soniyada o'z ko'rinishini oldindan aytib bo'lmaydigan tarzda o'zgartiradi. O'shandan beri ushbu manbadan olingan tasodifiy qiymatlar million martadan ko'proq ishlatilgan.

Bundan tashqari, kvant effektlarini aniqlaydigan, masalan, oynaga urilgan fotonlar kabi murakkabroq apparat tasodifiy sonlar generatorlari mavjud. kabi oldindan aytib bo'lmaydigan hodisalarni qayd qilish orqali oddiy kompyuterda tasodifiy raqamlarni olishingiz mumkin aniq vaqt klaviatura tugmalarini bosish. Ammo bunday tasodifiy qiymatlarning ko'p sonini olish uchun siz juda ko'p tugmachalarni bosishingiz kerak.

Inteldagi hamkasblarim va men oddiyroq yo‘l qilishimiz kerak, deb qaror qildik. Shuning uchun bizning ko'pgina chipsetlarimiz o'n yildan ortiq vaqt davomida analog apparat tasodifiy raqamlar generatorini o'z ichiga oladi. Muammo shundaki, uning analog sxemasi quvvatni behuda sarflaydi. Bundan tashqari, ushbu analog sxemaning funksionalligini saqlab qolish qiyin, chunki chip ishlab chiqarish jarayoni yaxshilanadi va miniatyura qilinadi. Shu sababli, biz mikroprotsessorga ushbu muammolarsiz tasodifiy qiymatlarning boy oqimini yaratishga imkon beruvchi yangi va to'liq raqamli tizimni ishlab chiqdik. Ushbu yangi raqamli tasodifiy sonlar generatori yaqinda sizga yangi protsessor bilan keladi.

Intelning birinchi urinishi Oddiy shaxsiy kompyuterlarda eng yaxshi tasodifiy sonlar generatorini yaratish 1999 yilda, Intel chipsetlar uchun Firmware Hub komponentini taqdim etganida boshlangan. Chipning tasodifiy sonlar generatori (PDF) rezistorlardan termal shovqinni sezadigan, uni kuchaytiradigan va natijada olingan signalni nisbatan sekin soat generatorining davrini o'zgartirish uchun ishlatadigan analog halqali osilator dizayni. Ushbu sekin generatorning har bir oldindan aytib bo'lmaydigan "belgisi" uchun mikrosxema ikkinchi, tez generatorning tebranish chastotasini o'rnatdi, bu uning qiymatini ikki ikkilik holat o'rtasida muntazam ravishda o'zgartiradi: 0 va 1. Natijada nol va birlarning oldindan aytib bo'lmaydigan ketma-ketligi paydo bo'ladi.

Muammo shundaki, termal signalni kuchaytirish uchun mas'ul bo'lgan halqali osilator juda ko'p quvvat sarflaydi - va u kompyuterga tasodifiy raqamlar kerakmi yoki yo'qligidan qat'i nazar, doimiy ishlaydi. bu daqiqa. Ushbu analog komponentlar, shuningdek, kompaniya chip ishlab chiqarish jarayonini o'zgartirganda, noqulaylik tug'diradi. Har bir necha yilda kompaniya kichikroq miqyosda chiplar ishlab chiqarish uchun ishlab chiqarish liniyalarini yangilaydi. Va har safar ushbu analog fragmentni kalibrlash va yangi usulda sinab ko'rish kerak - bu murakkab va mashaqqatli ish haqiqiy bosh og'rig'iga aylandi.

Shuning uchun 2008 yilda Intel butunlay raqamli asosda ishlaydigan tasodifiy sonlar generatorini yaratishga kirishdi. Hillsboro (Oregon shtati, AQSH)dagi kompaniya tadqiqotchilari Bangalordagi (Hindiston) Dizayn laboratoriyasi muhandislari bilan birgalikda asosiy muammoni – analog sxemalardan foydalanmasdan bitlarning tasodifiy oqimini qanday olish mumkinligini o‘rganishga kirishdilar.

Ajablanarlisi shundaki, ularning taklif qilingan yechimi raqamli dizaynning asosiy qoidasini buzadi, bu sxema har doim ma'lum bir holatda bo'lishi va mantiqiy 0 yoki 1 ni qaytarishi kerak. Albatta, raqamli element qisqa vaqtni noaniq holatda o'tkazishi mumkin, kommutatsiya bu ikki qiymat o'rtasida. Biroq, u juda aniq ishlashi kerak va ular o'rtasida hech qachon tebranmasligi kerak, aks holda bu tizimda kechikishlar yoki hatto muvaffaqiyatsizlikka olib keladi. Bizning tasodifiy bit generatorimizda tebranishlar xato emas, balki xususiyatdir.

Bizning oldingi analog generatorimiz soniyada bir necha yuz kilobit tasodifiy sonlarni ishlab chiqarishga qodir edi, yangisi esa ularni taxminan 3 Gb / s tezlikda ishlab chiqaradi. U 512 bitli bloklarda ikkita invertorning deyarli tasodifiy qiymatlarini yig'ishdan boshlanadi. Ushbu bloklar keyinchalik 256 bitli raqamlar juftlariga bo'linadi. Albatta, agar asl 512 bit butunlay tasodifiy bo'lmasa, bu 256 bitli raqamlar ham butunlay tasodifiy bo'lmaydi. Ammo ular matematik jihatdan idealga yaqin bo'lgan 256 bitli raqamni ishlab chiqarish uchun birlashtirilishi mumkin.


RAQAMLARNING UCHTA DARAJASI: Intel Bull Mountain Tasodifiy Raqamlar Generatori uch bosqichli jarayon orqali oldindan aytish mumkin bo'lgan har qanday o'zgarishlarning oldini oladi. Birinchidan, raqamli sxema tasodifiy bitlar oqimini hosil qiladi. Keyin "normalizator" (konditsioner) bu oqim asosida yaxshi tasodifiy urug'larni hosil qiladi. Uchinchi bosqichda psevdor tasodifiy raqamlar generatori dasturiy ta'minotda foydalanish uchun raqamlar oqimini ishlab chiqaradi.

Bularning barchasi oddiy misol bilan yaxshiroq tasvirlangan. Tasodifiy bit generatori 8 bitli naqshlarni, ya'ni 0 dan 255 gacha bo'lgan raqamlarni ishlab chiqaradi, deb taxmin qiling. Shuningdek, bu 8 bitli raqamlar butunlay tasodifiy emas deb taxmin qiling. Endi tasavvur qiling-a, masalan, kontaktlarning zanglashiga olib keladigan biron bir nozik nuqson chiqish qiymatlarini diapazonning pastki qismiga o'tkazadi. Bir qarashda, tasodifiy sonlar oqimi yaxshi ko'rinadi, lekin agar siz millionlab qiymatlarni qayta ishlasangiz, diapazonning yuqori qismidagi raqamlar pastdagi raqamlarga qaraganda bir oz kamroq tarqalganligini sezasiz.

Ushbu muammoning mumkin bo'lgan echimlaridan biri oddiy: har doim bir juft 8 bitli raqamlarni oling, ularni ko'paytiring va natijada paydo bo'lgan 16 bitli raqamning yuqori sakkiz bitini tashlang. Ushbu protsedura buzilishlarni deyarli butunlay yo'q qiladi.

Bull Mountain 8 bitli raqamlar bilan ishlamaydi: u allaqachon aytib o'tilganidek, 256 bitli raqamlar bilan ishlaydi. Va u ularni ko'paytirmaydi, balki yanada murakkab kriptografik operatsiyalarni bajaradi. Ammo asosiy fikr bir xil. Ikki inverterli kontaktlarning zanglashiga olib kelishi mumkin bo'lgan raqamlarning tasodifiy taqsimlanishidan har qanday og'ishlarni bartaraf etish uchun ushbu bosqichni "normalizatsiya" deb o'ylashingiz mumkin.

Biz haqiqatan ham kechasi yaxshi uxlashni xohlaymiz, shuning uchun biz "normalizator" ga kiradigan 256 bitli raqamlar oqimini bir yo'nalishda juda egri bo'lmasligi uchun sinovdan o'tkazadigan qo'shimcha sxemani ishlab chiqdik. Agar bu aniqlansa, biz uni nuqsonli va standartga mos emas deb belgilaymiz. Shunday qilib, operatsiyalar faqat yuqori sifatli raqamlar juftlari bilan amalga oshiriladi.

Tasodifiy qiymatlar standartlarga javob beradigan darajada tez ishlab chiqarilmasa, kafolatlangan tasodifiylik etarli emas. Garchi apparat sxemasi oqimni avvalgilariga qaraganda ancha tezroq hosil qilsa ham, ba'zilar uchun bu hali ham etarli emas zamonaviy vazifalar. Shunday qilib, Bull Mountain dasturiy ta'minot psevdo-tasodifiy raqamlar generatorlari oqim hosil qilganidek, tasodifiy sonlarni tezda ishlab chiqarishi mumkin, lekin ayni paytda tejaydi. yuqori sifatli tasodifiy raqamlar, biz sxemaga yana bir daraja qo'shdik. Bu erda 256 bitli tasodifiy raqamlar kriptografik xavfsiz tasodifiy urug'lar sifatida ko'p sonli psevdo-tasodifiy 128 bitli raqamlarni yaratish uchun ishlatiladi. 256-bitli raqamlar 3 gigagertsli chastotada etkazib berilganligi sababli, kriptografik kalitlarni tezda yaratish uchun etarli materiallar kafolatlangan.

RdRand deb nomlangan yangi ko'rsatma tasodifiy raqamlarga muhtoj bo'lgan dasturga ularni ishlab chiqaruvchi apparatga so'rov yuborish imkonini beradi. 64-bitli Intel protsessorlari uchun mo'ljallangan RdRand yo'riqnomasi Bull Mountain generatorining kalitidir. U 16, 32 yoki 64 bitli tasodifiy qiymatlarni ajratib oladi va ularni dasturga kirish mumkin bo'lgan registrga joylashtiradi. RdRand yo'riqnomasi taxminan bir yil oldin ommaga taqdim etilgan va uni qo'llab-quvvatlaydigan birinchi Intel protsessori Ivy Bridge bo'ladi. Yangi chipset avvalgisidan 37 foizga tezroq, uning minimal elementlari hajmi esa 32 dan 22 nanometrgacha qisqartirildi. Umumiy unumdorlikni oshirish tasodifiy sonlar generatorimiz ehtiyojlariga mos keladi.

Garchi lava lampalari ajoyib ko'ring, ular har bir interyerga mos kelmaydi. Bizning tasodifiy sonlarni yaratishga bo'lgan yondashuvimiz, aksincha, eng universal dasturni topadi deb o'ylaymiz.

Yuqorida aytib o'tilganidek, tugmachalarni bosishning aniq vaqtini qayd etish o'tmishda generatorlar uchun tasodifiy boshlang'ich qiymatlarning qulay manbai sifatida ishlatilgan. Xuddi shu maqsadlar uchun biz sichqonchaning harakatini va hatto qattiq diskdagi sektorlarni qidirish tezligidan foydalandik. Ammo bunday hodisalar har doim ham sizga etarli tasodifiy bitlarni bermaydi va ma'lum vaqt o'lchovidan so'ng, bu bitlar oldindan aytib bo'ladi. Bundan ham yomoni, chunki biz hozir serverlar dunyosida yashayapmiz