算法教给我的人生道理-贪婪算法

在有些情况下,完美是优秀的敌人

最近在自学《算法图解》,真是一本很棒的入门书,更是教给我一些人生道理。
背包问题提到了贪婪算法,当背包能拿的东西有限时,就优先拿能装进背包的价值最大的那个就好了。尽管不一定是最优解,却是个优秀的近似解。顿时豁然开朗。
“在有些情况下,完美是优秀的敌人。有时候,你只需找到一个能够大致解决问题的算法,此时贪婪算法正好可派上用场,因为它们实现起来很容易,得到的结果又与正确结果相当接近。”真是点醒了人生。

案例介绍

假设你是个贪婪的小偷,背着可装35磅(1磅≈0.45千克)重东西的背包,在商场伺机盗窃各种可装入背包的商品。你力图往背包中装入价值最高的商品,你会使用哪种算法呢?同样,你采取贪婪策略,这非常简单。
(1) 盗窃可装入背包的最贵商品。
(2) 再盗窃还可装入背包的最贵商品,以此类推。
只是这次这种贪婪策略不好使了!例如,你可盗窃的商品有下面三种。

你的背包可装35磅的东西。音响最贵,你把它给偷了,但背包没有空间装其他东西了。

你偷到了价值3000美元的东西。且慢!如果不是偷音响,而是偷笔记本电脑和吉他,总价将为3500美元!

在这里,贪婪策略显然不能获得最优解,但非常接近。不过小偷去购物中心行窃时,不会强求所偷东西的总价最高,只要差不多就行了。

[1]: 《算法图解》, [美] Aditya Bhargava, 译者: 袁国忠.

算法教给我的人生道理-贪婪算法相关推荐

  1. 《都挺好》告诉我们:这些人生道理,每个人都必须要懂

    <都挺好>告诉我们:这些人生道理,每个人都必须要懂 生活皆是苦,唯有靠自渡 .人生从来没有救世主,即便是亲生父母都可能有万中之一的苏母,就更不用奢望运气的辅助.当你不幸拿到了一把烂牌,是悲 ...

  2. vcfab算法示例_用示例解释贪婪算法

    vcfab算法示例 什么是贪心算法? (What is a greedy algorithm?) You may have heard about a lot of algorithmic desig ...

  3. 一直刷不动算法题,怀疑人生?试试五毒掌法!

    大家好,我是若川.持续组织了近一年的源码共读活动,感兴趣的可以 加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列& ...

  4. 宫崎骏用动漫教给我们的人生哲理,每一句都能说到心里[转]

    中秋佳节,借花献佛,送给以心灵的粮食. 作者:童燕群 | 发布日期:八月 24, 2013   引导语:那些触动心弦的台词,那些感动灵魂的画面,那些照亮前行方向哲理,那些陪伴我们成长的童话--让我们一 ...

  5. “三十多岁的你想告诉二十多岁的我什么人生道理?”

    贺嘉老师是我的好朋友.他是CEO演讲教练,曾经为长江商学院CEO班授课,也辅导过明星柳岩.邹市明等,全网粉丝100万+. 今天,我邀请了贺嘉老师为我们分享:三十岁后,关于职业发展,他的四点感触. 不管 ...

  6. codeforces算法题和男人人生三禁忌

    文章目录 Educational Codeforces Round 89C. Palindromic Paths 题目链接 题意 三禁忌 题解 AC代码 Educational Codeforces ...

  7. 转自B站 真希望我在20岁就懂得的10个人生道理 主讲:王魄

    视频地址:https://www.bilibili.com/video/av65194244?from=search&seid=15261178568916939794 这位阿姨讲得还行,特别 ...

  8. 我的世界java版不会玩_我的世界:五张MC趣图,Java版玩家永远不懂基岩版玩家的痛...

    <我的世界>1.17版本目前已经更新了8个快照版本,在玩家的期望中,Mojang总算是加入了新的洞穴--噪声洞穴(Noise Caves).虽然这属于洞穴与山崖更新的一大步,Java版玩家 ...

  9. 人生算法——读书笔记

    跨越出生和运气,实现富足和自由 用概率思维做好决策. 人生算法九段.广义而言大自然有两个重要的算法,一个是进化,一个是大脑 现实中我们虽然拼命思考,但是极少思考自己的思考. 围绕认知的飞轮,搭建认知演 ...

  10. 判断大小简单算法_优化 | 贪婪算法有多好?Submodularity告诉你

    文章作者:乔杰 责任编辑:苏向阳 本文转载自知乎专栏 贪婪算法有多好?Submodularity告诉你 原文链接:https://zhuanlan.zhihu.com/p/52512602 文章发表于 ...

最新文章

  1. LoadRunner11录制脚本出现的问题
  2. 树莓派 安装中文字体、中文输入法fcitx和googlepinyin输入法
  3. 二次优化问题dfp_优化设计-fmincon函数介绍-序列二次的规划(SQP)-subspacetrustregion-activesett.pdf...
  4. 【arduino】不做不死系列,用arduino玩CyberPi童芯派之helloworld点灯
  5. 微型计算机性能指标中可靠性是指连续,计算机接口原理定义
  6. python播放wav文件_python3 写一个WAV音频文件播放器的代码
  7. 算法 --- 记一道面试dp算法题
  8. WebService学习笔记---CXF入门
  9. sql 按时间二段排序
  10. Linux 常用命令
  11. Python 薪资降温?不存在的
  12. Java学习之文件操作
  13. MSP430杂谈--时钟资源UCS的配置
  14. java 提交界面_使用javascript如何实现页面加载时自动提交表单
  15. 面试问题(工作动机、个人愿望 )
  16. python视频人脸识别教程_Python学习笔记之视频人脸检测识别实例教程
  17. python---post请求时其中dict中套有json
  18. c语言荷兰国旗问题算法,荷兰国旗问题
  19. 安卓原生系统_安卓原生系统为什么比MIUI和EMUI等国产系统更流畅
  20. ChineseWiki︱百万中文维基百科词条下载与整理

热门文章

  1. 【CUDA 基础】4.3 内存访问模式
  2. 在线python编程网页-手把手教你用Python写一个在线网站,这真的很装逼!
  3. 解决:当笔记本连接WIFi,电脑可以打开QQ等,但是不能打开网页,显示DNS错误
  4. 程序员转公务员之Hello World
  5. 软件开发工具的使用与开发
  6. 用户权限---u+s\g+s\o+t三个特殊权限说明
  7. Python数据可视化的例子——折线图(line)
  8. 数据库实验系列之1数据库及数据库中表等数据库对象的建立实验(包括关系图、完整性、权限控制、视图、索引等内容)
  9. mysql1026_mysql 启动错误1026
  10. Linux用户宝典:值得一用的5款远程桌面应用程序