javascript - Javascript 中的文字游戏

标签 javascript algorithm

对于文字游戏来说,往往是英文词汇中字母出现的频率,而不考虑词频,这个比较有趣。

 1. >E  11.1607%    56.88   M   3.0129%     15.36
 2.  A  8.4966%     43.31   H   3.0034%     15.31
 3.  R  7.5809%     38.64   G   2.4705%     12.59
 4.  I  7.5448%     38.45   B   2.0720%     10.56
 5.  O  7.1635%     36.51   F   1.8121%     9.24
 6.  T  6.9509%     35.43   Y   1.7779%     9.06
 7.  N  6.6544%     33.92   W   1.2899%     6.57
 8.  S  5.7351%     29.23   K   1.1016%     5.61
 9.  L  5.4893%     27.98   V   1.0074%     5.13
 10. C  4.5388%     23.13   X   0.2902%     1.48
 11. U  3.6308%     18.51   Z   0.2722%     1.39
 12. D  3.3844%     17.25   J   0.1965%     1.00
 13. P  3.1671%     16.14   Q   0.1962%     (1) <-

第三列表示比例,将最不常见的字母 (q) 取为 1。字母 E 在构成单个英语单词时比 Q 多出 56 倍以上。

javascript 怎么可能构建一个算法,如果我生成 100 个字母,那么其中的 11-12%,即 11-12 个字母将是 E 等等。

最佳答案

这是一个算法:

  1. 将范围 [0, 1) 拆分为间隔,每个间隔都匹配一个字母并且大小与其概率成正比。例如

    0 - 0.116: 电子 0.116 - 0.201:一个 ……

  2. 获取0到1之间的随机数
  3. 选择包含这个数字的区间
  4. 获取关联的字母

关于javascript - Javascript 中的文字游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24986020/

相关文章:

javascript - 如何从cropper js获取裁剪后的图像?

javascript - 在其他元素之上打开元素

javascript - JQuery 和 HTML5 音频进度条不起作用

javascript - 从 Pipes、Angular 2 提供的输入读取数据

perl - 如何使用替换矩阵修改 Smith-Waterman 算法以比对 Perl 中的蛋白质?

javascript - jQuery if/else 条件在 js.erb 文件中无法正常工作

algorithm - 为什么 {x <= 10 ^ x < 10} 简化为 {x < 10} 而不是 Hoare 逻辑中的 {x <= 10}?

algorithm - 为什么在 heapify 中 siftDown 比 siftUp 好?

c++ - 找到两个整数,使得它们的乘积接近给定的实数

c++ - 实现哈希表