import random
from collections import Counter
def generate_sample_data():
data = []
for _ in range(100):
draw = random.sample(range(1, 81), 20)
data.append(draw)
return data
def main():
history_data =[1,8,10,16,19,25,27,32,36,39,42,44,46,47,50,54,55,75,76,79],[3,4,5,6,13,14,15,16,22,30,31,33,36,46,53,57,61,66,67,76],[7,10,12,18,27,32,34,42,46,47,48,54,58,59,61,63,73,74,75,76],[1,3,5,8,12,13,18,19,26,28,29,32,38,50,60,68,73,75,76,80],[7,9,16,20,25,27,28,30,31,43,49,51,52,56,58,60,61,62,73,76],[12,13,14,22,23,28,33,36,42,43,47,51,54,55,62,65,71,72,79,80],[11,15,17,25,27,30,31,32,36,37,41,47,50,55,60,62,65,69,71,80],[1,4,17,19,26,27,31,35,42,45,46,47,52,57,60,61,67,69,72,80],[8,11,14,21,28,29,35,37,41,42,44,47,50,55,56,59,69,73,75,80],[1,2,3,8,11,13,15,20,26,29,35,37,46,49,59,60,61,64,66,71],[3,4,7,8,19,26,31,38,39,45,51,53,56,57,59,65,68,71,74,78],[6,13,16,22,23,26,27,31,34,40,41,57,60,67,68,70,71,76,79,80],[3,6,8,18,19,25,29,30,31,32,37,39,40,42,44,55,63,66,69,77],[1,4,13,16,18,22,26,28,33,34,48,49,50,51,52,54,56,66,72,73],[7,13,20,22,27,29,30,33,34,35,36,47,63,68,70,71,72,74,75,80],[12,13,14,24,26,27,28,29,31,37,38,46,47,48,60,64,71,74,76,78],[3,6,13,14,17,19,23,28,34,38,41,43,47,55,58,62,70,73,74,80],[7,9,12,13,16,19,20,21,23,31,40,42,47,52,58,62,65,66,76,80],[1,9,16,20,21,25,27,30,32,36,37,38,40,50,52,57,66,68,75,79],[3,8,12,15,18,23,26,33,34,35,44,45,51,52,54,55,56,68,70,74],[1,7,13,17,22,23,38,40,41,45,46,52,53,60,66,68,69,70,71,78],[3,4,5,12,18,19,27,37,38,39,46,48,49,59,60,62,63,75,77,78],[1,3,9,10,15,16,20,25,30,31,37,48,50,51,54,55,60,64,68,75],[1,2,15,19,24,25,26,29,40,41,47,48,51,56,57,66,68,71,72,78],[2,3,5,6,9,26,32,33,34,35,36,39,46,49,59,65,69,72,76,80],[3,4,13,20,25,27,34,36,38,39,41,42,52,54,55,64,67,77,78,79],[11,12,13,14,16,21,22,25,26,40,45,51,55,56,58,65,67,69,72,76],[1,8,10,11,14,20,22,25,29,38,43,47,50,54,59,60,65,66,74,80],[2,3,8,10,12,13,19,26,32,38,39,43,46,48,53,55,69,76,78,80],[1,4,7,8,11,17,24,30,31,35,45,49,54,59,60,73,75,76,77,80],[1,3,5,12,15,16,18,29,30,38,41,45,47,52,53,54,57,58,63,66],[6,18,20,22,25,32,33,35,41,43,52,55,57,65,67,68,70,72,73,75],[2,5,7,13,18,25,27,30,33,35,39,40,46,48,50,56,63,65,74,76],[1,4,5,13,17,19,25,26,31,36,50,51,55,56,61,63,64,71,73,77],[1,6,12,15,25,26,28,29,30,31,32,33,34,36,47,50,55,61,73,77],[2,6,8,10,11,15,22,28,29,30,36,38,70,46,48,58,64,70,74,77]
all_numbers = [num for draw in history_data for num in draw]
number_freq = Counter(all_numbers)
most_common = number_freq.most_common(10)
hot_numbers = [num for num, _ in most_common]
cold_numbers = [num for num in range(1, 81) if number_freq[num] == min(number_freq.values())]
predicted = set()
predicted.update(hot_numbers[:7])
predicted.update(random.sample(cold_numbers, min(4, len(cold_numbers))))
while len(predicted) < 10:
predicted.add(random.randint(1, 80))
print("===== 快乐8数据分析 =====")
print(f"分析期数: {len(history_data)}期")
print("\n【热号 TOP10】")
for num, count in most_common:
print(f"号码 {num:2d}: 出现 {count}次")
print("\n【冷号】")
print(f"出现最少的号码: {min(number_freq.values())}次")
print(f"冷号列表: {cold_numbers[:10]}{'...' if len(cold_numbers)>10 else ''}")
print("\n【下次预测号码】")
print(sorted(predicted))
print("="*30)
if __name__ == "__main__":
main()