【发布时间】:2015-05-01 16:23:18
【问题描述】:
有没有一种简单的方法可以得到一个集合的前 x 个排列?
例如一个有 5 个字符 {a,b,c,d,e} 的集合将有
5*5*5*5*5= 3125 个排列输出
(允许重复,例如 {a,a,a,a,a})
但我希望只有前 100 个值,例如
【问题讨论】:
-
您认为“第一个”x 排列是什么?例如100 个随机可能的排列,或某种顺序的排列?另外,考虑到你的数学,你的意思是 {a,a,a,a,a} 是一个选项吗?
-
是的,{a,a,a,a,a} 是一个选项,是的,随机也可以
-
您应该更新您的问题以表明这一点,因为 MATLAB 中的大多数
permute/perms等置换函数都假定真正的置换(无重复)。 -
那些不是排列,而是组合。
-
在permutations 中,通常不允许您两次使用同一个项目。我猜您要查找的术语是 Cartesian product 甚至可能是 Cartesian power。
标签: matlab permutation