【发布时间】:2017-08-24 14:39:01
【问题描述】:
我需要随机生成位,但位的数量应该是一个确定的比例。 假设我想生成一个 100 位。 所以如果比例是 3:2 它必须生成 60 个 0 和 40 个 1。 我将如何在 C 中实现这一目标?
【问题讨论】:
-
查看
rand函数。也许像int operation = if (rand() > RAND_MAX / proportion);?. -
“确定比例”是什么意思?均匀分布,0 和 1 完全相等,或者不是 50/50 的比例?
-
...但有一定的比例。 ...到底是什么意思?您的意思是您想要一个生成二进制数 0 和 1 的函数(您没有指定的数量),并且该函数的输入是它们中需要为 1 的百分比是多少?或者是其他东西?此外,您应该描述到目前为止您为解决此问题所做的尝试。这个网站不是让人们免费为您工作的地方。 :)
-
每个 C 实现都提供了
srand()和rand()函数。在某些 C 实现中,rand()结果的低位在0和1之间交替,使得rand() % 2不合适。大多数 C 实现提供比srand()和rand()质量更高的其他随机数生成器。请参阅comp.lang.c FAQ,问题 13.15 及以下问题。 -
我的意思是比率。对不起。所以如果比例是 3:2 说计数是 100 就需要产生 60 个 0 和 40 个 1 并且 0 的个数必须永远大于 1 的个数。