Python编程练习1:无重复数字的计算
2024-06-04 00:00:58  阅读数 857

题目:由6,7,8,9四个数字能组成多少个互不相同且无重复数字的三位数?分别是多少?

```

# 利用穷举法实现求解

NUM = 0;

numbers = [6,7,8,9]

for i in numbers:

    for j in numbers:

        for k in numbers:

            if ((i!=j) and (i!=k) and (j!=k)):

                print(i,j,k)

                NUM = NUM +1

print(NUM)

```

另外可以采用python的迭代器来完成。

迭代器最大的特点是惰性求值,即只有当迭代至某个值时,才会对其进行计算,而不是一开始就计算出全部的值。

迭代器特别适合应用于大文件,无限集合等,因为无需将他们一次性传入内存中。

itertools是Python内置的模块,其中包含了一系列迭代器相关的函数和类。

其中permutations方法是用来生成排列的

用法:permutations(iterable[, r])

其中,r 指定生成排列的元素的长度,如果不指定,则默认为可迭代对象的元素长度。

```

from itertools import permutations

NUM = 0;

numbers = [6,7,8,9]

for i in permutations(numbers, 3):

        print(i)

        NUM = NUM+1

print(NUM)

```