Yopiq tangani halol bilan taqlid qilish

Yopiq tangani halol bilan taqlid qilish

Deylik, siz sodir bo'ladigan hodisani simulyatsiya qilishingiz kerak va sizda bor -yo'g'i tanga. Xo'sh, bu etarli darajada oson. Tangani ikki marta aylantiring. Qayta ...
08.09.2021

Aytaylik, siz sodir bo'layotgan voqeani simulyatsiya qilishingiz kerak \ (p = 1/4 \) va sizda bor -yo'g'i adolatli tanga. Xo'sh, bu etarli darajada oson. Tangani ikki marta aylantiring. Agar 2 boshli bo'lsangiz, muvaffaqiyat haqida xabar bering, aks holda muvaffaqiyatsizlik haqida xabar bering.

Buning o'rniga \ (p = 1/3 \) deylik. Bu 2 kuch bo'lishi mumkin emas, lekin hali ham oddiy echim bor. Yarmarka tangani ikki marta aylantiring. HHda muvaffaqiyat haqida xabar bering, HT yoki THda xato haqida xabar bering va TTda qayta urinib ko'ring. Har bir iteratsiya \ (2 \) tangani aylantiradi va \ (3/4 \) to'xtash ehtimoli bor, \ (8/3 \) kutilgan tanga aylanishi.

Endi, \ (p = 1/10^ \) ni simulyatsiya qilish kerak deb faraz qilaylik. Xo'sh, hozirgi sxemada hech narsa yomon emas. Etarli natijaga erishish uchun bizga \ (\ lceil \ log_2 (10^) \ rceil = 333 \) tanga aylanishi kerak. Keyin \ (1 \) holatini muvaffaqiyat deb belgilang, \ (10^ - 1 \) muvaffaqiyatsiz deb, qolganlari qayta urinishda. Ish vaqtini tahlil qilish uchun bu raqamlar chalkashib keta boshlaydi, lekin biz hech bo'lmaganda aylanishni kutilgan sonini to'play olamiz. To'xtatish ehtimoli \ (>1/2 \), chunki qurilish bo'yicha \ (2^ \), ya'ni qayta urinishlar soni yarmidan kam barcha holatlar. Shunday qilib, kutilgan burilish soni eng ko'p \ (666 \). Ha, bu…

shaytoniy chegara, lekin bundan ham yomonroq bo'lishi mumkin.

Agar \ (p = 1/10^>\) ni simulyatsiya qilish kerak bo'lsa -chi? Yoki simulyatsiya qilish \ (p = 1/\ pi \)? Birinchi holda, kerakli burilishlar soni juda katta. Ikkinchisida, sxema butunlay muvaffaqiyatsizlikka uchraydi - irratsional ehtimolliklarni simulyatsiya qilishning iloji yo'q.

Oson optimallashtirish

Biz keyinroq mantiqsiz holatga qaytamiz.

Biz qanday simulyatsiya qilganimizni eslang \ (p = 1/4 \). Sxema faqat HHda muvaffaqiyat haqida xabar beradi. Shunday qilib, agar birinchi burilish dumlari tushsa, biz darhol to'xtashimiz mumkin, chunki ikkinchi tanga qanday tushsa ham, biz baribir muvaffaqiyatsizlik haqida xabar beramiz. Qayta ko'rib chiqilgan algoritm

  • Tangani aylantiring. Agar dumlar bo'lsa, muvaffaqiyatsizlik haqida xabar bering.
  • Tangani aylantiring. Boshdagi muvaffaqiyat va quyruqdagi muvaffaqiyatsizlik haqida xabar bering.

Bu \ (2 \) burilish o'rniga \ (3/2 \) kutilgan burilishlarni beradi.

Boshqa misol sifatida \ (p = 1/5 \) ni ko'rib chiqing. Birinchidan, 3 tangani aylantirishni rejalashtiring. 8 ta natijani 1 ta muvaffaqiyatga, 4 ta muvaffaqiyatsizlikka va 3 ta qayta urinish holatiga bo'ling. Bular quyidagicha taqsimlanishi mumkin

  • qabul qiling: HHH
  • muvaffaqiyatsiz: THH, THT, TTH, TTT
  • qayta urinish: HHT, HTH, HTT

