插入法全排列

插入法全排列插入法全排列 对于一个集合中的 n 个元素 有 n 阶乘中全排列 如对于 4 个元素的集合 有 4 3 2 1 中全排列 4 3 2 1 可以解释为 对于 1 个元素 有 1 种全排列 1 个元素有 2 个空位 即 e 代表空位 e 为元素 所以第二个元素插入有两个位置

大家好,我是讯享网,很高兴认识大家。

插入法全排列

  • 对于一个集合中的n个元素,有n阶乘中全排列
  • 如对于4个元素的集合,有4×3×2×1中全排列
  • 4×3×2×1可以解释为:
  • 对于1个元素,有1种全排列
  • 1个元素有2个空位,即 ()e(),()代表空位,e为元素,所以第二个元素插入有两个位置,而原本有1种全排,则2个元素有1×2种全排列
  • 3个元素有 ()e1()e2() 和 ()e2()e1(),即第三个元素每插入一个空位则产生一种全排列,所以3个元素有6个空位,即1×2×3 = 6种全排
  • 4个有3个元素全排的种数基础上×4,即1×2×3×4 = 24种
  • 算法(python):
# 参数为字符串 def myPermutation(arg): arg = list(arg) # 全排集合 set = [[]] for item in arg: tempSet = [] for subset in set: #对于每个子集 length = len(subset)+1 for i in range(length): # 每进行一次插入得到一个新全排 subset.insert(i,item) tempSet.append(list(subset)) subset.pop(i) # 更新全排集合 set = tempSet return set 

讯享网
小讯
上一篇 2025-01-07 12:01
下一篇 2025-01-25 14:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65593.html