《python資料結構與演算法》一書中有無限猴子定理一題,問題如下:
蒐集網上**,除錯如下:
import random
num =
1000
char_list =
[chr
(c+ord
('a'))
for c in
range(26
)]# 返回c+ord('a')對應的ascii碼,a~z
' ')
# 新增空格 該列表內的字元一共有27個
target_list =
'hwnzy is a handsome boy'
#生成指定長度的隨機字串
deffun1()
: temp_list =
for index in
range(27
):0,
26)])
# temp_list.insert(index, char_list[random.randint(0, 26)])
return
''.join(temp_list)
# 將temp_list 內的元素以指定的字元(分隔符)連線,這裡為空,不是空格
# 將隨機生成的字串與目標字串進行比較,給出相似度
deffun2
(temp_list)
: score =
0for index in
range
(len
(target_list)):
if target_list[index]
== temp_list[index]
: score +=
1return score
#重複多次給出相似度最高的字串
deffun3
(times)
: best_score =
0 best_time =
0 best_list =
for index in
range
(times)
: temp_list = fun1(
) score = fun2(temp_list)
if score > best_score:
best_score = score
best_time = index
best_list = temp_list
print
('%dth similarity is %.3f'
%(index+
1, score/
len(target_list)))
print
("the best similarity is %dth %.3f"
%(best_time, best_score/
len(target_list)))
print
(best_list)
if __name__ ==
'__main__'
:# 當.py檔案被直接執行時,if __name__ == '__main__'之下的**塊將被執行;
# 當.py檔案以模組形式被匯入時,if __name__ == '__main__'之下的**塊不被執行。
fun3(num)
執行結果:
# 省略前邊1-992的結果
993th similarity is
0.000
994th similarity is
0.087
995th similarity is
0.087
996th similarity is
0.043
997th similarity is
0.000
998th similarity is
0.000
999th similarity is
0.000
1000th similarity is
0.043
the best similarity is 46th 0.174
python開啟檔案 如何用Python讀寫檔案
前面我們已經介紹了很多python相關的基礎知識,大家是不是對python已經有了進一步認識了呢?作為人工智慧時代的熱門程式語言,開始接觸並學習python的孩子越來越多,家長們都不想讓自己的孩子落於人後,近期前來找陳老師諮詢相關課程的人不少。今天和大家說說如何用python操作乙個檔案的內容,一起...
python拆分 如何用Python進行片語拆分?
可以先split 做好特殊字元標記,儲存到臨時變數裡面,比如,元組,陣列,或者字典之類的 再遍歷上面的變數,拆分括號,用乙個特殊標記,標記括號裡面的內容,總之找到區分括號和非括號內容就可以,之後儲存到變數 最後遍歷第二個變數,生成句型 抱歉最近精神狀態不太好,又比較忙,今天大概寫了下,應該沒有啥問題...
python實現多型 如何用python實現多型性
建立乙個名為 func 的函式,它將獲取乙個我們將其命名為 obj 的物件。雖然我們使用的名稱是 obj 但是任何例項化的物件都可以被呼叫到這個函式中。用函式實現多型性 class india def capital self print new delhi is the capital of in...