【发布时间】:2011-12-29 06:39:50
【问题描述】:
让我先声明我不是 C# 开发人员。我是一名职业和选择的 C 开发人员。但是我必须使用 Visual C# 来上课。
我一直在阅读加密安全伪随机数生成器和 System.Random 之间的区别。每个人似乎都很清楚 RNGCryptoServiceProvider 的随机性更强,但也更慢。
对于我们在一个小组项目中的算法,我们将使用给定(固定)列表中的 3 个随机节点,在 25 秒内尽可能多地对它们之间的路径上的边进行评分。
为了让我们的算法“完整”,我们需要确保每个节点被选中的次数与每个其他节点接近相同的次数。为了让我们的算法“最优”(或尽可能接近,因为我们可以使用近似值),我们需要在 25 秒(或任何其他任意)期限内尽可能多地进行评分。
鉴于我们将使用 Random 的单个实例,但我们将运行一个循环,该循环将快速连续调用 Random.Next() 3 次,并且将尽可能多地重复,将随机产生合理均匀的分布?或者我们是否需要产生额外的 RNGCryptoServiceProvider 成本以确保我们没有任何节点被完全跳过?
【问题讨论】:
-
你不能同时尝试并比较一致性吗?
-
另见 #418817 stackoverflow.com/questions/418817/…。
标签: c# random probability