作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
使用一对六面骰子在 [1, 4] 中不均匀地生成随机数的最有效方法是什么:它应该在 40% 的时间内生成 1,在 30% 的时间内生成 2,在 20% 的时间内生成 3 , 10% 中有 4 个。
请证明方法的正确性并给出算法。
骰子可以有不同的颜色。
注意:唯一可用的随机数生成器是两个不同颜色的六面骰子。
最佳答案
假设有两个骰子:一白一黑。
现在你已经拥有了你所需要的:
您需要的不是 4 个可能的结果,而是 10 个,因为这可以代表您想要的加权结果。两个骰子可以通过多种方式产生 36 种可能性,但您需要的是 10 或 10 的倍数,例如上述。
此方法的唯一缺点是它是概率性的(这意味着您可以坐在那里从技术上永远重新滚动 31+),但我不相信存在确定性和准确的解决方案。
关于algorithm - 如何使用一对六面骰子创建有偏数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263894/
我是一名优秀的程序员,十分优秀!