【发布时间】:2020-12-25 04:45:28
【问题描述】:
在最近的一次采访中,我遇到了以下问题
给定一个随机返回 0 或 1 的函数 BinaryRandom(),创建 一个函数 int MyRandom(int) 创建一个随机数小于或 等于使用 BinaryRandom() 的给定输入。
由于我是每日堆栈溢出和 GeeksForGeeks 用户,我记得 GeeksForGeeks 上有类似的问题,请参阅下面的链接
https://www.geeksforgeeks.org/implement-random-0-6-generator-using-the-given-random-0-1-generator/
唯一的区别是 GeeksForGeeks 的范围是 0-6,而在我的例子中,范围是
上述解决方案是使用以下链接从 SO 派生的
Creating a random number generator from a coin toss.
作为算法的初学者,我发现上面很难理解。任何人都可以为上述问题提出一个简单的解决方案吗?或者给个简单的理解?
【问题讨论】:
-
您需要说明下限。例如,如果 N 为 3,则有无限多个小于 N 的整数:2、1、0、-1、-2、-3,... 可能您的下限是 0 或 1(含),但我们不知道哪个直到你说出来。
-
“我觉得很难理解”不是一个非常精确的陈述。你能试着找到更准确的说法吗?在 SO 的答案中是否有某个地方您阅读了一个句子并且无法完全掌握它?你能把它变成一个你可以问的具体问题吗?