当前位置: 首页 > news >正文

典范硬币系统(Canonical Coin System)→ 贪心算法

【典范硬币系统】
● 典范硬币系统(Canonical Coin System)是指使用
贪心算法总能得到最少硬币数量解‌的货币面值组合‌

● 给定一个硬币系统 S={S_1,S_2,\cdots,S_i,S_{i+1},\cdots,S_n},若使其为典范硬币系统,则要求其各相邻面值比例 {\textcolor{red}{S_{i+1}/S_i \geq 2}},及各开区间 (S_i,S_{i+1}) 内各金额 r
非面值)的余数覆盖成本 f(r) 小于相邻面值比例 S_{i+1}/S_i,即 {\textcolor{red}{f(r) \leq S_{i+1}/S_i}},其中,r\in (S_i,S_{i+1})。当余数覆盖成本大于相邻面值比例时,即 f(r)>S_{i+1}/S_i 时,需插入相邻面值构成的开区间 (S_i,S_{i+1}) 之间的某个金额作为新增面值优化原硬币系统。若优化后导致相邻面值比例不达标,即小于 2 了,需整体重构层级。

余数覆盖成本,是指位于相邻硬币面值 S_i 与 S_{i+1} 之间的金额 r,通过更小面值硬币覆盖该金额所需的最小硬币数量 f(r)。余数覆盖成本是判断贪心算法有效性的关键指标,需通过层级比例约束与动态调整机制控制其阈值。满足条件的硬币系统(如人民币硬币系统)可高效使用贪心算法,否则需依赖动态规划‌

相邻面值比例优先级,高于余数覆盖成本。即典范硬币系统,必须先满足相邻面值比例 ≥2 的约束条件。


【实例分析】
给定一个硬币系统 {1,5,11},判断其是否为典范硬币系统。
首先,其各相邻面值比例均大于等于 2(5/1=5≥2,11/5=2.2≥2),符合要求。
其次,分析其各余数覆盖成本,列表如下。

硬币系统 {1,5,11}区间余数覆盖成本f(r)相邻面值比例S_{i+1}/S_if(r) \leq S_{i+1}/S_i
相邻面值 1 元和 5 元
构成的
开区间(1,5)
f(2)=2(2枚1元)5/1=52≤5?(√)
f(3)=3(3枚1元)5/1=52≤5?(√)
f(4)=4(4枚1元)5/1=52≤5?(√)
相邻面值 5 元和 11 元
构成的
开区间(5,11)
f(6)=2(1枚5元,1枚1元)11/5=2.22≤2.2?(√)
f(7)=3(1枚5元,2枚1元)11/5=2.23≤2.2?(错误
f(8)=4(1枚5元,3枚1元)11/5=2.24≤2.2?(错误
f(9)=5(1枚5元,4枚1元)11/5=2.25≤2.2?(错误
f(10)=2(2枚5元)11/5=2.22≤2.2?(√)

据表可知,此硬币系统 {1,5,11} 不满足典范硬币系统,故其不能通过利用贪心法求得最优解,只能采用动态规划求最优解。

 

相关文章:

  • EXCEL报错:无法共享此工作薄,因表包含excel表或xml映射的解决方法
  • 合合信息TextIn大模型加速器 2.0来了:智能文档解析和图表解析能力全面升级
  • 深入理解 Linux 文件权限:从 ACL 到扩展属性,解剖底层技术细节与命令应用
  • Selenium三大等待
  • Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测
  • LeetCode349两个数组的交集
  • uvm transaction
  • 排查使用RestTemplate远程调用,@RequestBody注解接收不到实体类
  • python面试
  • 【天梯赛】L2-004 这是二叉搜索树吗(经典问题C++)
  • 笔试专题(四)
  • Ollama及HuggingFace路径环境变量设置
  • 监控易一体化运维:监控易机房管理,打造高效智能机房
  • 51c嵌入式~三极管~合集1
  • 【Python3教程】Python3基础篇之Lambda(匿名函数)
  • AI赋能,防御无界:群联云防护如何颠覆传统DDoS防御格局?
  • 群晖监控套件通过ONVIF协议添加海康摄像头
  • 智慧指路机器人是否支持公共广播功能?
  • MUX VLAN -- PVLAN
  • 【问题解决】Linux安装conda修改~/.bashrc配置文件后,root 用户下显示 -bash-4.2#
  • 多品牌网站建设/做网站建设公司
  • 二手商标网/网络seo是什么
  • 化州手机网站建设公司/哪个网站百度收录快
  • 网站建设学生选课课程设计报告/直播回放老卡怎么回事
  • 想找做海报的超清图片去哪个网站找/关键词优化意见
  • 网站改版提交给百度/青岛最新消息