On this page
@std/random
不稳定
此 @std 包是试验性的,其 API 可能会在不进行大版本更新的情况下更改。
概览 Jump to heading
用于生成随机数的实用工具。
生成带固定种子数的随机整数示例:
import { randomIntegerBetween } from "@std/random";
import { randomSeeded } from "@std/random";
import { assertEquals } from "@std/assert";
const prng = randomSeeded(1n);
assertEquals(randomIntegerBetween(1, 10, { prng }), 3);
生成两个值之间随机整数的示例:
import { randomIntegerBetween } from "@std/random";
import { randomSeeded } from "@std/random";
const prng = randomSeeded(BigInt(crypto.getRandomValues(new Uint32Array(1))[0]!));
const randomInteger = randomIntegerBetween(1, 10, { prng });
添加到您的项目 Jump to heading
deno add jsr:@std/random
为什么使用 @std/random? Jump to heading
随机数生成对于模拟、游戏、抽样和随机算法非常有用。本包既提供了常见使用场景的便捷函数,也提供了通过种子创建可复现伪随机序列的方式。
示例 Jump to heading
import { randomIntegerBetween, randomSeeded } from "@std/random";
const prng = randomSeeded(123n);
const roll = randomIntegerBetween(1, 6, { prng });
提示 Jump to heading
- 为了实现可复现的测试和模拟,使用
randomSeeded(seed)并将 PRNG 传递给辅助函数。 - 对于对安全敏感的随机数(令牌、密钥),请使用 Web Crypto API(
crypto.getRandomValues),而不是伪随机数生成工具。 - 像
randomIntegerBetween这样的分布辅助函数包括上下界;在 API 文档中说明这一点以避免越界一的混淆。