我有一个N个元素的数组(表示给定字母表的N个字母),并且数组的每个单元格都包含一个整数值,该整数值表示该字母的给定文本中出现的次数.现在我想根据给定约束的出现次数随机选择字母表中所有字母的字母:
如果字母具有正(非零)值,那么它总是可以由算法选择(当然,概率更大或更小).
如果字母A的值高于字母B,则必须更可能由算法选择.
现在,考虑到这一点,我想出了一个可以完成这项工作的简单算法,但我只是想知道是否有更好的事情要做.这似乎是非常基础的,我认为可能有更聪明的事情要做,以便更有效地实现这一目标.这是我想的算法:
那么,还有比这更好的事情吗?我错过了什么吗?
我知道大多数现代计算机可以如此快速地计算这个,我甚至不会注意到我的算法是否效率低,所以这更像是一个理论问题而不是实际问题.
我更喜欢解释的算法,而不仅仅是答案的代码,但如果您更愿意在代码中提供答案,我对此没有任何问题.