题目:
1、 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
total = 0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i != j and i != k and j != k:
print(i,j,k)
total += 1
print("total: ",total)
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2
total: 24
一般的思路如上面所示,使用循环嵌套,然后判断三个数不相等,最后输出;
这是一个排列问题,我们可以直接用排列的方法来解决,使用itertools库中的函数
from itertools import permutations
total = 0
for i in permutations(range(1,5),3):
print(i)
total += 1
print("Total: ",total)
(1, 2, 3)
(1, 2, 4)
(1, 3, 2)
(1, 3, 4)
(1, 4, 2)
(1, 4, 3)
(2, 1, 3)
(2, 1, 4)
(2, 3, 1)
(2, 3, 4)
(2, 4, 1)
(2, 4, 3)
(3, 1, 2)
(3, 1, 4)
(3, 2, 1)
(3, 2, 4)
(3, 4, 1)
(3, 4, 2)
(4, 1, 2)
(4, 1, 3)
(4, 2, 1)
(4, 2, 3)
(4, 3, 1)
(4, 3, 2)
Total: 24