微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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)

原文地址:https://www.jb51.cc/wenti/3284240.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