Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
概率与随机
Search
shhhz
October 11, 2022
Technology
0
37
概率与随机
生活中充满了概率与随机,分享通过一些故事和例子介绍了秘书问题、蓄水池抽样算法、洗牌算法、猴子排序、遗传算法、卡方检测。
shhhz
October 11, 2022
Tweet
Share
More Decks by shhhz
See All by shhhz
游戏中的奥秘
shhhz
0
41
Seam Carving 算法
shhhz
0
220
正则表达式
shhhz
0
29
Other Decks in Technology
See All in Technology
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
360
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
140
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
200
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
380
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
1
370
型チェック 速度改善 奮闘記⌛
tocomi
1
260
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
150
A Tour of Anti-patterns for Functional Programming
guvalif
0
1.5k
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
500
CysharpのOSS群から見るModern C#の現在地
neuecc
2
4k
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
0
120
Featured
See All Featured
Faster Mobile Websites
deanohume
305
30k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Designing the Hi-DPI Web
ddemaree
280
34k
Why Our Code Smells
bkeepers
PRO
334
57k
Building Applications with DynamoDB
mza
90
6.1k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Adopting Sorbet at Scale
ufuk
73
9.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Cult of Friendly URLs
andyhume
78
6k
Transcript
概率与随机 @Rick
游戏中的赚钱奥秘
None
2%到底意味着什么?
• 假设我只准备了 40 抽的钱,我有多⼤把握能抽到? • 我想知道⾄少 80%的把握能抽到,我需要抽多少次? • 对于x%的抽奖概率,80% 把握能抽到的次数是什么分布?
1 − 1 − 𝑥 ! ≥ 0.8 𝑛 ≥ 𝑙𝑜𝑔"#$ 0.2 x n 1% 161 2% 80 0.8% 201
柏拉图拾麦穗
ᆃࣼ൞ι౦b 柏拉图空手而归 ၹູࠧु֞ޓն֥đ Ⴛሹஃభ૫Ⴕ۷ն֥b ູહહ္ીᅋĤ ᅋ۱ቋն֥ચđᆺ ॖཟభሼđᆺିᅋ၂Ցb હ൞ι౦Ĥ
ᆃࣼ൞߾ၽb 柏拉图砍了一颗普通的树 ႵਔഈՑ֥࢝đु֞ ҵ҂؟֥ࣼीਔb ູહᆃહ௴๙Ĥ ी॒ቋն֥ඎđܿ ᄵބഈՑ၂ဢb હ൞߾ၽĤ
秘书问题(Secretary Problem) • 从给定数量的 N 个候选⼈中雇⽤最好的秘书。 • 在⾯试结束后,必须⽴即做出录取或淘汰的决定。 • ⾯试结束前没有⼈被录取,那么就选择最后⼀名候选⼈。
P(选第 i 个且第 i 个是最好的) = " %
秘书问题(Secretary Problem) 录取比淘汰里都好的一个 R N 对于总人数 N,首先淘汰 R 个,录取从 R
+ 1 开始比 1~R 里都好的那个人。
秘书问题(Secretary Problem) 取 N = 3 • 若 R =
0,等同于直接录取第⼀个,P = " & • 若 R = 2,等同于直接录取第三个,P = " & • 若 R = 1 # 1 2 3 录取结果 1 差 中 优 失败 2 差 优 中 成功 3 中 差 优 成功 4 中 优 差 成功 5 优 差 中 失败 6 优 中 差 失败 P = - .
𝑃 𝑅 = ∑!"#$% & 𝑃(选 𝑛𝑡ℎ 且 n𝑡ℎ 是最好的)
= ∑!"#$% & 𝑃 𝑛𝑡ℎ 是最好的 𝑃(第 2 好的在前 𝑅 中) = ∑!"#$% & % & # !'% = # & ∑!"#$% & % !'% = R * ∫ # % % ( 𝑑𝑡 秘书问题(Secretary Problem) -xlog(𝑥)
秘书问题(Secretary Problem)
秘书问题(Secretary Problem) 当 R = " ' 𝑁 时,P(R*) 最大,趋近于
" ' ≈ 0.37 - 0 定律
质检员张全蛋
富⼟康 3 号流⽔线 • 需要抽取 k 台手机检查,在流水线停止前不知道总数 • 只遍历一遍流水线的情况下,如何决定抽取哪些?
蓄⽔池抽样算法 k 大小蓄水池 • 当样本数小于 k 时,直接放入蓄水池 • 从 k+1
开始,第 m 个样本以 ( ) 的概率放入蓄水池,否则丢弃 放入蓄水池时,从蓄水池样本中随机挑取一个替换掉(各 " ( 概率) ) * % ) ) + 4 5 1 2 3
P(保留5th) = & * P(保留4th) = P(保留 4th AND 没有被
5th 替换) = P(保留 4th) * P(没有被 5th 替换) = & + * P(没有保留 5th OR 保留了 5th 但是没有替换 4th) = & + * (, * + & * ∗ , & ) = & * P(保留3rd) = P(保留 3rd AND 没有被 4th 替换 AND 没有被 5th替换) = 1 * (" + + & + ∗ , & ) ∗ (, * + & * ∗ , & ) = & + * + * = & * = 1 * P(没留 4th OR 留 4th 但没替 3rd) * P(没留 5th OR 留 5th 但没替 3rd) ) * % ) ) + 4 5 1 2 3 P(保留2nd) = P(保留1st) = P(保留3rd) = & *
P(保留ith | i > k) = P(保留 ith AND 没有被
i+1th ~ nth替换) = ( - * ∏).-/" ! )#" ) = ( - * ( - -/" * -/" -/, * … * !#" ! ) = ( - ∗ - ! = ( ! = ( - * ∏).-/" ! ()#( ) + ( ) ∗ (#" ( ) P(保留ith | i <= k) = P(没有被 i+1th ~ nth替换) = ∏).(/" ! )#" ) = ( (/" * (/" (/, * … * !#" ! = 𝑘 𝑛 = ∏).(/" ! ()#( ) + ( ) ∗ (#" ( ) , - % , i 1 .. k = ( - * (-/"#( -/" + ( -/" ∗ (#" ( ) * (-/,#( -/, + ( -/, ∗ (#" ( ) * … * (!#( ! + ( ! ∗ (#" ( )
蓄⽔池抽样算法
羊了个羊
None
洗牌算法(Shuffle) 公平的洗牌算法怎么才算公平? • ⻓度为 n 的数组,⼀共有 n! 种排列⽅式 • 等概率返回其中⼀种,是⼀种公平的洗牌算法
• O(n!) • 重复 k 次交换随机的两个元素 • k 取多少算公平?
Knuth 洗牌算法
猴子排序
在计算机科学中,Bogo 排序(bogo-sort)是个⾮常低效率的排序算法,通常⽤在教学或测试。其原理等同将 ⼀堆卡⽚抛起,落在桌上后检查卡⽚是否已整⻬排列好,若⾮就再抛⼀次。其名字源⾃ Quantum bogodynamics,⼜称 bozo sort、blort sort 或猴⼦排序(参⻅⽆限猴⼦定理)。
扫地机器人罗比
扫地机器⼈罗⽐ • 罗比只能看到上下左右和当前位置的情况。 • 每次清理执行 200 次动作,动作可以是:向上走, 向下走,向左走,向右走,随机一个方向走、 捡罐头、不动。 •
每一个动作执行完以后都会有一个评分: 如果捡罐头时格子有罐头,那么罐头被捡起,加 10 分; 如果捡罐头的时候格子中没有罐头,扣 1 分; 如果罗比撞到了墙,扣 5 分。 • 什么样的策略能获得更多的分?
扫地机器⼈罗⽐ • 状态总数 一共有 3 * 3 * 3 *
3 * 3 = 243 种状态。 • 策略总数 7.*)
扫地机器⼈罗⽐ 1524550212564440633551413624533512004514551231516041623242660040402560600520043164 0145620344333422514115645105023510625635424506314301134042262604435644440030055563 1325215155436144345164455440161256251412661563442063025020602255536510141514365 生成一种策略
遗传算法 1. 初始化种群:随机生成 200 个个体 2. 计算适应度:对 200 个个体进行评分,评分的规则是让罗比打扫 1000
次世界,每次打扫世界都是随机生成的, 且每次打扫罗比移动 200 步,最后算出这 1000 次打扫的平均分。 3. 杂交:根据所有个体的得分,随机选取两个个体进行杂交,得分越高的个体越容易被选中。杂交会生成两个子 代,将子代放入新种群。重复这个过程,直到新种群的个数达到 200 个。 4. 突变:子代的一个或多个基因会有一定的概率发生突变,发生突变的基因会随机变为其他的动作,比如从 1 变 为 6。 5. 迭代:重复以上的过程,直到达到 1000 代。
遗传算法 15245502125644406335514136245335120045145 40402560600520043164014562034433342251411 15245502125644406335014562034433342251411 40402560600520043164514136245335120045145 40402560600520043164514136345335120045145
遗传算法
AB Test
系统设计
分组逻辑
Ken: Math.random() 是随机的吗?你怎么证明?
卡⽅检验(Chi-Square Test) 🎲 1 2 3 4 5 6 实际值
12 18 16 13 20 21 期望值 16.6 16.6 16.6 16.6 16.6 16.6 V = 4.04
Thanks!