Python根据大乐透三套号码组合统计与出号

B站影视 电影资讯 2025-10-27 16:58 1

摘要:Python根据大乐透三套号码组合统计,按照和值区间,奇偶比,以及区间比等条件自动出号的代码

Python根据大乐透三套号码组合统计,按照和值区间,奇偶比,以及区间比等条件自动出号的代码

import random

# 统计大乐透三套前区热门号码

front_area_set1 = [9, 4, 15, 2, 26, 28, 30, 29, 7, 14, 12, 31, 32, 20, 18, 33, 22, 27, 3, 16, 21, 34, 6, 13, 19]

front_area_set2 = [34, 22, 25, 8, 12, 2, 28, 29, 9, 1, 17, 33, 20, 4, 6, 10, 3, 27, 5, 11, 15, 19, 16, 32, 31]

front_area_set3 = [11, 5, 21, 22, 14, 29, 20, 35, 27, 13, 18, 15, 19, 28, 3, 7, 10, 24, 25, 33, 8, 26, 23, 9, 12]

# 统计大乐透三套后区热门号码

统计最近三十期热门号码

back_area_set1 = [2, 3, 5, 8, 9, 11]

back_area_set2 = [1, 4, 5, 9, 10, 11]

back_area_set3 = [2, 3, 4, 7, 8, 12]

# 用户选择的号码

def select_number_sets(front_set_choice, back_set_choice):

front_sets = [front_area_set1, front_area_set2, front_area_set3]

back_sets = [back_area_set1, back_area_set2, back_area_set3]

front_area = front_sets[front_set_choice - 1]

back_area = back_sets[back_set_choice - 1]

奇偶比有好几种

return front_area, back_area

# 根据奇偶比选择号码

def select_by_odd_even_ratio(numbers, odd_count, even_count):

odd_numbers = [n for n in numbers if n % 2 != 0]

even_numbers = [n for n in numbers if n % 2 == 0]

selected_odds = random.sample(odd_numbers, odd_count)

selected_evens = random.sample(even_numbers, even_count)

江东旭侯大乐透选号代码

return selected_odds + selected_evens

# 根据区间比选择号码

def select_by_range_ratio(numbers, range_ratio):

ranges = [(1, 10), (11, 20), (21, 30), (31, 35)]

range_groups = {i: for i in range(len(ranges))}

区间比选择了四分区

for idx, (start, end) in enumerate(ranges):

if start

range_groups[idx].append(num)

selected_numbers =

for idx, count in range_ratio.items:

# 确保区间内有足够的号码

available_numbers = range_groups[idx]

if len(available_numbers)

# 如果该区间的号码数量不足,直接从其他区间填充

selected_numbers += random.sample(available_numbers, len(available_numbers))

remaining_count = count - len(available_numbers)

all_other_numbers = [num for group in range_groups.values for num in group if num not in available_numbers]

selected_numbers += random.sample(all_other_numbers, remaining_count)

else:

selected_numbers += random.sample(available_numbers, count)

选择和值范围

return selected_numbers

# 计算和值

def calculate_sum(numbers):

return sum(numbers)

# 根据和值区间筛选

def select_by_sum_range(numbers, min_sum, max_sum):

valid_combinations =

列举和值区间内的组合

# 生成所有5个号码的组合

for comb in random.sample(numbers, 5):

if min_sum

valid_combinations.append(comb)

根据前面的选择组号

return valid_combinations

# 自动生成大乐透号码

def generate_lotto_numbers(front_set_choice, back_set_choice, odd_even_ratio, range_ratio, sum_range, num_sets=5):

front_area, back_area = select_number_sets(front_set_choice, back_set_choice)

前区号码的选择与筛选

all_combinations =

for _ in range(num_sets):

# 选择前区号码

front_selected = select_by_odd_even_ratio(front_area, odd_even_ratio[0], odd_even_ratio[1])

front_selected = select_by_range_ratio(front_selected, range_ratio)

# 确保前区号码不重复

front_selected = list(set(front_selected))

确定选号范围和取值区间

# 确保前区最终是5个号码,且满足和值范围

while len(front_selected) != 5 or not (sum_range[0]

front_selected = select_by_odd_even_ratio(front_area, odd_even_ratio[0], odd_even_ratio[1])

front_selected = select_by_range_ratio(front_selected, range_ratio)

front_selected = list(set(front_selected))

front_selected_sum = calculate_sum(front_selected)

和值区间内的前区组合筛选

# 根据和值区间筛选前区组合

while not (sum_range[0]

front_selected = select_by_odd_even_ratio(front_area, odd_even_ratio[0], odd_even_ratio[1])

front_selected = select_by_range_ratio(front_selected, range_ratio)

front_selected = list(set(front_selected))

front_selected_sum = calculate_sum(front_selected)

后区号码筛选与防重

# 选择后区号码,确保后区号码不重复

back_selected = random.sample(back_area, 2)

# 确保后区号码不重复

back_selected = list(set(back_selected))

all_combinations.append({

"front": sorted(front_selected),

"back": sorted(back_selected)

})

return all_combinations

以下为配置规则可自行选择

# 配置规则

odd_even_ratio = (3, 2) # 前区奇偶比,3个奇数和2个偶数

range_ratio = {0: 2, 1: 1, 2: 1, 3: 1} # 每个区间选择的号码数量 (例如 1-10区选择2个,11-20区选择1个,等等)

sum_range = (80, 100) # 前区号码和值区间(例如:和值在100到150之间)

# 选择前区和后区号码池

front_set_choice = 1 # 选择第一套前区号码,2就是选择第二套数据

back_set_choice = 1 # 选择第一套后区号码

# 生成5组号码

generated_numbers = generate_lotto_numbers(front_set_choice, back_set_choice, odd_even_ratio, range_ratio, sum_range, num_sets=5)

# 输出结果

for idx, result in enumerate(generated_numbers):

以上内容 仅供娱乐

来源:江东旭侯一点号

相关推荐