【发布时间】:2018-04-14 09:13:32
【问题描述】:
据我所知,C 中的 rand() 函数是一个均匀随机分布。
那么,我怎样才能生成一个有概率的范围随机数呢?
示例
生成 200 个随机数,范围从 -100 到 100 小于 20% 总数为负数?
【问题讨论】:
-
画出从-100到+403的数字。如果数字是正数,除以 4
-
在区间 [1-100] 中获取 x 作为随机数,如果 x20 获取一些正随机数?
-
@AnttiHaapala 这不能生成随机数 -100 到 -25
-
@Jean-BaptisteYunès 负数的总数总是等于 20%,因为 rand() 是均匀分布随机的。
-
不,不总是,平均为 20%,可能更少或更多。随机是随机的......均匀意味着每个值的概率是相同的,仅此而已。我的意思是你有 20% 的机会得到一个负值,但这并不意味着你会有一个!有 1/1.000.000 的彩票机会并下注 1.000.000 次并不意味着您会赢。