Appearance
随机数生成
Tact 智能合约的随机数生成。
random
solidity
fun random(min: Int, max: Int): Int;
生成并返回一个新的伪随机无符号 Int
值 x
,位于提供的半闭区间内:min
$≤$ x
$<$ max
或者 min
$≥$ x
$>$ max
,如果 min
和 max
都是负数。注意,max
值从不包含在区间内。
使用示例:
solidity
random(42, 43); // 总是 42
random(0, 42); // 0-41,但从不包括 42
randomInt
solidity
fun randomInt(): Int;
生成并返回一个新的伪随机无符号 $256$-bit Int
值 x
。
算法如下:如果 r
是作为 $32$ 字节数组的随机种子的旧值(通过构造无符号 $256$-bit Int
的大端表示),则计算其 sha512(r)
。哈希的前 $32$ 字节作为随机种子的的新值 r'
存储,剩余的 $32$ 字节作为下一个随机值 x
返回。
使用示例:
solidity
let allYourRandomBelongsToUs: Int = randomInt(); // ???, 这是随机的 :)
⚠️ 高级函数用于处理随机数列在专门页面列出:高级 API。