3.10 序列

原文链接: https://rust-random.github.io/book/guide-seq.html

Rand 通过 IteratorRandom 和 SliceRandom trait 实现了序列上的几种常见随机操作。

生成索引

采样时:

洗牌

对切片洗牌:

采样

以下提供从切片或迭代器采样值的便捷方式:

注意对迭代器操作通常比对切片操作效率低。

加权采样

例如,加权采样可用于模拟从装有 5 颗绿色、15 颗红色和 80 颗蓝色弹珠的桶中抽取弹珠的颜色。

有放回

有放回抽样意味着任何被采样的值(弹珠)都会被放回(因此每种变体被采样的概率不受抽样行为影响)。

由以下分布实现:

为方便起见,可使用:

无放回

无放回抽样意味着抽样行为会修改分布。由于 Distribution trait 围绕不可变分布构建,我们提供:

最后修改 August 23, 2026: 更新 (499855b16)