無限の猿定理:猿がランダムほぼ確実なウィリアム・シェイクスピアの全集として、与えられたテキストを入力し、タイプライターのキーボード上無制限の時間をキーを押します。
トピック:ランダムにどのくらい与えられた単語の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を使って問題解決」の本を読んでから来ています。