贪心算法1(python)

贪心法就是遵循某种规则,不断贪心地选取当前最优策略的算法设计方法。

V=[1,5,10,50,100,500]#钱的面值
#C=[3,2,1,3,0,2]#对应钱的数量,1元的3个;5元的2个;10元的1个;依次类推
C=[300,200,100,300,100,200]#
A=640

def solve(A):
    print(A)
    ans=0
    for i in range(5,-1,-1):
        t=min(A//V[i],C[i])#使用硬币i的枚数
        print(t)
        A=A-t*V[i]
        ans+=t
    print(A)
    print('用的总硬币数为%d枚!!!'%ans)
solve(A)


贪心算法是一种解决实际问题的常用方法,也可用于解决TSP问题。在TSP问题中,贪心算法的思路是每次选择当前看来最好的选择,而不考虑整体最优解。具体来说,在TSP问题中,贪心算法可以按以下步骤实现: 1. 使用直角坐标系表示各个城市的位置,其中起点为(0, 0)。并计算出所有点到点之间的距离数组,称为map。 2. 从起点(0, 0)出发,选择距离最近的城市作为下一个要访问的城市。 3. 从该城市出发,再选择距离最近的未访问城市作为下一个要访问的城市。重复该步骤,直到访问完所有的城市。 4. 返回起点,完成一次遍历。这就是贪心算法在TSP问题中的一种实现。 通过这种贪心算法实现,可以得到一个近似的最优解,但不能保证得到整体最优解。需要注意的是,贪心算法的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。 以上就是使用贪心算法解决TSP问题的一种python实现方法。其他解决TSP问题的方法还包括动态规划算法、分支限界法、蚁群算法、遗传算法、A*等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [用Python解决TSP问题(1)——贪心算法](https://blog.csdn.net/h9f3d3/article/details/80806699)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [TSP(旅行商问题) 贪心、爬山、退火算法的python解决方案](https://blog.csdn.net/zw17302560727/article/details/122304577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值