用Python计算用1,2,3,4,5,6这6个数字组成不同的六位数以及它们的平均值

这里用到了itertools模块中的permutations(实质上就是排列功能),当然itertools模块中还有combinations(实质上就是组合功能),且看程序。

from itertools import permutations

li_per = list(permutations("123456"))
# li_per是[('1', '5', '2', '3', '4', '6'), ('1', '2', '3', '4', '5', '6').......]这种形式

sum = 0.0
for item in li_per:
    # 将('1', '5', '2', '3', '4', '6')这种形式直接变成一个整数152346
    a = int("".join([i for i in item]))
    sum += a

count = len(li_per)
print("总共有{0}个数".format(count))
print("总和为:", sum)
print("平均值是:", sum/count)

执行结果如下:

当然,从数学原理上,我们可以这样想:

直接求中位数,因为平均数就是各数相加除以总各数。所以头尾相加除于2,就是平均数。最小的数是123456,最大的书是654321,所以他们的平均数是123456+654321=777777然后再除以2,得到388888.5。这和我们的程序执行的结果是一致的。

猜你喜欢

转载自blog.csdn.net/CholenMine/article/details/81266015