使用python穷举解决概率论的字符组预测问题

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)

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...