大鸟哥利用业余时间总爱研究一下随机数据,纯粹当作一种对于数字游戏的兴趣。小伙伴们都能知道,福彩3D是从0~9这10个数字中任意选出3个排成一列数字,并且有顺序区别。
例如:选择0、1、2三个数字,除去000、111、222三个重复排列,还有6种不重复排列:012、021、102、120、201、210。
如果选择1、3、6、7、8五个数字,总共有多少种不重复排列方式呢?
数学算法如下:
也就是有60种排列方式。如果单倍投注,每注2元,那么就是120元的投注金额。虽然投注站有现成的计算软件,但是为了大鸟哥自己研究数据方便,制作一个复式不重复排列算法的计算器并且能自动生成数据排列后的电子表格。如果有小伙伴需要彩票历史数据电子表格版可以私信大鸟哥或者访问CSDN主页下载资源:孤独的大鸟哥的博客_CSDN博客-领域博主。
代码如下:
from itertools import permutations
import csv #引入csv模块
b=[1,3,6,7,8] #选择3D投注数字
d=list(permutations(b,3)) #不放回抽样排列
#将排列好的数字存入Excel电子表格
f_1=open('p_1.csv','w',encoding='utf-8',newline="")
csv_writer=csv.writer(f_1)
csv_writer.writerow(['a','b','c'])
for i in range(len(d)):
csv_writer.writerow(d[i])
print('++++++++++++++++++++++++++++++++++++++++++++') #打印间隔符
print(len(d)) #打印组合总数
print('++++++++++++++++++++++++++++++++++++++++++++') #
print(d) #打印所有组合
print('++++++++++++++++++++++++++++++++++++++++++++')
运行结果如下图: