【发布时间】:2010-12-19 17:05:07
【问题描述】:
我正在使用从CenterSpace 下载的 Mersenne Twister 的 C# 实现。我有两个问题:
- 无论我如何播种算法,它都不会通过DieHard tests,我的意思是我的 p 值得到了很多 1 和 0。我在 269 个 p 值上的 KStest 也是 0。好吧,我不能完全解释 p 值,但我认为结果中的几个 1 和 0 是坏消息。
- 我被要求直观地显示数字的随机性。所以我在生成数字时绘制它们,这似乎根本不是随机的。这是结果after a few seconds 和a few seconds later 的两个屏幕截图。正如您在第二个屏幕截图中看到的那样,数字落在一些平行线上。我尝试了不同的算法将数字映射到点。它们都产生平行线,但角度不同!这就是我将数字映射到这些屏幕截图的点的方式:
new Point(number % _canvasWidth, number % _canvasHeight)。您可能已经猜到了,视觉结果取决于表单的宽度和高度,this is 是一个灾难性的结果。
以下是我尝试播种算法的几种方法:
- 用户条目。我输入一些数字以将算法作为 int 数组播种。
- 算法本身生成的随机数!!
-
new Guid().GetHashCode()的数组
我在这里缺少什么?我应该如何播种算法?我怎样才能让它通过 DieHard?
【问题讨论】:
标签: random visualization seeding mersenne-twister