我怎么能预测数学?随机的结果

How can I predict Math.random results?

本文关键字:随机 结果 怎么能      更新时间:2023-09-26

如何预测轮盘赌游戏网站csgopolygon.com的结果,给定它调用Math.randomMath.floor ?

你的预感是,在理论上,可以预测Math.random的结果是正确的。这就是为什么,如果您想要构建一个游戏/赌博应用程序,您应该确保使用加密安全的伪随机数生成器。如果他们正在这样做,那就忘了它吧。

然而,如果你是正确的,他们正在使用系统。时间作为Java附带的标准随机生成器的种子,可能有一种方法。它将涉及生成数百万个数字序列,每个序列中有数百万个数字,基于与(未来)时间戳相对应的种子,然后观察网站生成的实际随机数,并试图在您事先生成的数百万个序列中找到特定的序列。如果你找到了匹配,你就找到了种子。如果你有种子并且知道它们在序列中的位置,那么理论上你就可以预测下一个数字。

这种方法的问题:

  1. 你需要知道他们正在使用的确切算法,所以你可以确保你使用相同的
  2. 生成所有序列需要大量的处理能力
  3. 存储它们需要大量的存储空间在存储的序列中搜索观测序列需要大量的处理能力你不了解全部情况。即使你在种子序列中找到了正确的种子和位置,你仍然需要预测你将获得的下一个数字,但由于这是一个多人游戏网站,他们可能会将该数字提供给其他玩家。

在其他答案中,据说预测数学的结果。随机是不可能的。这是不正确的。数学。随机实际上是非常可预测的,一旦您知道种子和迭代(自设置种子以来生成了多少数字)。我曾经制作过一款生成随机关卡的游戏。我把种子弄乱了,发现如果我总是设置相同的种子,我总是会得到相同的水平。这很酷,因为我的游戏有无限个关卡,但第27个关卡看起来总是一样的。

然而,

  1. 他们没有使用Java。查看顶部的"可证明的公平"链接。他们讨论了如何通过执行PHP代码来验证过去的滚动。这些家伙很聪明。一旦他们抛弃了旧的种子,他们就会出版旧的种子。这允许您(使用伪随机数生成器的可预测的行为)重新生成所有滚动并验证它们从未被篡改过。

基本上,你想找到当前正在使用的种子…然而,我上面提到的第5点仍然有效:你没有完整的画面,所以你如何预测你的将得到什么滚动 ?除此之外,找到种子几乎是不可能的。这些家伙懂密码学,所以你可以打赌他们正在使用一个安全的随机数生成器。

你不能,也不应该在16岁的时候就染上赌瘾。也就是说,即使可以,这个站点也不是使用JavaScript来生成数字,而是使用PHP或ASP.NET之类的服务器端语言。