这是一个益智题,但如果要从纯粹计算的角度来完成,那么穷举可能是题主想要的结果。

题主的代码实现了随机选择策略,然后直到选出一个满足要求的答案就退出了程序。

如果在题主的代码里修改,主要改进两点。遍历所有可能的过河策略

在遍历过程中避免对重复的策略重新计算

前者可以求出“最快几秒过桥”,后者提高性能。

下面的代码是在问题中原有逻辑上改的,这不是最好的(有点丑),但是可能更直观点。(去除重复策略没有在程序中体现。)

在每个函数里打打当前的 a / b 日志,有助于发现到底有哪些组合。

最后的 result 只记录了可能的过河时间,最快也需要 29 秒。

import itertools

def calcu_from(a, b):

'''

在当前 a / b 情况下,计算从 A -> B 所有可能的过河时间

'''

result = set()

for step in itertools.combinations(a, 2):

m = max(step)

tmp_b = b[:]

tmp_b.extend(step)

next = calcu_to([e for e in a if e not in step], tmp_b)

for n in next:

result.add(n + m)

return result

def calcu_to(a, b):

'''

在当前 a / b 情况下,计算从 B -> A 所有可能的过河时间

'''

if len(a) == 0:

return set([0])

result = set()

for step in itertools.combinations(b, 1):

m = step[0]

tmp_a = a[:]

tmp_a.extend(step)

next = calcu_from(tmp_a, [e for e in b if e not in step])

for n in next:

result.add(n + m)

return result

a = [1, 3, 6, 8, 12]

b = []

result = calcu_from(a, b)

print(result)

小明一家过桥_「小明一家人过桥问题」如何用编程解决?相关推荐

  1. miniui datagrid 隐藏列默认赋值_「小程序JAVA实战」 小程序默认加载的页面和生命周期(八)...

    小程序如何加载的呢?生命周期!源码:https://github.com/limingios/wxProgram.git 中的No.3 加载页面 小程序默认加载的pages中的第一个目录 不管你的名称 ...

  2. python3转为unicode编码_「小技能get记」· 如何用python3解码unicode

    注:#小技能get记#,主要是为了记录日常生活.工作.学习中,get到的一些小小技能,希望可以帮助自己巩固知识,如果正好也能帮助需要的你,那就更好啦! 小小进步,天天get-- 1.故事背景 热爱学习 ...

  3. 小程序搜索框_微信小程序搜索及优化相关知识科普

    生活中我们常常会用到微信小程序,但很多人不知道该如何搜索.找到小程序:而有些已经做了自己的小程序的商家,也不懂怎么提升自己的微信小程序搜索效果.所以下面就跟大家科普下这两个问题. 1.怎么搜索微信小程 ...

  4. 微信小程序万里目_微信小程序“注册”你不知道的秘密

    很多人第一次上线小程序时是这样的: 啥?个人小程序不能选择商家自营? 好,换成企业主体. 啥?功能设置不够完整? 好,重新修改一下. 啥?简介里没有把小程序的功能写全? 好,把没写的补上. -- 好不 ...

  5. 小凯机器人软件_微信小凯机器人_小凯机器人需要下载吗

    提供微信七星彩小凯机器人资料介绍,微信七星彩小凯机器人下载,微信七星彩小凯机器人攻略,游戏评论 <微信七星彩小凯机器人>中新社兰州4月27日电 (记者南如卓玛)美国微 微信机器人:将博客无 ...

  6. java写微信小程序答辩问题_微信小程序毕业设计选题和毕业论文怎么写,答辩流程是怎样的?...

    1. 开始准备选题 大四上学期开学时开始准备论文的,首先是确定论文主题,看自己想做什么毕业设计,可以选取之前接触过的,做过的东西,这样快一些,如果选的是没接触过的方向,一定要早点开始.打算做一个小程序 ...

  7. 小程序 实名信息_【小程序】实名认证流程

    健康服务云平台  | 第2664期 为了让患者少跑腿,减少排队等候时间,让就医更加舒适便捷.我院依托微信公众平台.微信小程序开发建设我院健康服务云平台,逐步上线自助就医功能,全面推行网络便民服务.现已 ...

  8. java小程序源码_【小程序源码分享】基于Java开发的物业管理系统!

    前言 大家好,我是it分享师,今天给大家带来一个基于Springmvc开发的物业管理系统,微信小程序的源码! 使用技术 本套系统有两个入口,一个是微信小程序端主要是面向用户,另一个是基于spring, ...

  9. php 小程序 运动步数_微信小程序步数运动-收益讲解

    不得不佩服,步数小程序的厉害之处. 把闲散的运动步数,转化成一种可量化的社交货币,流动保存起来,探索出一种门槛低,又健康的经济模式. 对用户,真金白银的刺激,免费步数换取/抵现商品,红包,充值卡等. ...

  10. 小程序 实名信息_微信小程序+商城信息管理系统

    下载地址长期有效 微信商城信息管理系统(java后台+小程序) 使用方法 >温馨提示 java后台信息管理系统 微信商城小程序 >使用方法 加小编微信进行咨询 >实现功能 一:会员管 ...

最新文章

  1. 07 Java面试反射原理
  2. android studio编辑页面案例,2.4、Android Studio使用主题编辑器设计主题
  3. nslookup type值_nslookup查询
  4. python 内置模块-re
  5. java反射是运行时,Java反射(三)在运行时利用反射分析对象
  6. WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变...
  7. python随机发红包_python 微信红包随机金额
  8. 未经授权的ADB Android设备
  9. 字符集详解(学习,看一篇就够了)
  10. Win10+Android+夜神安卓模拟器 搭建ReactNative开发环境
  11. Docker问题:ERROR: Pool overlaps with other one on this address space
  12. Echarts官方文档
  13. python音频 降噪_从视频中提取音频数据,然后应用傅里叶对音频降噪(python)...
  14. 文科生,你为啥学编程?
  15. eclipse luna java 版本_eclipse luna使用jdk1.8初始化
  16. 原创 | ArcGIS中受支持的地图投影
  17. mysql配置主从复制和mysql多实例配置主从复制
  18. (持续更新中)Xwave的嵌入式学习笔记~
  19. 小程序源码:登录已修复零象垃圾废品回收微信小程序源码下载,V2.8.2完整全开源前端+后端
  20. 驱动精灵2014网卡版 v8.0.515.1101 扩展版

热门文章

  1. 文献阅读(03)Computing Graph Neural Networks: A Survey from Algorithms to Accelerators
  2. Windows版bitcoin客户端编译
  3. NOIP 2017 列队 (线段树动态开点)
  4. 易大师接口自动化测试平台如何创建不同协议的接口并进行测试
  5. 解决目前无法下载电驴资源的方法
  6. 湖北省仙桃市谷歌高清卫星地图下载
  7. android椭圆形形框_什么是计算机硬件上的椭圆形Kong?
  8. MXNet中take函数的用法
  9. QQ空间日志导出(php)
  10. ZooKeeper 选举机制