使用for循环语句,下面分两种:
- 代码1只输出可能性号的总数,不输出号码,文件很小。
- 代码2既输出所有可能性号,也输出总数,但输出文件非常大(约700M),耗时也长(要看电脑性能,一般约为400多秒,7分多钟)。
代码1:
# -*-coding:utf-8-*-import timenow = time.time() # 记录开始时间;fd = open(r"d:Lottery 5plus2.csv", "a") # 将运算结果输出到一个csv文件;sum = 0 # sum用来统计所有可能性总数;for row1 in range(1, 32): for row2 in range(2, 33): for row3 in range(3, 34): for row4 in range(4, 35): for row5 in range(5, 36): for col1 in range(1, 12): for col2 in range(2, 13): if (row1 < row2 < row3 < row4 < row5) and (col1 < col2): sum += 1 # sum统计所有可能性总数; #print(sum, file=fd, end=': ') #fd.write('{} {} {} {} {}'.format(row1, row2, row3, row4, row5)) # 输出红球; #fd.write(' - ') #fd.write('{} {}'.format(col1, col2)) # 将蓝球加到红球后面; #print(file=fd) #这个的目的是每注后换行;print("所有可能号码总数:", sum, file=fd, end='')end = time.time() # 记录结束时间;print("Total Time:{}".format((end - now)), file=fd) # 输出总耗时,时间是秒;print(sum)fd.close()
代码2:
# -*-coding:utf-8-*-import timenow = time.time() # 记录开始时间;fd = open(r"d:Lottery 5plus2.csv", "a") # 将运算结果输出到一个csv文件;sum = 0 # sum用来统计所有可能性总数;for row1 in range(1, 32): for row2 in range(2, 33): for row3 in range(3, 34): for row4 in range(4, 35): for row5 in range(5, 36): for col1 in range(1, 12): for col2 in range(2, 13): if (row1 < row2 < row3 < row4 < row5) and (col1 < col2): sum += 1 # sum统计所有可能性总数; print(sum, file=fd, end=': ') fd.write('{} {} {} {} {}'.format(row1, row2, row3, row4, row5)) # 输出红球; fd.write(' - ') fd.write('{} {}'.format(col1, col2)) # 将蓝球加到红球后面; print(file=fd)print("所有可能号码总数:", sum, file=fd, end='')end = time.time() # 记录结束时间;print("Total Time:{}".format((end - now)), file=fd) # 输出总耗时;print(sum)fd.close()
![1695205ad1a7e543d8883e726a9e23b6.png](https://img-blog.csdnimg.cn/img_convert/1695205ad1a7e543d8883e726a9e23b6.png)
Python运行结果与理论计算结果吻合
![c8b56ce2d2ab55b62b0d68ce5c409b11.png](https://img-blog.csdnimg.cn/img_convert/c8b56ce2d2ab55b62b0d68ce5c409b11.png)
理论计算结果