私はuser166390の提案に基づいて解決策をまとめました。あなたが見る頻度は、Wikipediaから取った英語のものです。プログラムを数回実行して結果を確認するだけで、彼らは私にはかなり遊び心があります。私は一般的に、少なくとも4文字または5文字の単語を見つけることができますし、ゲームではあまりよくありません!とにかく、ここでのコードだ:
#!/usr/bin/env python
from random import random
from bisect import bisect_left
letters = [c for c in "abcdefghijklmnopqrstuvwxyz"]
frequencies = [8.167, 1.492, 2.782, 4.253, 12.702, 2.228, 2.015, 6.094, 6.966,
0.153, 0.772, 4.025, 2.406, 6.749, 7.507, 1.929, 0.095, 5.987,
6.327, 9.056, 2.758, 0.978, 2.360, 0.150, 1.974, 0.074]
cumulative_frequencies = [sum(frequencies[0:i+1]) for i in xrange(len(frequencies))]
for i in xrange(5):
line = ""
for j in xrange(5):
line += letters[bisect_left(cumulative_frequencies, random() * cumulative_frequencies[-1])] + " "
print line
アイデアは、与えられた周波数に比例した確率でランダムにそれを選択するroulette wheel algorithmを使用して、各文字を生成するために、です。
[文字のヒストグラム](http://www.google.com/?q=english%20letter%20ヒストグラム)に続いて「ちょうど」ランダムであれば驚かないでしょう)言葉。同様に、赤いタイルは単なるランダムです。もちろん、ソースコードを調べたり、他のいくつかの洞察力を持ったり、生成されたボードを分析したりして、より多くのことを述べなければなりません。時にはrandomが!@#$ですが、アルゴリズムのほうがdigram biasでオッズを知っているかもしれません。 –