Javascript 根据种子值生成随机数

Javascript 根据种子值生成随机数,javascript,c#,random,Javascript,C#,Random,有人提出了根据种子值以完全相同的顺序生成随机数的想法,我开始非常认真地思考如何做到这一点。我们要求对方创建一个执行以下操作的应用程序: 根据种子值,每10秒生成一组5个随机数,范围从1到100。生成的数字(使用相同的种子值时)应完全相同,并以完全相同的顺序生成,因此,如果应用程序运行20秒并生成数字[1、17、2、58、27、83、32、56、27、4],如果应用程序重新启动,则应在20秒后生成这些完全相同的数字,如果提供相同的种子 这将允许多个客户端根据单个数字种子值生成相同的精确信息 不幸的

有人提出了根据种子值以完全相同的顺序生成随机数的想法,我开始非常认真地思考如何做到这一点。我们要求对方创建一个执行以下操作的应用程序:

根据种子值,每10秒生成一组5个随机数,范围从1到100。生成的数字(使用相同的种子值时)应完全相同,并以完全相同的顺序生成,因此,如果应用程序运行20秒并生成数字[1、17、2、58、27、83、32、56、27、4],如果应用程序重新启动,则应在20秒后生成这些完全相同的数字,如果提供相同的种子

这将允许多个客户端根据单个数字种子值生成相同的精确信息

不幸的是,过了几天,我们两人都没有达到目标,我们完全不知道如何做到这一点。我们甚至不知道这种行为的正确术语是什么,但我称之为“确定性数字生成”

我已经标记了这两种语言,希望有人能帮助我们。这将是一个非常有趣的代码块来进行实验,如果我们能找到一种方法的话,我们甚至想到了使用这种策略来改进一些手机游戏的方法


任何帮助都将不胜感激。

冒着陈述显而易见的风险,但在C#中,这将是-

int seed = 12;
Random r = new Random(seed);

for (int n = 0; n < 20; n++)
{
    Console.WriteLine("{0}", r.Next(1, 100));
}
int-seed=12;
随机r=新随机(种子);
对于(int n=0;n<20;n++)
{
Console.WriteLine({0}),r.Next(1100));
}
只要你们使用相同的种子编号,你们就会得到相同的列表


除非我在您的问题中遗漏了什么…

您需要将生成的随机数与种子映射保存在某处,然后在新一代之前查看C#中的持久存储,
random
构造函数将种子值作为参数。为什么你需要自己实现一个呢?为了生成完全相同的随机数,不管你可以使用什么样的规则。这将提供一个可维护的
返回新列表{1,17,2,58,27,83,32,56,27,4}我们总是在关于Psuedo random的演示文稿中听说,数字可以在不同的机器上以不同的方式生成,上述代码是否应该返回相同的结果,而不管基于种子生成随机数的设备的硬件/操作系统如何?例如,Windows/Linux/iOS/MacOS/AndroidI已经测试过,代码将在C#下的不同机器上返回相同的值。我不能评论Javascript,因为我对它不是很熟悉。然而,我要说的是,C#和Javascript中随机数类的实现可能不同,因此JScript程序和C#程序很可能会产生不同的数字。我当然很想看看它们之间的比较。选择一个实现,比如C#实现,然后在其他机器上复制相同的实现。您需要检查不同的实现特定点,如整数大小和舍入方法,以确保相同的结果。