尝试在C语言中创建以下函数:
bool randBool(double bias)
该函数随机返回0
或1
。
让我困惑的是,我希望允许用户在范围[-1.0, 1.0]内输入"偏差",表示输出为0
或1
的可能性。
以下是一些示例,说明输入的偏差应如何影响函数:
=======================================================
randBool(-1.0)
应始终返回0
。
randBool(1.0)
应始终返回1
。
randBool(-0.5)
比返回1
更有可能返回0
。
randBool(0.05)
比返回0
更有可能返回1
。
randBool(0.0)
返回0
和1
的概率相等。
=======================================================
我几乎可以确定这是一个概率问题,但我对此并不熟悉,所以我不知道如何实现这个函数。
RAND_MAX
映射为零(因为除数是RAND_MAX
而不是RAND_MAX+1
),没有将fmod
的结果缩放到 -1 到 1(或者反过来,缩放偏差与fmod
的结果相匹配)。 - Eric Postpischil