Python使用贪婪算法解决问题


Posted in Python onOctober 22, 2019

Python使用贪婪算法解决问题

集合覆盖问题

假设你办了个广播节目,要让全美50个州的听众都收听到。为此,你需要决定在哪些广播台播出。在每个广播台播出都需要支出费用,因此你力图在尽可能少的广播台播出

1.创建一个列表,其中包含要覆盖的州

states_needed = set(["mt", "wa", "or", "id", "nv", "ut", "ca", "az"])

2.使用散列表表示可供选择的广播台清单

stations = dict() stations["kone"] = set(["id", "nv", "ut"]) stations["ktwo"] = set(["wa", "id", "mt"]) stations["kthree"] = set(["or", "nv", "ca"]) stations["kfour"] = set(["nv", "ut"]) stations["kfive"] = set(["ca", "az"])

3.使用集合来存储最终选择的广播台

final_stations = set()

4.循环

while states_needed:
  # 遍历所有的广播台,从中选择覆盖最多的未覆盖州的广播台,将这个广播台存储在best_station中
  best_station = None
  # 这个集合包含该广播台覆盖的所有未覆盖的州
  states_covered = set()
  for station, states in stations.items():
   covered = states_needed & states
   if len(covered) > len(states_covered):
    best_station = station
    states_covered = covered
 states_needed -= states_covered
 final_stations.add(best_station)

print(final_stations) # 结果为{'ktwo', 'kthree', 'kone', 'kfive'}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python算法学习之桶排序算法实例(分块排序)
Dec 18 Python
用python代码做configure文件
Jul 20 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
浅谈python中的getattr函数 hasattr函数
Jun 14 Python
Tornado Web Server框架编写简易Python服务器
Jul 28 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
Python中类的创建和实例化操作示例
Feb 27 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
python已协程方式处理任务实现过程
Dec 27 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
python元组和字典的内建函数实例详解
Oct 22 #Python
Python List列表对象内置方法实例详解
Oct 22 #Python
Python序列对象与String类型内置方法详解
Oct 22 #Python
Python基本语法之运算符功能与用法详解
Oct 22 #Python
基于Python实现拆分和合并GIF动态图
Oct 22 #Python
python  logging日志打印过程解析
Oct 22 #Python
安装2019Pycharm最新版本的教程详解
Oct 22 #Python
You might like
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
Python中apply函数的用法实例教程
2014/07/31 Python
Python实现的一个简单LRU cache
2014/09/26 Python
Python Queue模块详解
2014/11/30 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
酒店销售主管岗位职责
2014/01/04 职场文书
材料会计岗位职责
2014/03/06 职场文书
争先创优演讲稿
2014/09/15 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
卖车协议书范文
2016/03/23 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
导游词之清晏园
2019/11/22 职场文书