日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

3.Python算法之贪心算法思想

發布時間:2024/9/30 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.Python算法之贪心算法思想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

貪心算法

1.什么是貪心算法

2.貪心算法的特點和思路

3.貪心算法的缺點

4.貪心算法的基本思路

5.貪心算法的基本過程

6.貪心算法解決“找零”問題

6.貪心算法解決“汽車加油”問題


1.什么是貪心算法

? ? ? 貪心算法也稱為貪婪算法,它在求解問題時,總想用當前看來最好的方法來實現。這種算法思想不從整體最優上考慮問題,而僅僅考慮某種意義上的局部最優來求解問題。雖然貪心算法并不能得到所有問題的整體最優解,但是當面對范圍相當廣泛的許多問題時,能產生整體最優解或整體最優解的近似值。由此可見,貪心算法只是追求某個范圍內最優,可以成為“溫柔的貪婪”。

2.貪心算法的特點和思路

? ? ? 貪心算法從問題的某個初始值出發,逐步逼近給定的目標,以便盡快求出更好的解。當達到算法的某一步不能再繼續前進時,就停止算法,給出一個近似解。

3.貪心算法的缺點

  • 不能保證最后的解是最優的。
  • 不能用來求最大解或最小解問題
  • 只能求滿足某些約束條件的可行解的范圍
  • 4.貪心算法的基本思路

  • 建立數學模型來描述問題
  • 把求解的問題分成若干個子問題。
  • 對每一個子問題求解,得到子問題的局部最優解。
  • 把子問題的局部最優解合并成原來問題的一個解
  • 5.貪心算法的基本過程

  • 從問題的某一初始解出發
  • while能向給定總目標前進一步
  • 求出可行解得一個解元素。
  • 由所有解元素組合成問題的一個可行解
  • 6.貪心算法解決“找零”問題

    ? ? ?假設只有1分、2分、5分、1角、2角、5角、1元面值的硬幣。在超市結賬,如果需要找零錢,收銀員希望將最少的硬幣數找給顧客,那么,給定需要找的零錢數目,如何求得最少的硬幣數呢?

    def main():# 存儲各種硬幣的面值coin_face_value = [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1.0]# 存儲每種硬幣的數量coin_num = []# 擁有的零錢總和coin_total_sum = 0temp = input("請輸入每種零錢的數量:") # 12 11 11 11 11 11 11temp_list = temp.split(' ')for i in range(0, len(temp_list)):coin_num.append(int(temp_list[i]))# 用每種硬幣的數量乘以面值,再累計求和coin_total_sum += coin_num[i] * coin_face_value[i]give_change = float(input("請輸入需要找的零錢:"))if give_change > coin_total_sum:# 當要找的零錢大于收銀員的總金額時,無法找零print("數據有錯")return 0# 收銀員的硬幣總數 - 找的零錢# coin_total_sum = coin_total_sum - give_change# 要想用的硬幣數量最少,需要利用所有大面值的硬幣,因此從數組的大面值的元素開始遍歷i = len(coin_face_value) - 1while i >= 0:if give_change >= coin_face_value[i]:# 需要的硬幣個數need_coin_number = int(give_change / coin_face_value[i])if need_coin_number >= coin_num[i]:need_coin_number = coin_num[i] # 更新需要的硬幣個數# 零錢總和減去已經找掉的零錢give_change -= need_coin_number * coin_face_value[i]print("用了%d個%.2f枚硬幣" % (need_coin_number, coin_face_value[i]))i -= 1if __name__ == '__main__':main()

    執行后,首先輸入擁有的硬幣個數,然后輸入需要找零的金額,例如 1.6,就會有找零的方案?

    程序運行結果:

    6.貪心算法解決“汽車加油”問題

    ? ? 持續更新

    總結

    以上是生活随笔為你收集整理的3.Python算法之贪心算法思想的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。