dict是字母出现的概率字典
alphabet_append是已经出现的二十组数组
alphabet_list 存放模拟数组
从模拟数组中去除对应比例的字符 然后随机选取字符即是预测的结果
import random
## 计算概率 可以使用公式也可使用穷举法(计算机擅长于穷举)
# 字母出现的概率和为100
# 需要70个字母序列
# 100 -> 100*70 = 7000
# 按比例去除前六十个已经出现的字母 然后预测剩下的十个字母
# 字母出现的概率 可以重新设置或添加
dict = {'A':24.6, 'B':24.6, 'C':24.6, 'D':7.7, 'E':7.7, 'F':5.0, 'G':3.6, 'H':2.2}
# 用于存放随机模拟的数组
alphabet_list = []
# 生成alphabet_list数组
for key,value in dict.items():
for i in range(int(value*70)):
alphabet_list.append(key)
# print(len(alphabet_list))
# print(alphabet_list)
# 输入二十组字母(已经出现)可进行修改
alphabet_append =['C','A','A','G','B','A','C','C','D','C',
'C','B','C','A','C','C','D','A','A','B',
'D','A','E','H','F','B','B','D','A','C',
'A','A','B','E','A','B','G','E','E','B',
'B','B','A','A','F','A','A','G','A','B',
'C','C','A','D','C','B','B','A','A','G']
# 去模拟数组里面把出现过的字母 按比例剔除
for i in range(len(alphabet_append)):
for u in range(100):
try:
alphabet_list.remove(alphabet_append[i])
except:
pass
#从模拟随机数组中 生成概率结果
results_list = []
for j in range(10):
add_alphabet = random.choice(alphabet_list)
results_list.append(add_alphabet)
print("输出预测的10组字母顺序:")
print(results_list)