用于处理彩票的大数据算法
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.7 KiB

import numpy
# 字典排序
def dict_sort(_dict, _sort_by='key', _reverse=False):
if _sort_by == 'key':
_result = sorted(_dict.items(), key=lambda x: x[0], reverse=_reverse)
else:
_result = sorted(_dict.items(), key=lambda x: x[1], reverse=_reverse)
_result_dict = dict()
for r in _result:
_result_dict[r[0]] = r[1]
return _result_dict
# 计算偏差值
def get_analysis_data(_raw_dict):
total = 0
for _num in _raw_dict.values():
total += _num
average = total / len(_raw_dict.keys())
_delta_dict = dict()
for _key, _val in _raw_dict.items():
_delta_dict[_key] = round(_raw_dict[_key] - average, 2)
return _delta_dict
def print_data(_data_list):
new_data_list = [list(d.items()) for d in _data_list]
print('红球数据表:')
for i in range(len(new_data_list[0])):
print_str = f""
for data in new_data_list:
print_str += f"{data[i][0]} [{data[i][1]}]\t"
print(print_str)
def new_num(min_num, max_num, random_num):
num = {}
d = [i for i in range(min_num, max_num + 1)]
n = 100000
while n > 0:
result = numpy.random.choice(d, random_num, replace=False)
# print(sorted(r))
for r in result:
if r in num.keys():
num[r] += 1
else:
num[r] = 1
n -= 1
sorted_result = sorted(num.items(), key=lambda x: x[0])
red_result_dict = {}
for item in sorted_result:
red_result_dict[item[0]] = item[1]
# print(red_result_dict)
sorted_result_by_value = sorted(num.items(), key=lambda x: x[1], reverse=True)
# print(sorted_result_by_value)
return sorted_result_by_value