無限の猿定理

無限の猿定理:猿がランダムほぼ確実なウィリアム・シェイクスピアの全集として、与えられたテキストを入力し、タイプライターのキーボード上無制限の時間をキーを押します。


 

トピック:ランダムにどのくらい与えられた単語のpythonで生成された、猿としてのpythonを使用。シミュレーション方法は以下のとおりです。

第一の機能:指定された長さのランダムな文字列を生成します。

第二の機能:ランダムに生成された文字列が類似性を考えると、ターゲット文字列と比較されます。

第三の関数:最も高い類似度を数回繰り返した後、文字列が与えられます。

次のように現在書かれた手順は以下のとおりです。

輸入ランダム

NUM = 1000 
char_list = CHR(C + ORD(' A '))のために C 範囲(26 )]
char_list.append('  ' 
target_list = hwnzyはハンサムな男の子です


デフFUN1():
    temp_list = []
     のためのインデックス範囲(27 ):
        temp_list.append(char_list [random.randint(0、 26 )])
     戻り '' .join(temp_list)


デフfun2(temp_list):
    スコア = 0
     のためのインデックス:範囲(LEN(target_list))
         もし target_list [インデックス] == temp_list [インデックス]:
            スコア + = 1つの
     戻りスコア


デフfun3(回):
    best_score = -1 
    best_time = -1 
    best_list = []
     のためのインデックス範囲(時間):
        temp_list = FUN1()
        スコア = fun2(temp_list)
         であればスコア> best_score:
            best_score = スコア
            best_time = インデックス
            best_list = temp_listの
         印刷' %量dTH類似性%.3fある'%(インデックス+ 1、スコア/ LEN(target_list)))
     プリント" 最良の類似性は.3f%でのDTH%である"%(best_time、best_score / LEN(target_list )))
     プリント(best_list)


もし __name__ == ' __main__ ' プリント(target_list)
    fun3(NUM)

 

コンテンツは最近、Pythonのデータ構造とアルゴリズム非常に興味深い、「アルゴリズムとデータ構造は、Pythonを使って問題解決」の本を読んでから来ています。

おすすめ

転載: www.cnblogs.com/hwnzy/p/10927681.html