Agar birinchi tanga T bo'lsa, biz darhol to'xtata olamiz. Agar dastlabki ikkita tanga HT bo'lsa, biz darhol qayta urinishimiz mumkin. Qolgan yagona holat - bu HH, biz nima qilishimizni hal qilishdan oldin uchinchi burilishni ko'rishimiz kerak.

(Sizlardan ba'zilaringiz prefikssiz kodlarga qaytishi mumkin. Agar siz ularni ko'rmagan bo'lsangiz, xavotir olmang, ular bu postda ko'rinmaydi.)

Aqlli tartibda biz ma'lum turdagi natijalarni iloji boricha noyob prefikslar ostida to'plashimiz mumkin. Bu ratsional \ (p \) uchun ba'zi yaxshilanishlarni beradi, lekin baribir bizga irratsional \ (p \) simulyatsiyasiga yo'l qo'ymaydi. Buning uchun biz yangi ramkaga o'tishimiz kerak.

Yangi paradigma

Men bu usulni o'ylab topmaganman - men uni shu erdan kashf qildim. Koshki men buni aniqlab beradigan sabablarga ko'ra o'ylab topgan bo'lsam edi.

\ (P = 0.b_1b_2b_3b_4b_5 \ ldots \) ​​\ (p \) ning ikkilik kengayishi bo'lsin. Quyidagi tarzda davom eting.

  • Boshga tushguncha tanga aylantiring.
  • \ (N \) aylantirilgan tangalar soni bo'lsin. Agar \ (b_n = 1 \) bo'lsa, muvaffaqiyat haqida xabar bering, aks holda xato haqida xabar bering

\ (N \) burilishdan keyin jarayonning to'xtash ehtimoli \ (1/2^n \), shuning uchun muvaffaqiyat ehtimoli

\ (P \) nima bo'lishidan qat'i nazar, tanga boshiga tushishi uchun \ (2 \) kutish kerak. Shunday qilib, har qanday tangani \ (2 \) kutilgan burilishlarda simulyatsiya qilish mumkin. Bu boshqa sxemani yengib chiqadi, faqat \ (p \) o'rniga hamma \ (p \) uchun ishlaydi va eng yaxshisi, siz bitlarni \ (b_i \) dangasalik bilan hisoblashingiz mumkin, bu esa uni nafaqat hayotda, balki real hayotda ham amalga oshiradi. nazariya

Shirin, to'g'rimi? Bu fikr sizga aniq bo'lishi mumkin edi, lekin bu men uchun emas edi. Muammo haqida ko'proq o'ylab, men oxir -oqibat xuddi shunday natijaga erishish uchun potentsial fikrlash zanjirini qayta yaratdim.

Bit va bo'laklar

