生成随机数背后的数学(崩溃游戏BTC赌场)

问题描述 投票:0回答:2

我正在开发一款基于网络的游戏,其中有多个迷你游戏。 我们坚持还添加一个在赌博界非常流行的崩溃游戏。 然而,我们一直在努力理解生成随机(几乎不可预测)数字的概念。 大多数赌博网站都会提供哈希值等来证明数字未被篡改。我们真的不需要这个,因为我们的游戏不涉及真正的金钱。 所以我们只是在寻找一种方法来生成一个(几乎不可预测的)随机数(从 1 开始到无穷大),但它给了我们一点庄家优势 (1/2%)。

javascript node.js math crash gambling
2个回答
2
投票

对于(几乎不可预测的)随机数,您可以使用

Crypto.getRandomValues()
,它比默认的
Math.random()
方法更安全且更随机。

对于崩溃游戏,如果你希望崩溃点高于X的概率应该是1/X,可以使用这个方法:

function getCrashPoint() {
    e = 2**32
    h = crypto.getRandomValues(new Uint32Array(1))[0]
    return Math.floor((100*e-h) / (e-h)) / 100
}

如果你想增加 2% 的庄家优势,只需添加 if 语句即可:

function getCrashPoint() {
    e = 2**32
    h = crypto.getRandomValues(new Uint32Array(1))[0]
    // if h % (100 / desired_precentage) is 0 then the game will crash immediately 
    if (h % 50 == 0) return 1
    return Math.floor((100*e-h) / (e-h)) / 100
}

0
投票

我喜欢这个 Minding The Data 的 YouTube 视频,内容涉及 赌博赌博

它检查了可证明公平游戏的代码,但你可以从中学到很多东西。

© www.soinside.com 2019 - 2024. All rights reserved.