【发布时间】:2016-09-20 04:25:34
【问题描述】:
目标是掷一枚加权硬币,使其有 N% 的时间返回正面。
我并不完全被难住了。我可以这样做:
probability = 0.75 # chance of getting heads as decimal
num_heads_cases = (100.to_f * probability).to_i
cases = num_heads_cases.times.map { :heads }.concat(
(100 - num_heads_cases).times.map { :tails }
)
is_flip_result_heads = cases.sample == :heads
但我在这里发帖是为了看看是否有一些我忽略的核心 ruby / rails 方法。我正在寻找类似于以下方法签名的东西:
def random_bool(probability_of_returning_true=0.5)
这类似于它被标记为重复但不是重复的问题;该问题询问如何获得随机数,而这个问题询问如何获得具有概率的随机布尔值。
如何从“随机数”变为“随机布尔值”似乎很明显,但显然不是每个人都这样。
【问题讨论】:
标签: ruby