秋招准备-算法题-概率类

96
曹真
2018.09.10 01:11 字数 186

rand 5 生成rand 7

随机数生成器
现有一个rand5的随机数,欲生成一个rand8的随机数,应如何操作?

代码

def rand7():
    while True:
        i = 5(rand(5) - 1) - (rand(5) - 1)
        if i < 21:
            return i % 7 + 1  

抛硬币分苹果

现有一枚硬币,正面向上概率为p,反面向上为1-p,现有一个苹果,三个人甲乙丙分,只有一个人得到,你要如何利用抛硬币制定公平的策略决定谁能分到苹果?

我们可以抛三次硬币,出现以下结果的分别为甲乙丙得苹果,如果出现其余结果则重新抛,可知每个人获得苹果的概率均为 p * p * (1-p)

正正反 正反正 反正正

代码练习
Web note ad 1