Python代码:按和值奇偶比对号码进行组合

泽江东旭侯 2025-02-04 12:40:31

Python代码:按和值奇偶比对号码进行组合

大乐透常见和值

不少朋友在选定号码以后,会按照一定的和值来组号,比如大乐透常见和值有62 63 72 73 74 81 108 116等我们不用固定在一个数上,我们可以给定一个区间比如50-90,80-120等,

加上这样的限制条件以后,总的组合数就大幅度下降了。

在比如我们看奇数比偶数多一个,奇偶比3:2,作为另外一个限制条件等

其他的还有AC值,号码遗漏值,尾数,跨度,概率等。

示例代码:

import itertools import random # 定义号码列表 numbers = [31, 1, 16, 17, 34, 5, 12, 22, 4, 28, 27, 7, 6, 18, 2, 15, 13, 14, 19, 33, 29, 26, 9, 3, 8] # 生成所有可能的5个数的组合 all_combinations = list(itertools.combinations(numbers, 5)) # 筛选符合条件的组合:和值在88到108之间 valid_combinations = [ combo for combo in all_combinations if 88 <= sum(combo) <= 108 ] # 进一步筛选:奇偶比为3:2(3个奇数,2个偶数) final_combinations = [ combo for combo in valid_combinations if len([num for num in combo if num % 2 != 0]) == 3 and len([num for num in combo if num % 2 == 0]) == 2 ] # 随机选择10组,如果final_combinations少于10组,就全选 selected_groups = random.sample(final_combinations, min(10, len(final_combinations))) # 输出结果 for i, group in enumerate(selected_groups, start=1): print(f"组 {i}: {group}, 总和值: {sum(group)}")

示例数据为大乐透第一套号码排列

江东旭侯Python组号代码

正在运行程序...

组 1: (31, 1, 12, 22, 33), 总和值: 99

组 2: (16, 17, 27, 26, 9), 总和值: 95

组 3: (31, 16, 18, 33, 3), 总和值: 101

组 4: (17, 14, 29, 26, 9), 总和值: 95

组 5: (17, 12, 28, 13, 33), 总和值: 103

组 6: (31, 22, 28, 15, 9), 总和值: 105

组 7: (28, 27, 6, 33, 3), 总和值: 97

组 8: (34, 27, 7, 18, 13), 总和值: 99

组 9: (31, 22, 18, 19, 3), 总和值: 93

组 10: (17, 34, 13, 26, 9), 总和值: 99

程序运行结束。

大乐透组号

如果需要按照号码概率可添加以下内容到代码中间:

# 定义前几个号码的权重,高频的号码权重高 weights = { 31: 10, # 比如31出现频率高 1: 10, 16: 10, 17: 10, 34: 10, 5: 5, 12: 5, 22: 5, 4: 2, 28: 2, 27: 2, 7: 2, 6: 2, 18: 2, 2: 1, 15: 1, 13: 1, 14: 1, 19: 1, 33: 1, 29: 1, 26: 1, 9: 1, 3: 1, 8: 1, } # 根据权重生成号码列表 weighted_numbers = [] for number in numbers: weighted_numbers.extend([number] * weights[number])
0 阅读:43