我一直在考虑如何实现一些坦率地说超出我的数学技能的东西.所以在这里,随意尝试指出我正确的方向,而不是完整的代码解决方案任何帮助,我将不胜感激.
所以,想象一下,我已经对文本进行了分析,并生成了一个不同的两个字符组合的频率表.我将它们存储在26x26阵列中.例如.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A 1 15 (frequency of AA, then frequency of AB etc.)
B 12 0 (freq of BA, BB etc..)
... etc.
Run Code Online (Sandbox Code Playgroud)
所以我想随机选择这两个字符组合,但我想根据频率"权衡"我的选择.即.上面的AB应该比AA高15倍.并且,显然,选择应该永远不会返回像BB这样的东西(即频率为0 - 在这个例子中,显然BB确实出现在像Bubble !! :-)这样的单词中).对于0的情况,我意识到我可以循环,直到我得到一个非0频率,但这只是不优雅,因为我有一种感觉/直觉,有一种方法来扭曲我的平均值.
我想要选择我的第一个字符 - 即.行 - (我最终生成了4对序列)我可以使用系统随机函数(Random class.Next)然后使用'加权'随机算法来选择第二个字符.
有任何想法吗?