经典问题(20)天平与砝码问题

2023-11-19

题目

在这里插入图片描述
如果有砝码序列【1, 3, 9, 27, 81, 243, 729 】
我们至少可以称量1000以内的所有整数重量
比如: 5 = 9 - 3 - 1 即:9 放入对侧盘,3,1 放入同侧盘
再比如: 19 = 27 - 9 + 1

编程的目标是:给定一个重量,求:天平称重时,砝码的放置方案。

解法一

只有 7 个砝码,每个砝码有三种放置方法:放左边,放右边,不放。
因而,总的可能组合方案数为 3 的 7 次方种。
我们只有逐一枚举所有的可能方案,再筛选符合要求的就可以了。
这是典型的暴力破解。

直接 7 层 for 循环嵌套似乎是可以,但有点丑陋,并且将来也无法扩展。
用递归比较容易点。

# 天平与砝码
'''
天平称重时,砝码可以放在左盘或右盘
有砝码:[1, 3, 9, 27, 81, 243, 729]、
给定 1000 以内待称重量 w
求称重方案
例如:w = 5
则返回 [-1, -3, 9]
'''
# w: 待称重量
# 返回使用的砝码列表,放在物品同侧的为负值
def fama(w):
    a = [3**i for i in range(7)]
    b = [0] * len(a)
    
    # 考虑放置 k 号位置
    def f(k):
        if<
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

经典问题(20)天平与砝码问题 的相关文章

随机推荐

  • MFC动态链接库弹窗

    目录 一 创建主程序 二 添加MFC动态链接库 三 引用动态链接库 四 编译运行 一 创建主程序 这里使用VS2019进行演示 创建MFC应用 项目名称为MainProgram 应用程序类型为 基于对话框 完成后删除原有控件 再添加一个按钮
  • 指针式仪表的自动读数与识别

    指针式仪表的自动读数与识别 前言 概述 步骤概括 1 仪表图像预处理 2 刻度线提取 2 1轮廓查找 2 2面积筛选 长宽比 距离 2 3刻度线轮廓拟合直线 3 指针轮廓提取 3 1 霍夫直线检测原理 4 结果 5 Pyqt5 5 1功能
  • DragonBones tools龙骨转换spine工具使用

    附上仓库连接 如果进不去需要尝试墙 Tools README zh CN md at master DragonBones Tools GitHub 安装所需依赖 npm install dragonbones tools global 使
  • 数学倒底有没有绝对的严格性和形式化?

    我对数学的理解只停留在大学里的高等代数和微积分 而且毕业后的这 8 年也已经遗忘得差不多了 最近在研究算法 又不得不拾遗和学习一些数学知识 今天这篇文章 希望和大家讨论一个问题 数学到底是否具有绝对的严格性和形式化 恕我愚钝 这个问题让我有
  • ubutun-需要运行NetworkManager

    问题描述 Ubuntu虚拟机没有网络连接 报需要运行NetworkManager 解决方法 root 用户下运行 systemctl start NetworkManager service 原因 不知道 欢迎补充
  • 最大似然估计(ML)

    1 说明 最大似然估计 Maximum Likelihood Estimation ML 是一种在给定观察数据情况下 来评估模型参数的算法 它属于一种统计方法 用来求一个样本集的相关概率密度函数的参数 例如 统计全校人口的身高 我们已知身高
  • boost多边形交集、并集

    交集 http www boost org doc libs 1 56 0 libs geometry doc html geometry reference algorithms intersection html 并集 http www
  • STM32技巧: Keil错误提示“ File Not Found”

    1 文件已添加到工程目录但提示 file not found 原因 仅添加到目录但未包含编译文件的路径 解决 Option gt C C gt Include Paths 添加提示缺失的文件所在路径 错误提示消失
  • vcs -xprop的理解

    一 vcs xprop简介 https www synopsys com zh cn verification simulation vcs xprop html Verilog 和 VHDL 常用于数字设计建模 设计人员使用 RTL 构造
  • 如何在 swgger 中设置连接前后端的 API 接口

    在的网站大多都是前后端分离式的开发 前后端都衍生出了自己的框架 现在前后端交互的唯一方式就是 API 接口 曾经前后端交互都需要后端人员手动编写 API 接口文档 规定路径 请求方式 返回类型 这样效率很低 swagger 就是更好地书写
  • 基于Python和笛卡尔遗传规划(Cartesian Genetic Programming, CGP),对柔性车间调度问题FJSP求解

    前言 实习阶段在研究柔性车间调度 即 Flexible Job shop Scheduling Problem FJSP 的问题 公司的前辈已经使用了很多方法实现了对复杂的实际调度问题进行求解 我做的部分主要是在公开数据集上 尝试用遗传规划
  • uniapp 路由不要显示#

    在Uniapp中 路由默认使用的是hash模式 即在URL中添加 符号 如果你不想在URL中显示 可以切换为使用history模式 要在Uniapp中使用history模式 可以按照以下步骤进行操作 打开manifest json文件 在
  • 2022深圳福田区专精特新小巨人企业申报条件,补贴50万

    深圳福田区专精特新小巨人企业申报后 可获得50万补贴 需要申报认证及补贴的企业 在中华人民共和国境内工商注册登记 连续经营3年以上并具有独立法人资格的中小企业 想要申报的企业 都需要在了解规则条件的基础上才能提前做好准备 用华夏泰科进行便捷
  • 华为OD机试 - 统计射击比赛成绩(Java)

    题目描述 给定一个射击比赛成绩单 包含多个选手若干次射击的成绩分数 请对每个选手按其最高3个分数之和进行降序排名 输出降序排名后的选手ID序列 条件如下 一个选手可以有多个射击成绩的分数 且次序不固定 如果一个选手成绩少于3个 则认为选手的
  • C语言中 error: expected ‘;‘, ‘,‘ or ‘)‘ before ‘&‘ token 解决方法

    问题描述 近期发现包括我在内的很多同学在用DEV C 编译的时候会出现 error expected or before token 这个如下图的错误提示 很多同学很不解 和其他人比较代码后 明明就没有错呀 为什么呢 经过查找相关资料 其实
  • 机器学习——高斯过程

    高斯过程 所谓高斯 即高斯分布 所谓过程 即随机过程 高斯分布 一维高斯 p x N
  • MATLAB代码:考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型

    MATLAB代码 考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型 关键词 碳捕集 综合能源系统 电转气P2G 热电联产 低碳调度 参考文档 Modeling and Optimization of Combined Heat an
  • 魅族7.0系统手机最简单激活Xposed框架的流程

    对于喜欢研究手机的朋友而言 常常会使用到XPOSED框架及种类繁多功能极强的模块 对于5 0以下的系统版本 只要手机能获得root权限 安装和激活XPOSED框架是异常轻易的 但随着系统版本的不断迭代 5 0以后的系统 激活XPOSED框架
  • Xray和burpsuite联动被动扫描

    想挖点src又没啥思路 试着挂个自动漏扫工具xray 又看到能与burp联动实现自动扫就想尝试一下 搞好进自己网站测试了一下 的确是爬虫式漏扫 访问量属实大 不过自己设置设置还是一个很不错的工具 安装配置 是在ddosi org这里找的破解
  • 经典问题(20)天平与砝码问题

    题目 如果有砝码序列 1 3 9 27 81 243 729 我们至少可以称量1000以内的所有整数重量 比如 5 9 3 1 即 9 放入对侧盘 3 1 放入同侧盘 再比如 19 27 9 1 编程的目标是 给定一个重量 求 天平称重时