嵌套排列生成到循环排列生成的算法
来源:互联网 发布:怎么下载气象数据 编辑:程序博客网 时间:2024/06/05 16:20
有时候需要生成一些列表的全排列组合,例如,有3个箱子,第一个中有红、蓝色球各一,第二个有红、蓝、绿色球各一,第三个有红、蓝、绿色球各一,现在在这个3个箱子中任取一个,共有C(1,2) * C(1,3)*C(1,3) = 2 * 3 * 3 = 18 种不同的取法,现在需要列出所有的取法,简单的做法是做个3层嵌套的循环,但当嵌套层数运行时定义时,这样的代码就不太好写,以下的算法将上述的循环转换到一个2维循环中。
A = ['A', 'B']
B = ['A', 'B', 'C']
C = ['A', 'B', 'C']
for a in A:
for b in B:
for c in C:
print a,b,c
print '*' * 40
L = [A, B, C]
N = 1
for l in L:
N *= len(l)
for i in range(0, N):
step = N
for l in L:
step /= len(l)
print l[i / step % len(l)],
print
A = ['A', 'B']
B = ['A', 'B', 'C']
C = ['A', 'B', 'C']
for a in A:
for b in B:
for c in C:
print a,b,c
print '*' * 40
L = [A, B, C]
N = 1
for l in L:
N *= len(l)
for i in range(0, N):
step = N
for l in L:
step /= len(l)
print l[i / step % len(l)],
- 嵌套排列生成到循环排列生成的算法
- 高效的排列生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 生成排列算法
- 排列生成算法
- 排列生成算法
- 全排列生成算法
- 全排列生成算法 .
- 全排列生成算法
- 算法 生成随机排列
- 图解Exchange2007 安装
- 用了整整一个晚上,就因为byte & int
- MBR简介
- fast_cast数据类型转换
- C++Builder使用Lua的问题
- 嵌套排列生成到循环排列生成的算法
- 在C++Builder中使用XP视觉样式
- 才知道自己一无是处的原因——傻傻的而且不够努力。
- 注册文件类型
- 初来炸到~~
- OEMAddressTable介绍
- 今天有些感触
- c++字符串处理函数
- c++中使用 extern "c"