Ste*_*ger 5 c# random test-data
我需要一个伪随机生成器,它将一个数字作为输入并返回另一个数字,它是可重现的并且似乎是随机的.
它一定不是完美的,它只是创建随机但可重现的测试数据.
我用C#.
我前段时间写了这段有趣的代码,它产生了随机的东西.
public static long Scramble(long number, long max)
{
// some random values
long[] scramblers = { 3, 5, 7, 31, 343, 2348, 89897 };
number += (max / 7) + 6;
number %= max;
// shuffle according to divisibility
foreach (long scrambler in scramblers)
{
if (scrambler >= max / 3) break;
number = ((number * scrambler) % max)
+ ((number * scrambler) / max);
}
return number % max;
}
Run Code Online (Sandbox Code Playgroud)
我希望有更好,更可靠的东西,使用任何数量的大小(没有最大参数).
这可能是使用CRC算法解决的吗?或者有点洗牌的东西.
您(也许)可以使用 Random 类在 C# 中轻松完成此操作:
public int GetPseudoRandomNumber(int input)
{
Random random = new Random(input);
return random.Next();
}
Run Code Online (Sandbox Code Playgroud)
由于您使用输入显式播种随机,因此每次给定相同的输入值时,您都会获得相同的输出。
| 归档时间: |
|
| 查看次数: |
6923 次 |
| 最近记录: |