|
|
发表于 2019-4-4 11:57:35
|
显示全部楼层
想不到好的办法了,用了个笨办法,遍历,就是套的循环太多了,效率非常差,期望有哪位大神有更好的思路。
假设5个人,人不动,信轮流转换。
- for a in range(1,6):
- if a!=1:
- for b in range(1,6):
- if b!=2 and b!=a:
- for c in range(1,6):
- if c!=3 and c!=a and c!=b:
- for d in range(1,6):
- if d!=4 and d!=a and d!=b and d!=c:
- for e in range(1,6):
- if e!=5 and e!=a and e!=b and e!=c and e!=d:
- print(a,b,c,d,e)
复制代码
运行结果是这样的:
- 2 1 4 5 3
- 2 1 5 3 4
- 2 3 1 5 4
- 2 3 4 5 1
- 2 3 5 1 4
- 2 4 1 5 3
- 2 4 5 1 3
- 2 4 5 3 1
- 2 5 1 3 4
- 2 5 4 1 3
- 2 5 4 3 1
- 3 1 2 5 4
- 3 1 4 5 2
- 3 1 5 2 4
- 3 4 1 5 2
- 3 4 2 5 1
- 3 4 5 1 2
- 3 4 5 2 1
- 3 5 1 2 4
- 3 5 2 1 4
- 3 5 4 1 2
- 3 5 4 2 1
- 4 1 2 5 3
- 4 1 5 2 3
- 4 1 5 3 2
- 4 3 1 5 2
- 4 3 2 5 1
- 4 3 5 1 2
- 4 3 5 2 1
- 4 5 1 2 3
- 4 5 1 3 2
- 4 5 2 1 3
- 4 5 2 3 1
- 5 1 2 3 4
- 5 1 4 2 3
- 5 1 4 3 2
- 5 3 1 2 4
- 5 3 2 1 4
- 5 3 4 1 2
- 5 3 4 2 1
- 5 4 1 2 3
- 5 4 1 3 2
- 5 4 2 1 3
- 5 4 2 3 1
- >>>
复制代码 |
|