摘要: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):
以上内容 仅供娱乐
来源:江东旭侯一点号