我有一个函数,使用随机数生成其输出。我希望能够用一个长字符串来种子化这些随机数;只要字符串相同,随机数序列就会相同。这主要是为了测试目的,但也是为了可重复性。
我计划创建一个包装类,像内置的System.Random类一样工作,构造函数类似于:
MyRandom mr = new MyRandom(100, "This is a really long string...");
这将生成一个内部数字列表,因此当调用mr.Next()时,它只返回列表中的下一个条目。 当到达100时,列表会重新开始。 我想能够调用.NextDouble()。这不是为了高性能,我只想能够生成一个随机列表并再次使用它。
如何将长字符串转换为随机数列表。我考虑将字符串长度除以n(在本例中为100)。然后将字符串细分并对每个段调用哈希。
这种方法合理吗?还是有另一种更好的方法?
GetHashCode()
方法并不总是返回相同的数字。如果重新启动应用程序,该值可能会发生变化。 - jasdefer