跳转到内容

随机数生成

为 Tact 智能合约生成随机数。

random

fun random(min: Int, max: Int): Int;

生成并返回一个新的伪随机无符号 Intx,该值位于提供的半闭区间内:min x << max,或者当 minmax 都是负数时,min x >> max。 请注意,max值从未包含在区间内。

示例用法:

random(42, 43); // 42, always
random(0, 42); // 0-41, but never a 42

randomInt

fun randomInt(): Int;

生成并返回一个新的伪随机无符号 256256-bit Intx

算法如下:如果 r 是随机种子的旧值,认为它是一个 3232 字节的数组(通过构建无符号 256256Int 的大端表示),那么计算其 sha512(r)。 哈希值的前 3232 字节作为随机种子的新值 r' 存储,其余 3232 字节作为下一个随机值 x 返回。

用法示例:

let allYourRandomBelongsToUs: Int = randomInt(); // ???, it's random :)