作业帮 > 综合 > 作业

Mathematica 如何从多层表的每个子表中随机抽取n个元素组成一个新表?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 12:08:23
Mathematica 如何从多层表的每个子表中随机抽取n个元素组成一个新表?
如何从多层表的每个子表中随机抽取n个元素组成一个新表?
例如:
输入:
s1={{1,2,3},{4,5,6,7,8},{8,9,10,11,12,13}}
现从{1,2,3}中随机抽取1个元素、从{4,5,6,7,8}中随机抽取2个元素、从{8,9,10,11,12,13}}中随机抽取4个元素组成表s2,如:
输出:
s2={{2},{5,8},{8,9,11,13}}
用一点列表操作再加上RandomChoice就可以了:
{RandomSample[#,1],RandomSample[#2,2],RandomSample[#3,4]} & @@ s1
更简单一点的:
RandomSample[#,#2] & @@@ Transpose[{s1,{1,2,4}}]