我不熟悉Python的朋友想要创建一个函数,该函数返回在滚动n次m次时至少获得六个面的概率。
而不是无聊的P = 1-(5./6)**n
,我决定把他作为一个恶作剧吓唬他:
import random
throw_dice = lambda n, m: round(sum(any(random.randint(1,6) == 6 for die in range(n)) for trial in range(m))/m,5)
我是否可以通过将import random
组合到lambda表达式中来进一步压缩它,以便我最终只得到一行代码?
答案 0 :(得分:0)
如果你只想要一行代码,你可以像这样使用分号:
import random; throw_dice = lambda n, m: round(sum(any(random.randint(1,6) == 6 for die in range(n)) for trial in range(m))/m,5)