【发布时间】:2015-07-05 14:45:44
【问题描述】:
我有一种情况,我必须生成一个随机数,这个数必须是zero 或one
所以,代码是这样的:
randomNumber = new Random().Next(0,1)
但是,业务需求表明生成的数字只有 10% 的概率为零,而生成的数字为 1 的概率只有 90%
但是,我可以在生成随机数时包含该概率吗?
我想到的是:
- 生成包含 10 个零和 90 个一的整数数组。
- 生成一个介于 1 到 100 之间的随机索引
- 取与该索引对应的值
但我不知道这种方式是不是正确的方式,另外,我认为C#应该已经准备好了
【问题讨论】:
-
你不能只生成一个 1 到 10 之间的数字然后除以 10 吗? 9 次 ... x/10 将为 0。1 次 x/10 将为 1。
-
@ta.speot.is 我不知道我数学不好
-
.Next(0,1)这将生成 0 或 0。最大值是独占的,不包括在内。另一件事:我希望你不要每次做Next()时都做new Random()。这将是错误 -
@xanatos 说得好,谢谢
标签: c# .net math random distributed-computing