如何在Ruby中编写不公平或有偏见的硬币翻转?

San*_*ago 0 ruby probability coin-flipping

我需要做一个符合某种结果概率的硬币翻转.例如,一个硬币翻转,有67%的机会出现Heads,有83%的机会出现Tails等.

我设法得到我之后的结果,用100填充数组truefalse在等效分布中,然后随机选择一个项目.什么是更优雅的方式呢?

Ama*_*dan 5

rand < 0.67
rand < 0.83
Run Code Online (Sandbox Code Playgroud)

将给true与的分别为67%和83%,概率-因为均匀选择的随机数x0 <= x < 1(例如,通过返回Kernel#rand)将有可能在段降落67% 0 <= x < 0.67.

  • @ sagarpandya82:我不是处理头或尾,只是处理概率.如果你想要特定的代码,我猜它会是`rand <0.67?:heads :: tails`和`rand <0.83?:tails :: head` ...显然也可以用其他方式编写. (2认同)