zoukankan      html  css  js  c++  java
  • 贪婪法

    贪婪法,也叫贪心算法,用于求问题的最优解。而此问题的解决是由一系列阶段组成。

    贪婪法在求解过程的每一个阶段都选取一个在该阶段看似最优的解,然后把每一个阶段的结果合并起来形成一个全局解。

    贪婪法并不是对所有问题都能得到最优解

    在日常生活中,经常用贪婪法来寻求问题 的解。

    如如何把孩子培养成为一个优秀的人才就是一个求最优解的问题,很多家长采用的就是贪婪法:在孩子成长的每一个阶段都让他接受最好的教育。

    //贪婪法货币找零
    #include <iostream>
    
    using namespace std;
    
    const int ONEFEN = 1;
    const int TWOFEN = 2;
    const int FIVEFEN = 5;
    const int ONEJIAO = 10;
    
    int main()
    {
        int money;
        int onefen = 0, twofen = 0, fivefen = 0, onejiao = 0;
    
        cout << "输入要找零的钱(以分为单位):";
        cin >> money;
    
        if (money >= ONEJIAO)
        {
            onejiao = money / ONEJIAO;
            money %= ONEJIAO;
        }
        if (money >= FIVEFEN)
        {
            fivefen = 1;
            money -= FIVEFEN;
        }
        if (money >= TWOFEN)
        {
            twofen = money / TWOFEN;
            money %= TWOFEN;
        }
        if (money >= ONEFEN)
        {
            onefen = 1;
        }
        
        cout << "1角硬币数:" << onejiao << endl;
        cout << "5分硬币数:" << fivefen << endl;
        cout << "2分硬币数:" << twofen << endl;
        cout << "1分硬币数:" << onefen << endl;
    
    
        cin.ignore();
        cin.get();
        return 0;
    
    }
    //贪婪法组合最大三位数
    #include <iostream>
    
    using namespace std;
    
    
    
    int main()
    {
    
        int num = 0, max = 10, current;
    
        for (int digit = 100;digit > 0;digit /= 10)                    //100,10,1三个循环,
                                                                       //每次循环,都是寻找剩余元素中的最大值
        {
            current = 0;
            for (int n : {5, 6, 2, 8, 9, 3,7,1})
            {
                if (n > current&&n < max) current = n;
            }
            num += digit*current;
            max = current;                                             //注意这里的max,if里面的判断语句保证了寻找的是剩余的最大值
        }
        cout << num << endl;
        cin.ignore();
        cin.get();
        return 0;
    
    }
  • 相关阅读:
    [转]Angular4首页加载慢优化之路
    [转]angular 禁止缓存
    微服务之分布式跟踪系统(springboot+pinpoint)
    分布式追踪系统设计与实现
    QLExpress 规则引擎使用介绍
    几个常见规则引擎的简单介绍和演示
    大数据对账
    美团配送资金安全治理之对账体系建设
    美的支付-对账系统实现
    redis实现对账(集合比较)功能
  • 原文地址:https://www.cnblogs.com/skylover/p/7110190.html
Copyright © 2011-2022 走看看