我如何预测轮盘游戏网站csgopolygon.com的结果,因为它正在调用Math.random
和Math.floor
?
答案 0 :(得分:6)
你的问题目前得分为负,这是一种耻辱。我认为这是一个非常好的问题。追求它,你将在这个过程中学到很多东西。
理论上,你可以预测Math.random
的结果是正确的。这就是为什么,如果您想要构建游戏/赌博应用程序,您应该确保使用cryptographically secure pseudo-random number generator。如果他们正在使用这样的话,那就算了吧。
如果你是正确的并且他们使用System.time作为Java附带的标准Random生成器的种子,那么可能有一种方法。它将涉及根据与(未来)时间戳相对应的种子,在每个序列中生成数百万个数字序列,然后观察网站生成的实际随机数,并尝试在预先生成的数百万中查找特定序列。如果你有匹配,你找到了种子。如果你有种子并知道它们在序列中的位置,那么理论上可以预测下一个数字。
这种方法存在问题:
在其他答案中,据说预测Math.random的结果是不可能的。这是不正确的。一旦你知道了种子和迭代(自种子设置以来生成了多少个数字),Math.random实际上是非常可预测的。我实际上曾经构建了一个生成随机级别的游戏。我弄乱了种子,发现如果我总是设置相同的种子,我总会得到相同的水平。这很酷,因为我的游戏有无限级别,但是27级(例如)总是看起来完全一样。
修改强>
好的,我应该事先检查过网站......:)
基本上你想要的是找到当前正在使用的种子...但是我上面提到的第5点仍然存在:你没有完整的图片所以你怎么预测你你他们会得到吗?除此之外,找到种子几乎是不可能的。这些家伙知道加密,所以你可以打赌使用安全的随机数发生器。
答案 1 :(得分:2)
你不可能,并且你可能不应该像16岁那样患上赌博成瘾。也就是说,即使你可以,该网站也不是使用javascript来生成数字,而是使用PHP或ASP等服务器端语言。
答案 2 :(得分:0)
也许这就是:https://jonasnick.github.io/blog/2015/07/08/exploiting-csgojackpots-weak-rng/
我怀疑csgopolygon使用math.random但是随时可以查看它。
答案 3 :(得分:-1)
基本上不可能预测Math.random()
的结果。如果我们一直追溯到这个函数的根,我们将发现自己在C和二进制文件中。因此,除非你手上有永恒,否则我不会专注于此事。