赌徒的谬误是一种认知偏见,我们错误地期望将来发生的事情不太可能在将来发生,而一段时间内未发生的事情在不久之后更可能发生。您的任务是实现特定版本。
挑战说明
编写一个函数,返回一个介于1到6之间(含1和6)的随机整数。问题是:第一次运行该函数时,结果应该是统一的(在1%以内),但是,每个后续调用都将偏向于那些以前滚动次数较少的值。具体细节如下:
- 骰子记得到目前为止生成的数字计数。
- 每个结果加权以下公式:
- 例如,如果卷数到目前为止是,权重将是,也就是说,你将4倍的可能性滚比。
- 请注意,该公式表示的滚动结果的权重与
规则与假设
- 适用标准I / O规则和禁止的漏洞
- 模切辊不应确定。(即,使用从易失性源中植入的PRNG,通常作为内置源使用。)
- 您的随机来源的周期必须至少为65535,或者是真正的随机性。
- 重量不得超过255,分配范围必须在1%以内
- 16位RNG足以满足以上两个要求。大多数内置的RNG足够了。
- 您可以传递当前分布,只要该分布被调用突变或后卷分布在冲模卷旁边返回即可。更新分配/计数是此挑战的一部分。
- 您可以使用权重而不是计数。这样做时,每当权重降至0时,所有权重都应增加1,以达到与存储计数相同的效果。
- 您可以将这些权重用作数组中元素的重复。
祝好运。愿字节永远对您有利。