例題1 百錢百雞問題
我國古代數學家張丘建在《算經》一書中提出的數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?
"""
演算法分析:通過2個迴圈來窮舉可以優化迴圈次數,利用一共100隻雞的總數可以優化**
@author: songdaiyu
"""# cock表示公雞 hen表示母雞 chicken表示小雞
# 由於公雞5錢,範圍最大20
for cock in range(0,20):
# 由於母雞3錢,範圍最大33
for hen in range(0,33):
# 由於一共100隻雞,小雞數量等於100-公雞數-母雞數
chicken = 100 - cock - hen
# 利用**為100列等式
if 5 * cock + 3 * hen + chicken/3 == 100:
print("公雞買了%d只,母雞買了%d只,小雞買了%d只" %(cock, hen ,chicken))
例題2 猴子爬山問題
乙隻頑猴在一座有50級台階的小山上爬山跳躍。上山時需從山腳至山頂往上跳50級台階,一步可跳1級,或跳2級,或跳3級,求上山有多少種不同的跳法?
"""
演算法分析:
猴子爬山問題規律: n 表示台階,method代表方法
n=1 method=1
n=2 method=2
n=3 method=4
n>3 method=method(n-1)+method(n-2)+method(n-3)
@author: songdaiyu
"""# 2.遞迴執行時間較長,空間利用率高;遞推浪費空間較多,執行時間快
# 遞推法
# methods陣列存放方法數量
methods=
# 進行迴圈,由於只有20級樓梯,所以迴圈次數不用太多
for i in range(1,21):
# 根據規律遞推,放入陣列
if i==1:
elif i == 2:
elif i == 3:
else:
# 通過迴圈得到20級台階方法數量
for i in range(1,21):
if i==20:
print('台階數為20時,方法數為 %d' %(methods[i-1]))
第二週專案4 窮舉法解決組合問題
2015,煙台大學計算機與控制工程學院 all rightreserved.檔名稱 test.cpp 作 者 張明宇 完成日期 2016年3月22日 問題及 領會窮舉法 意為 窮舉式列舉 也稱列舉 的思想,然後自行選題進行解決,掌握這種程式設計的一般方法。1 百錢白雞問題 中國古代數學家張丘建在他的...
窮舉法破解密碼 遞迴 多層for迴圈
題目要求 1.生成乙個長度是3的隨機字串,把這個字串作為當做密碼 2.使用窮舉法生成長度是3個字串,匹配上述生成的密碼 要求 分別使用多層for迴圈 和 遞迴解決上述問題 1 首先用遞迴來實現 public static void guessnum char c,int index,string p...
第二次上機實踐專案 專案4 窮舉法
問題及 檔名稱 個人所得稅計算器 完成日期 2016.3.12 問題描述 中國古代數學家張丘在他的 算經 中提出了註明的百禽買白雞的問題,雞翁一值錢五,雞母一,之前三,雞雛三,值錢一,問翁,母,雛各幾何?輸入描述 無 程式輸出 輸出雞翁雞母,雞雛的個數 知識點總結 這是一種求解不定方程的題目,會牽扯...