randDiscrete

语法

randDiscrete(v, p, count)

参数

v 向量或元组,表示样本数据。

pv 等长的浮点型向量,其每个元素必须是正数,对应 v 中采样元素的概率分布。系统会自动将 p 的元素归一化。

count 正整数,表示输出的随机向量的长度。

详情

根据给定的分布概率 p,生成向量 v 的随机样本。生成样本的长度由 count 指定。

例子

randDiscrete(1..5, [0.1, 0.1, 0.2, 0.2, 0.4], 10)
# output
[2,3,5,2,5,5,2,1,1,2]

// 若概率和不为1,系统会自动归一化
randDiscrete(1..5, [0.1, 0.2, 0.3, 0.4, 0.5], 5)
# output
[5,1,2,3,5]

randDiscrete(`A`B`C`E`F, [0.1, 0.2, 0.3, 0.4, 0.5], 5)
# output
["C","E","B","C","F"]

// 输入元组,对元组中的每个元素进行采样
randDiscrete([[1,2], [2,3,4], 'S', 'abc'], [0.3, 0.3, 0.2, 0.1], 10)
# output
('S',[2,3,4],[1,2],[2,3,4],[1,2],'S','S',[2,3,4],[2,3,4],[2,3,4])

// 输入数组向量,对其中的每个向量进行采样
a = array(INT[], 0, 10).append!([1 2 3, 4 5,6 7 8, 9 NULL])
randDiscrete(a, [0.1, 0.2, 0.3, 0.4], 10)
# output
[[9,00i],[9,00i],[9,00i],[4,5],[9,00i],[1,2,3],[9,00i],[6,7,8],[9,00i],[9,00i]]