一个朋友要的Python快乐8统计代码:
from collections import Counter
from itertools import combinations
import random
# 历史数据(从上到下,最下面为最新一期)
red_balls_history = [
[1, 5, 19, 22, 28, 30, 34, 37, 38, 40, 41, 44, 48, 50, 51, 54, 59, 74, 75, 80],
[2, 3, 6, 8, 9, 20, 26, 27, 29, 35, 52, 57, 64, 67, 73, 74, 75, 76, 79, 80],
[2, 5, 7, 8, 11, 13, 15, 16, 20, 31, 32, 33, 41, 43, 52, 62, 70, 71, 72, 73],
[1, 4, 17, 18, 21, 22, 23, 24, 25, 30, 41, 47, 48, 50, 54, 55, 56, 57, 62, 78],
[6, 10, 12, 14, 16, 21, 24, 38, 39, 40, 46, 48, 52, 58, 61, 69, 71, 74, 75, 77]
]
def analyze_happy8(periods=0, combo_size=2, top_n=16):
"""
快乐8数据分析增强版
:param periods: 统计期数(0=全部历史数据)
:param combo_size: 组合维度(2/3/5)
:param top_n: 显示高频组合数量
"""
# 1. 数据切片处理(倒序取最新数据)
valid_data = red_balls_history[-periods:] if periods > 0 else red_balls_history
# 2. 号码频率统计
all_balls = [ball for data in valid_data for ball in data]
freq_counts = Counter(all_balls)
top_numbers = [num for num, _ in freq_counts.most_common(35)]
# 3. 组合频率统计
combo_counter = Counter()
for data in valid_data:
# 排序保证组合一致性(避免(1,2)和(2,1)被识别为不同组合)
sorted_data = sorted(data)
for combo in combinations(sorted_data, combo_size):
combo_counter[combo] += 1
# 4. 结果输出
print(f"\n【快乐8分析报告】")
print(f"统计期数: {len(valid_data)}期 | 组合维度: {combo_size}码")
print("-" * 40)
print(f"\n★ 热门号码TOP35:")
print(sorted(top_numbers))
print(f"\n★ 高频{combo_size}码组合TOP{top_n}:")
for i, (combo, count) in enumerate(combo_counter.most_common(top_n), 1):
print(f"{i:2d}. {combo} - 出现 {count} 次")
print("\n★ 随机5码组合(基于热门35码):")
for i in range(1, 6):
print(f"组合{i}: {sorted(random.sample(top_numbers, 5))}")
# 使用示例(取消注释需要运行的配置)
# analyze_happy8() # 默认:全历史数据 + 两码组合
analyze_happy8(periods=20, combo_size=3) # 最近20期 + 三码组合
# analyze_happy8(periods=50, combo_size=5) # 最近50期 + 五码组合

快乐8统计代码
输出结果【快乐8分析报告】
统计期数: 20期 | 组合维度: 3码
----------------------------------------
★ 热门号码TOP35:
[1, 2, 3, 4, 5, 8, 13, 14, 16, 19, 20, 21, 22, 25, 27, 30, 31, 37, 38, 40, 42, 43, 47, 48, 50, 52, 56, 57, 62, 63, 69, 72, 74, 75, 80]
★ 高频3码组合TOP16:
1. (3, 46, 48) - 出现 4 次
2. (2, 8, 52) - 出现 4 次
3. (4, 8, 30) - 出现 3 次
4. (4, 17, 30) - 出现 3 次
5. (4, 17, 57) - 出现 3 次
6. (4, 21, 50) - 出现 3 次
7. (4, 27, 38) - 出现 3 次
8. (4, 27, 43) - 出现 3 次
9. (4, 30, 57) - 出现 3 次
10. (4, 35, 52) - 出现 3 次
11. (4, 38, 79) - 出现 3 次
12. (4, 50, 52) - 出现 3 次
13. (8, 13, 52) - 出现 3 次
14. (8, 17, 27) - 出现 3 次
15. (8, 27, 57) - 出现 3 次
16. (8, 27, 80) - 出现 3 次
★ 随机5码组合(基于热门35码):
组合1: [19, 22, 27, 74, 80]
组合2: [2, 5, 8, 27, 57]
组合3: [16, 50, 52, 63, 74]
组合4: [20, 22, 50, 57, 69]
组合5: [16, 20, 47, 48, 57]
最近二十期快乐8热门号码随机:
组合 1: [75, 63, 30, 40, 80]
组合 2: [63, 48, 74, 19, 40]
组合 3: [14, 31, 37, 19, 80]
组合 4: [37, 57, 52, 56, 42]
组合 5: [75, 25, 52, 43, 30]
组合 6: [72, 37, 38, 22, 56]
组合 7: [69, 74, 63, 3, 27]
组合 8: [13, 69, 22, 63, 48]
组合 9: [38, 80, 5, 56, 14]
组合 10: [50, 13, 30, 75, 25]
快乐8高频号码: [4, 48, 75, 21, 38, 50, 52, 3, 8, 80, 19, 47, 2, 14, 13, 27, 30, 57, 5, 20, 42, 62, 69, 37, 63, 25, 40, 56, 16, 1, 31, 43, 72, 74, 22]
快乐8近期两码组合同出排行:
(4, 38) 5 次
(4, 50) 5 次
(8, 52) 5 次
(3, 27) 5 次
(21, 47) 5 次
(3, 48) 5 次
(4, 48) 5 次
(14, 48) 5 次
(38, 48) 5 次
(4, 56) 5 次
(2, 8) 5 次
(2, 52) 5 次
(1, 50) 5 次
(4, 27) 4 次
(4, 30) 4 次
(4, 52) 4 次
快乐8近20期5码组合同出排行:
(4, 8, 27, 30, 43) 2 次
(4, 8, 27, 30, 57) 2 次
(4, 8, 27, 43, 57) 2 次
(4, 8, 30, 38, 52) 2 次
(4, 8, 30, 43, 57) 2 次
(4, 21, 30, 50, 57) 2 次
(4, 27, 30, 43, 57) 2 次
(4, 27, 38, 43, 80) 2 次
(8, 13, 31, 43, 52) 2 次
(8, 13, 31, 43, 72) 2 次
(8, 13, 31, 52, 72) 2 次
(8, 13, 43, 52, 72) 2 次
(8, 27, 30, 43, 57) 2 次
(8, 27, 52, 57, 80) 2 次
(8, 31, 43, 52, 72) 2 次
(13, 21, 31, 38, 57) 2 次