【发布时间】:2010-09-13 08:38:21
【问题描述】:
给定一个生成 1 到 5 范围内随机整数的函数,编写一个生成 1 到 7 范围内随机整数的函数。
- 什么是简单的解决方案?
- 什么是减少内存使用或在较慢 CPU 上运行的有效解决方案?
【问题讨论】:
-
事实证明这是一个意想不到的有趣问题,我仍然在想如何1)在固定的时间内完成2)不破坏均匀分布(如果有的话)
-
我们在用骰子从 5 名玩家中选择一名玩家时遇到了类似的问题。我们轮流掷骰子,选择得分最高的人。达到了均匀性,但没有达到时间常数:)
-
如果我发布了一个回答说问题并不要求你必须使用给定的函数并且只写一个随机返回 1-7 的答案,我会否被否决?
-
7 * rand5() / 5呢? -
@kiwixz,这将产生“1到7之间”,但你不会得到3或6:{1:19.96、2:20.02、4:20.01、5:19.99、7: 20.02} 手动粗略百分比测试。 7*.2、7*.4、7*.6、7*.8、7*1。