(Hozirdan boshlab, men \ (1 \) ni bosh bilan, \ (0 \) o'rnini dum bilan almashtiraman.)

Quyidagi algoritmni ko'rib chiqing.

  • \ ([0,1] \) da haqiqiy sonni cheksiz ko'p tangalarni aylantirib, tasodifiy sonni \ (0.b_1b_2b_3 \ ldots \) ​​hosil qilib, \ (b_i \) - tanga aylantirish natijasi \ ( men \). Bu raqam \ (x \) bo'lsin.
  • Agar \ (x \ le p \) bo'lsa, muvaffaqiyat haqida xabar bering, aks holda muvaffaqiyatsizlik.

Agar hosil qilingan o'nlik kasrlar \ ([0, 1] \) bo'yicha bir xil taqsimotga amal qilsa, bu algoritm to'g'ri bo'ladi. Men buni isbotlamayman, lekin sezgi uchun murojaat qilish uchun: \ (k \) uzunlikdagi ikkita bitli chiziqlar bir xil \ (1/2^k \) ehtimollik bilan hosil qilinadi va bu raqamlar teng taqsimlanadi. \ ([0, 1] \) oralig'i. \ (K \ to \ infty \) sifatida bu bir xil taqsimotga yaqinlashadi.

Bularning barchasi oqilona deb hisoblasak, algoritm ishlaydi! Faqat juda ko'p tangalarni aylantirishning kichik muammosi bor. Biroq, \ (p = 1/4 \) misolida bo'lgani kabi, biz ham \ ([0, p] \) tushib ketishi kafolatlangan zahoti tanga siljishini to'xtata olamiz.

Bu qachon yuz beradi? Hozircha \ (p \) cheksiz ikkilik kengayishga ega bo'lgan holat bilan chegaralaning. Misol uchun \ (p = 0.1010101 \ ldots \) ​​deylik. Birinchi aylantirish uchun 2 ta holat mavjud.

Tanga tushdi \ (1 \). \ (0.1 \) dan boshlab, keyingi burilish qanday ketishiga qarab, \ ([0, p] \) ichida yoki tashqarisida yiqilish mumkin. Algoritm davom etishi kerak.

Tanga tushadi \ (0 \). \ (0.0 \) dan boshlab \ ([0, p] \) dan tashqariga chiqish mumkin emas. Har bir tanga \ (1 \), \ (0.0111 \ ldots_2 = 0.1_2

Shunday qilib, algoritm tangalar \ (p \) kengayishidagi \ (1 \) ga mos kelmasa, to'xtaydi. Agar u mos kelmasa, u muvaffaqiyatli bo'ladi. Keyin nima bo'lishini o'ylab ko'ring. \ (0.1 \) dan boshlab, 2 ta holat mavjud.

  1. Keyingi tanga tushadi \ (1 \). \ (0.11>p \) dan boshlab, biz darhol xato haqida xabar berishimiz mumkin.
  2. Keyingi tanga tushadi \ (0 \). Oldiniga o'xshab, raqam \ ([0, p] \) bilan tugashi yoki tugamasligi mumkin, shuning uchun algoritm davom etishi kerak.

Shunday qilib, agar algoritm tangalar \ (p \) kengayishidagi \ (0 \) ga mos kelmasa, to'xtaydi. Agar u mos kelmasa, u muvaffaqiyatsiz bo'ladi. Bu quyidagi algoritmni beradi.

  • \ (N \) tangalar \ (b_n \) mos kelmaguncha tanga aylantiring.
  • Agar \ (b_n = 1 \) bo'lsa, muvaffaqiyat haqida xabar bering, aks holda muvaffaqiyatsizlik.

E'tibor bering, bu yuqorida aytib o'tilgan algoritm. Bitta farq - bu tugatish sharti. Boshni to'xtatish o'rniga, tasodifiy bit "haqiqiy" bitga mos kelmasa, algoritm to'xtaydi. Ikkalasi ham \ (1/2 \) vaqtga to'g'ri keladi, shuning uchun ikkala algoritm tengdir.

(Agar xohlasangiz, bu mulohazani \ (p \) sonli ikkilik kengaytmalar bilan uzaytira olasiz. Faqat \ (1 \) sonini \ (0.1_2 = 0.0111 \ ldots_2 \) ga kengaytirib, cheksiz kengaytiring.)

Mana, rasmda ko'rsatilgan algoritm namunasi. Yashil mintaqa \ (x \) ning mumkin bo'lgan qiymatlarini ifodalaydi. Dastlab har qanday \ (x \) mumkin.

Birinchi yaratilgan bit \ (0 \) bo'lib, tegishli hududni kamaytiradi

Bu hali ham \ ([0, p] \) bilan bir -biriga to'g'ri keladi, shuning uchun davom eting. Ikkinchi bit - \ (1 \), berish

Bu hali ham bir -biriga zid, shuning uchun davom eting. Uchinchi bit - \ (1 \), berish

\ (X \) uchun mumkin bo'lgan mintaqa endi \ ([0, p] \) bilan kesishmaydi, shuning uchun algoritm xato haqida xabar beradi.

CS-fikrli odamlar ikkilik qidiruvga o'xshashliklarni ko'rishlari mumkin. Har bir bit biz mumkin bo'lgan mintaqaning qaysi yarmiga ko'chib o'tishni tanlaydi va ikkiga bo'linish \ ([0, p] \) yoki \ ([0, p] \) dan bo'linmaguncha davom etadi.

Optimallikni isbotlash

Ushbu sxema juda samarali. Ammo, bu biz qila oladigan eng yaxshimi? Umumiy \ (p \) uchun \ (2 \) kutilganidan yaxshiroq ishlaydigan algoritm bormi?

Ma'lum bo'lishicha, \ (2 \) kutilgan burilishlar optimal hisoblanadi. Ajablanarlisi shundaki, dalillar unchalik yomon emas.

Berilgan \ (p \) uchun har qanday algoritm hisoblash daraxti bilan ifodalanishi mumkin. Bu daraxt algoritm muvaffaqiyatli bo'ladimi, muvaffaqiyatsiz bo'ladimi yoki davom etadimi, keyingi bit va ilgari yaratilgan bitlarga asoslangan holda kodlaydi.

\ (P = 3/4 \) uchun ikkita namunali hisoblash daraxti.

Ildiz darajasi \ (0 \), ildiz bolalari \ (1 \) darajali va shunga o'xshash , tugunning og'irligi \ (1/2^ >\). Xuddi shunday, og'irlik - bu algoritmning ushbu tugunga etib borish ehtimoli.

Berilgan algoritm va \ (p \) uchun, kutilgan burilishlar soni - algoritmning hisoblash daraxtida o'tiladigan qirralarning kutilgan soni. Muayyan yugurishda, o'tilgan qirralarning soni - bu ildizga e'tibor bermay, tashrif buyurilgan tepaliklar soni. Kutishning chiziqliligi bo'yicha,

To'g'ri bo'lish uchun algoritm muvaffaqiyat tugunida \ (p \) ehtimoli bilan tugashi kerak. Shunday qilib, muvaffaqiyat tugunlari uchun og'irliklar yig'indisi \ (p \) bo'lishi kerak. Ikki tomonlama cheksiz uzunlikdagi \ (p \) uchun biz cheksiz chuqur hisoblash daraxtiga ega bo'lishimiz kerak. Agar daraxt \ (d \) cheklangan chuqurlikka ega bo'lsa, har qanday barg tugunining og'irligi \ (2^ \) ga ko'payadi va muvaffaqiyat tugunlari og'irliklari yig'indisi eng ko'p \ (d \) kasrli bo'ladi .

Shunday qilib, hisoblash daraxti cheksiz chuqur bo'lishi kerak. Cheksiz chuqurlik uchun daraxtning har bir sathida (ildizdan tashqari) kamida 2 ta tugun bo'lishi kerak. Shunday qilib, kutilgan burilishlar sonining pastki chegarasi

\ [E [burilish] \ ge \ sum_ ^\ infty 2 \ cdot \ frac = 2 \]

va biz yuqorida ko'rsatganimizdek, bu pastki chegaraga erishish mumkin. \ (\ qora maydon \)

(Cheklangan ikkilik kengaytmalar bilan \ (2 \) kutilgan burilishlardan yaxshiroq bajarishingiz mumkin. Buning uchun optimal chegarani isbotlash mashq sifatida qoldiriladi.)

Yakunida…

Sizning hamyoningizdagi har bir tanga-bu o'zboshimchalik bilan bit ishlab chiqaruvchi mashina bo'lib, u eng maqbul samaradorlikda ishlaydi. Agar siz ko'prik trolliga duch kelsangiz, u sizni bir vaqtning o'zida \ (1/\ pi \) ga tushadigan tanganing bir nechta burilishini taqlid qilishni talab qiladi, siz tayyor bo'lasiz. Agar qilmasangiz, hech bo'lmaganda yana bir qiziq narsani bilasiz.

Onlayn kazino
O'yin -kulgi avtomatlari
Onlaynkazino

Bizning yangiliklarimizga obuna bo'lish orqali birinchi eksklyuziv taklifni oling va eng yaxshi onlayn kazinolarda har kungi ajoyib chegirmalarimizdan foydalaning!