d3-random
从各种分布中生成随机数。有关有种子随机数生成,请参见 random.source 和 randomLcg。
🌐 Generate random numbers from various distributions. For seeded random number generation, see random.source and randomLcg.
randomUniform(最小值, 最大值)
🌐 randomUniform(min, max)
d3.randomUniform(6) // generate numbers ≥0 and <6示例 · 来源 · 返回一个用于生成具有[均匀分布](https://en.wikipedia.org/wiki/Uniform_distribution_\(continuous\)的随机数的函数。返回数字的最小允许值为 min(包含),最大值为 max(不包含)。如果未指定 min,则默认为 0;如果未指定 max,则默认为 1。例如:
randomInt(最小值, 最大值)
🌐 randomInt(min, max)
d3.randomInt(100) // generate integers ≥0 and <100示例 · 来源 · 返回一个用于生成具有[均匀分布](https://en.wikipedia.org/wiki/Uniform_distribution_\(continuous\)的随机整数的函数。返回数字的最小允许值是 ⌊min⌋(包含),最大值是 ⌊max - 1⌋(包含)。如果未指定 min,则默认值为 0。例如:
randomNormal(mu, sigma)
d3.randomNormal(0, 1) // mean of 0, and standard deviation of 1示例 · 来源 · 返回一个用于生成具有正态(高斯)分布的随机数的函数。生成数的期望值为mu,标准差为sigma。如果未指定mu,默认为0;如果未指定sigma,默认为1。
randomLogNormal(mu, sigma)
d3.randomLogNormal(0, 1)示例 · 来源 · 返回一个用于生成具有对数正态分布的随机数的函数。随机变量自然对数的期望值为 mu,标准差为 sigma。如果未指定 mu,默认为 0;如果未指定 sigma,默认为 1。
randomBates(n)
d3.randomBates(3) // generates numbers between 0 and 1示例 · 来源 · 返回一个用于生成具有 n 个独立变量的 Bates 分布 的随机数的函数。分数 n 的情况处理方式与 d3.randomIrwinHall 相同,并且 d3.randomBates(0) 等同于 d3.randomUniform()。
randomIrwinHall(n)
d3.randomIrwinHall(3) // generates numbers between 0 and 3示例 · 来源 · 返回一个用于生成具有 n 个独立变量的 Irwin–Hall 分布 的随机数的函数。如果 n 的小数部分非零,则将其视为向整数部分添加 d3.randomUniform() 乘以该小数部分。
randomExponential(lambda)
d3.randomExponential(1 / 40)示例 · 来源 · 返回一个用于生成具有指数分布的随机数的函数,参数为速率 lambda;等同于泊松过程中事件之间的时间,其平均值为 1 / lambda。例如,randomExponential(1 / 40) 生成事件之间的随机时间,其中平均每 40 个时间单位发生一次事件。
randomPareto(alpha)
d3.randomPareto(6)示例 · 来源 · 返回用于生成具有形状参数 alpha 的 帕累托分布 随机数的函数。值 alpha 必须为正值。
randomBernoulli(p)
d3.randomBernoulli(0.5)示例 · 来源 · 返回一个函数,用于根据 伯努利分布 生成 1 或 0,其中以成功概率 p 返回 1,以失败概率 q = 1 - p 返回 0。值 p 的范围是 [0, 1]。
randomGeometric(p)
d3.randomGeometric(0.1)示例 · 来源 · 返回一个用于生成具有成功概率 p 的几何分布 数字的函数。值 p 的范围是 [0, 1]。
randomBinomial(n, p)
d3.randomBinomial(40, 0.5)示例 · 来源 · 返回一个用于生成具有 二项分布 的随机数的函数,其中 n 为试验次数,p 为每次试验成功的概率。值 n 大于或等于 0,值 p 在 [0, 1] 范围内。
randomGamma(k, theta)
d3.randomGamma(2, 1)示例 · 来源 · 返回一个用于生成具有伽马分布的随机数的函数,其中 k 是形状参数,theta 是尺度参数。值 k 必须为正值;如果未指定 theta,默认为1。
randomBeta(alpha, beta)
d3.randomBeta(3, 1.5)示例 · 来源 · 返回一个用于生成具有 alpha 和 beta 形状参数的 贝塔分布 随机数的函数,这两个参数都必须为正数。
randomWeibull(k, a, b)
d3.randomWeibull(10)示例 · 来源 · 根据 k,返回用于生成具有某个广义极值分布的随机数的函数:
- 如果 k 为正,Weibull 分布 的形状参数为 k
- 如果k为零,古姆贝尔分布
- 如果 k 为负,则形状参数为 −k 的 Fré歇分布
在所有三种情况下,a 是位置参数,b 是尺度参数。如果未指定 a,默认为 0;如果未指定 b,默认为 1。
🌐 In all three cases, a is the location parameter and b is the scale parameter. If a is not specified, it defaults to 0; if b is not specified, it defaults to 1.
randomCauchy(a, b)
d3.randomCauchy(0, 1) // above, clipped to [-5, 5] because “fat tails”示例 · 来源 · 返回一个用于生成具有 柯西分布 的随机数的函数。a 和 b 的含义及默认值与 d3.randomWeibull 中相同。
randomLogistic(a, b)
d3.randomLogistic(0, 1)示例 · 来源 · 返回一个用于生成具有逻辑分布的随机数的函数。a 和 b 的含义和默认值与 d3.randomWeibull 中相同。
randomPoisson(lambda)
d3.randomPoisson(400)示例 · 来源 · 返回一个用于生成具有平均值 lambda 的 泊松分布 随机数的函数。
random.source(source)
const seed = 0.44871573888282423; // any number in [0, 1)
const random = d3.randomNormal.source(d3.randomLcg(seed))(0, 1);
random(); // -0.6253955998897069示例 · 返回用于生成随机数的相同类型的函数,但使用给定的随机数生成器源作为随机性的来源,而不是 Math.random。给定的随机数生成器必须实现与 Math.random 相同的接口,并且只返回范围在 [0, 1) 之间的值。当需要一个可设定种子的随机数生成器而不是 Math.random 时,这非常有用。
randomLcg(seed)
d3.randomLcg(42)示例 · 来源 · 返回一个线性同余生成器;此函数可以重复调用以获取在区间 [0,1) 上分布良好的伪随机值,并具有很长的周期(最长可达 10 亿个数),类似于 Math.random。可以将 种子 指定为区间 [0,1) 内的实数或任意整数。在后一种情况下,仅考虑低 32 位。使用相同种子实例化的两个生成器会生成相同的序列,从而可以创建可重复的伪随机实验。如果未指定 种子,则使用 Math.random 选择一个种子。