算法设计与分析 贪心算法

合集下载

贪心算法实验报告心得

贪心算法实验报告心得

贪心算法实验报告心得前言贪心算法是一种常见且重要的算法设计思想,通过每一步都选择当下最优的解决方案,以期望最终得到全局最优解。

在学习与实践贪心算法的过程中,我有了许多心得与体会。

什么是贪心算法?贪心算法是一种求解问题的算法思想,它的特点是每一步都选择当前最优的解决方案,而不考虑该选择对以后步骤的影响。

贪心算法通常适用于可以将问题分解为若干个子问题,并且通过每次选择当前最优解来得到整体最优解的情况。

贪心算法的基本步骤贪心算法的基本步骤可以总结为以下几个方面:1.确定问题的解空间,并找到问题的最优解。

贪心算法通常通过穷举法或者利用问题的特殊性质来确定解空间。

2.制定贪心策略。

贪心算法的核心是确定每一步选择的贪心策略,即选择当前最优解。

3.确定贪心策略的正确性。

贪心算法的一个关键问题是如何证明贪心策略的正确性。

可以通过数学证明、反证法或者举反例等方式来进行证明。

4.实现贪心算法。

将贪心策略转化为实际可执行的算法步骤,编写代码来求解问题。

贪心算法实验结果分析在本次实验中,我使用贪心算法解决了一个经典问题:找零钱问题(Change-Making Problem)。

给定一定面额的硬币和需找的金额,我们的目标是使用最少的硬币来完成找零钱。

贪心算法的思路是每次选择面额最大的硬币进行找零。

实验设计1.实验输入:我设计了多组输入来测试贪心算法的性能。

每组输入包括一个需找的金额和一个硬币集合。

2.实验输出:对于每组输入,贪心算法输出一个最优的硬币找零方案,以及使用的硬币数量。

3.实验评价:我使用了实际需找金额与贪心算法计算得到的找零金额的差值来评估算法的准确性,并统计了算法的时间复杂度。

实验结果从多组实验结果中可以观察到,贪心算法在大部分情况下给出了正确的找零金额,并且算法的时间复杂度较低。

结果分析贪心算法在找零钱问题中的应用是合理的。

每次选择面额最大的硬币进行找零,可以快速接近最优解,并且相对其他算法具有较低的时间复杂度。

计算机算法设计与分析-贪心算法

计算机算法设计与分析-贪心算法

2023/10/8
计算机算法设计与分析
4
树的基本性质
连通无回路的图G称为树。 树是点比边多一的连通图,G连通且q=p–1 。 树是点比边多一的无回路图:G无回路且q=p–1 树若添条边就有回路:G无回路,但对任意的u,
v∈V(G),若uvE(G),则G+uv中恰有一条回路 树若减条边就不连通:G连通,但对e∈E(G),
图条 出且边 权该。 重回这 较路n小中–的1包n条含–边1e必条1。定边该包(回括在路了实中G现必的中有n体个条现顶不为点是n。e个的这 边样 顶e就 点i。得 的令到 选T’了择={G)T的+。e一1}棵–ei最。小T’生也成是树G的。生成树。又
cc矛K次不 要 是这((TTr盾选行 保 连u’’样))s。≤k择=! 证 通c做a故(cl权因 这 的T算(是T)必重为 或n,法)否定–+较不者T的1c’有可是小能是条(做e图1以G的保无边法) 的G–n证回构呢:的c最–(这路成在?e最1小1条的n树)保,小生–边。,证c生1成(。必条无e成1树)须边回树≤且使构路c包含(这成e的含i有)n树,前了边–?从提e1e1条而下1。。边依
初始化:Path中仅含有源v。
2023/10/8
计算机算法设计与分析
21
最临近算法中的数据结构
图用连接矩阵W[i][j]给出,即W[i][j]为 结点i到结点j的权重。
Path[]记录依次连接的城市,p记录当前 到达的最后一个顶点,cost为当前路径 长度。
如果节点k已经到达,则arrived[k]=true。
3
最小生成树
设G = (V, E)是一个无向连通带权图,即一个网 络。E的每条边(v, w)的权为c[v][w]。

贪心算法解析

贪心算法解析

贪心算法解析在计算机科学领域中,贪心算法是一种简单却高效的算法,主要用于解决优化问题。

贪心算法的基本思想是:每一步都选择当前最优的解决方案,最终得到全局最优解。

贪心算法的核心在于贪心策略。

贪心策略是指每一步都选取当前最优解,即对当前局部最优解不做考虑就直接进行决策。

贪心算法的优点在于其时间复杂度比较低,常常能够在很短的时间内找到一个不错的解决方案。

但是,使用贪心算法求解问题时需要注意,贪心算法要求问题具有最优子结构性质(即所有子问题的最优解能够推导出全局最优解),而且贪心算法并不能保证求得最优解。

下面通过几个实例来讲解贪心算法的应用。

例一:找零钱问题假设我们有 $n$ 种面额不同的硬币,它们的面值分别为 $v_1, v_2, ..., v_n$。

我们要找回 $p$ 元钱,问最少需要多少枚硬币。

这个问题可以用贪心算法来解决。

贪心策略是每次取尽量大的面额,直到找回的零钱等于 $p$ 元为止。

具体步骤如下:1. 将硬币按照面额从大到小排序;2. 依次取硬币,如果当前硬币的面额小于要找的零钱,就继续取;否则,取下一个硬币;3. 当找回的钱数等于 $p$ 时停止。

为了证明这个贪心算法确实是正确的,我们可以假设另外有一种更优的算法。

我们可以证明,如果这个算法与贪心算法在某一步不同时,那么这个算法肯定不是最优解。

因此,我们只需要证明贪心算法的每一步都能得到最优解,即可证明贪心算法是正确的。

例二:活动安排问题假设有一组活动,每个活动都有开始时间和结束时间。

假设活动 $i$ 的开始时间为 $s_i$,结束时间为 $f_i$。

问最多可以安排多少个活动。

这个问题可以用贪心算法来解决。

贪心策略是每次选择结束时间最早的活动。

具体步骤如下:1. 将活动按照结束时间从早到晚排序;2. 选择剩余结束时间最早的活动,将其加入集合中,将其结束时间赋值给变量 $last$;3. 对于接下来的活动,若其开始时间 $s_i \geq last$,则将其加入集合中,将其结束时间赋值给 $last$;否则,忽略这个活动。

算法设计和分析第5章-贪心算法-精选课件

算法设计和分析第5章-贪心算法-精选课件
的时间段中,要尽量把作业i放在靠右的时间段
*
河南工程学院
算法设计与分析
• FasterJob (int d[], int &J[],int n)
• 1 for i0 to n
• 2 do { F[i]i; P[i]-1;}
• 6 k0;
• 7 for i1 to n
• 8 do {
• 9 rFind(min (n,d(i)));
再重试其他的可行性; • 2 它并不从整体最优上作出考虑, 它的选
择只是在贪心准则下的局部最优选择
*
河南工程学院
算法设计与分析
• 5.1.1 贪心选择性质 • 在求解一个问题的过程中,如果每一个阶
段都是当前状态下的最优选择,即局部最 优选择,并且最终能够求得问题的整体最 优解
*
河南工程学院
算法设计与分析
• 若k是使xi<>yi的最小下标值,那么
*
河南工程学院
算法设计与分析
• (1)假设k<j, 可知yk=1,因为xk<>yk, 所以xk<yk; • (2) k=j, 根据约束条件【wiyi=C,且当1<=i<j时,
xi=yi=1,当j<i<=n时,xi=0.如果xk>yk, 那么很明显 【wixi>C, 不符合约束条件。所以,xk<yk • (3) 设k>j, 则【wixi>C ,这也是不可能的 • 有以上分析可知xk<yk
式。根据这种归并模式构造出来的二叉树称为二 元归并树
60
30 30
10
20
*
河南工程学院
算法设计与分析
• Struct BiTnode •1{ • 2 ElemTypeF weight ;//节点的权值,文件的记

贪心算法实现背包问题算法设计与分析实验报告

贪心算法实现背包问题算法设计与分析实验报告

算法设计与分析实验报告实验名称贪心算法实现背包问题评分实验日期年月日指导教师姓名专业班级学号一.实验要求1. 优化问题有n个输入,而它的解就由这n个输入满足某些事先给定的约束条件的某个子集组成,而把满足约束条件的子集称为该问题的可行解。

可行解一般来说是不唯一的。

那些使目标函数取极值(极大或极小)的可行解,称为最优解。

2.贪心法求优化问题算法思想:在贪心算法中采用逐步构造最优解的方法。

在每个阶段,都作出一个看上去最优的决策(在一定的标准下)。

决策一旦作出,就不可再更改。

作出贪心决策的依据称为贪心准则(greedy criterion)。

3.一般方法1)根据题意,选取一种量度标准。

2)按这种量度标准对这n个输入排序3)依次选择输入量加入部分解中。

如果当前这个输入量的加入,不满足约束条件,则不把此输入加到这部分解中。

procedure GREEDY(A,n) /*贪心法一般控制流程*///A(1:n)包含n个输入//solutions←φ //将解向量solution初始化为空/for i←1 to n dox←SELECT(A)if FEASIBLE(solution,x)then solutions←UNION(solution,x)endifrepeatreturn(solution)end GREEDY4. 实现典型的贪心算法的编程与上机实验,验证算法的时间复杂性函数。

二.实验内容1. 编程实现背包问题贪心算法。

通过具体算法理解如何通过局部最优实现全局最优,并验证算法的时间复杂性。

2.输入5个的图的邻接矩阵,程序加入统计prim算法访问图的节点数和边数的语句。

3.将统计数与复杂性函数所计算比较次数比较,用表格列出比较结果,给出文字分析。

三.程序算法1.背包问题的贪心算法procedure KNAPSACK(P,W,M,X,n)//P(1:n)和W(1;n)分别含有按P(i)/W(i)≥P(i+1)/W(i+1)排序的n件物品的效益值和重量。

算法设计与分析动态规划与贪心算法的应用

算法设计与分析动态规划与贪心算法的应用

算法设计与分析动态规划与贪心算法的应用算法设计与分析:动态规划与贪心算法的应用一、引言算法设计与分析是计算机科学中的重要课题之一。

动态规划与贪心算法是常用的解决问题的方法。

本文将分析和探讨动态规划与贪心算法的应用,为读者提供深入了解算法设计与分析的知识。

二、动态规划的应用动态规划是一种将问题拆分为子问题并逐步求解的算法。

它通常用于解决具有重叠子问题性质的问题,通过保存每个子问题的解,避免了重复计算,提高了计算效率。

1. 背包问题背包问题是动态规划中的经典问题之一。

给定一个背包容量和一系列物品的重量和价值,求在背包容量限制下,如何选择物品使得总价值最大。

通过动态规划的思想,我们可以逐步求解子问题,并得到最优解。

2. 最长公共子序列最长公共子序列是算法设计中的另一个经典问题。

对于两个序列,找出它们最长的共同子序列长度。

通过定义状态转移方程,我们可以利用动态规划的方法解决这一问题,提高计算效率。

三、贪心算法的应用贪心算法是一种简单而有效的算法,它通过每一步选择当前最优解来求解整个问题。

贪心算法通常适用于满足最优子结构性质并能通过贪心选择获得全局最优解的问题。

1. 零钱兑换问题零钱兑换问题是贪心算法的一个经典应用。

给定一些面额不同的硬币和一个需要凑齐的金额,求凑齐该金额所需的最少硬币数。

贪心算法可以通过每次选择面额最大的硬币来逐步逼近最优解。

2. 活动选择问题活动选择问题是贪心算法的另一个常见应用。

给定一些活动的开始时间和结束时间,求能参加的最多活动数。

通过贪心选择结束时间最早的活动,我们可以逐步求解最优解。

四、动态规划与贪心算法的比较动态规划与贪心算法都是解决问题的有效方法,但它们在某些方面存在差异。

1. 最优子结构动态规划适用于具有最优子结构性质的问题,而贪心算法则适用于满足贪心选择性质的问题。

最优子结构指子问题的最优解能够构成原问题的最优解,贪心选择性质指每一步都选择当前最优解。

2. 时间复杂度动态规划通常需要保存中间结果,可能会导致较高的空间复杂度。

算法设计与分析

算法设计与分析

算法设计与分析一、引言算法设计与分析是计算机科学领域中至关重要的技术。

本文将围绕算法设计与分析展开讨论,探究其在计算机科学领域中的作用和应用。

二、算法设计概述算法是解决问题的一系列有序步骤的描述。

良好的算法设计能够提高问题解决的效率和正确性。

在算法设计中,我们考虑如何将输入转换为输出的过程,同时优化算法的时间复杂度和空间复杂度。

三、常见算法设计方法1. 贪心算法贪心算法是一种基于贪心策略的算法设计方法,每次选择当前最优解。

虽然贪心算法不一定能得到全局最优解,但在某些情况下可以获得较好的近似解。

2. 分治算法分治算法将问题划分为若干个子问题,分别求解子问题,然后将子问题的解合并为原问题的解。

它通常采用递归的方式进行求解。

3. 动态规划动态规划是一种通过将问题划分为相互重叠的子问题来求解的方法。

它将每个子问题的解保存下来,避免重复计算,从而提高了算法的效率。

四、算法分析方法1. 时间复杂度时间复杂度是对算法执行时间的度量,表示算法所需时间随问题规模增长的趋势。

常见的时间复杂度有:常数时间复杂度O(1)、线性时间复杂度O(n)、对数时间复杂度O(logn)、平方时间复杂度O(n^2)等。

2. 空间复杂度空间复杂度描述算法所需存储空间与问题规模之间的关系。

它通常考虑算法中使用的额外空间和输入规模之间的关系。

五、算法的应用领域算法设计与分析广泛应用于计算机科学的各个领域,如图像处理、人工智能、数据挖掘等。

六、算法设计与分析的重要性1. 提高问题解决效率良好的算法设计可以提高问题的解决效率,节约计算资源,提升计算速度。

2. 保证算法的正确性通过对算法进行严密的设计和分析,可以保证算法在各种情况下的正确性,避免出现错误的结果。

3. 推动计算机科学的发展算法设计与分析是计算机科学领域的核心内容,推动了计算机科学的发展和创新。

七、结论通过对算法设计与分析的讨论,我们可以得出结论:算法设计与分析是计算机科学中不可或缺的重要技术,它对于解决问题和推动科学发展都具有重要意义。

计算机算法设计与分析(王晓东第4版)第4章

计算机算法设计与分析(王晓东第4版)第4章
School of Computer and Communication Engineer 30
23
最优解代价公式
c[i, j ]: Sij 最优解的大小 c[i, j ] = 0 if Sij = φ maxak ∈Sij {c[i, k ] + c[k, j ] + 1} if Sij = φ
School of Computer and Communication Engineer
24
活动选择问题动态规划方法
schoolcommunicationengineer一步一步构建问题的最优解决方案其中每一步只考虑眼前的最佳选择对解空间进行搜索时在局部范围内进行择优选取决定下一步搜索方向不是为了找到全部解而只是找出一种可行解在一定的情况下贪心算法找出的可行解将是最优解schoolcommunicationengineer42贪贪贪心心心算算算法法法基基基本本本要要要素素素算法包含一系列步骤每一步都有一组选择做出在当前看来最好的选择一个贪心算法是否产生最优解需要严格证明schoolcommunicationengineer最优子结构schoolcommunicationengineer贪贪贪心心心选选选择择择性性性质质质定定定义义义若若若一个优化问题的全局最优解可以通过局部最优选择得到则该问题称为具有贪贪贪心心心选选选择择择性性性
School of Computer and Communication Engineer 4
4.2 贪 心 算 法 基 本 要 素
• 算法包含一系列步骤, 每一步都有一组选择, 做出在 当前看来最好的选择 • 希望通过作出局部最优选择达到全局最优选择 • 一个贪心算法是否产生最优解, 需要严格证明
School of Computer and Communication Engineer
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
和一个结束时间fi,且si <fi。如果选择了活动i,
则它在半开时间区间[si, fi)内占用资源。若区
间[si, fi)与区间[sj, fj)不相交,则称活动i
与活动j是相容的。
25
各活动占用资源情况
按照每个活动完成时间的顺序排列
假设按照11个活动的结束时间的非 减序排列如下:
i s[i] f[i] 1 1 4 2 3 5 3 0 6 4 5 7 5 3 8 6 5 9 7 6 10 8 8 11 9 8 12 10 2 13 11 12 14
假设第k个物品是最优解中的一个物品,则
从中拿出Wk对应的物品后所对应的解一定是 其余n-1个物品、装入背包最大承载重量为 C-Wk的最优解,否则与假设矛盾。
16
0-1背包问题不具有贪心选择性质。
原因是无法保证能够将背包装满, 而所剩空间将会降低总价值。
背包问题具有贪心选择性质。
17
背包问题具有贪心选择性质: 最优解分析:
贪心算法的基本步骤
从问题的某个初始解出发 采用循环语句,当可以向求解目标前 进一步时,就根据局部最优策略,得 到一个部分解,缩小问题的范围或规 模 将所有部分解综合起来,得到问题的 最终解

4.1 贪心算法的基本要素
利用贪心算法求解最优解的两个前提条件: 贪心选择性质和最优子结构性质。
1.贪心选择性质
solution = union(solution,x); // 添至解空间
} return solution;
} (1)候选集合 A:问题的最终解均取自于候选集合A。 (2)解集合S:解集合S不断扩展,直到构成满足问题的完整解。 (3)解决函数solution:检查解集合S是否构成问题的完整解。 (4)选择函数select:贪心策略,这是贪心算法的关键。 8 (5)可行函数feasible:解集合扩展后是否满足约束条件。
因此,动态规划算法通常以自底向上的方式解各子问题 ,而贪心算法则通常以自顶向下的方式进行,以迭代的方 式作出相继的贪心选择,每作一次贪心选择就将所求问题 简化为一个规模更小的子问题。

贪心算法中作出的每步贪心决策都无法改变, 因为贪心策略是由上一步的最优解推导下一步 的最优解,而上一部之前的最优解则不作保留 ,贪心算法每一步的最优解一定包含上一步的 最优解。 动态规划算法中全局最优解中一定包含某个局 部最优解,但不一定包含前一个局部最优解, 因此需要记录之前的所有最优解。
23
背包问题的贪心算法
float knapsack(float c,float w[], float v[],float x[],int n) { ITEMTYPE d[n]; for (int i = 0; i < n; i++) d[i] <= (w[i],v[i],i); mergeSort(d); //按照单价高低排序 D[ ]: int i; 算法knapsack的 float opt=0; w v 主要计算时间是 for (i=0;i<n;i++) x[i]=0; 10 60 将各种物品依其 for (i=0;i<n;i++) { //贪心选择 if (d[i].w>c) break; 单位重量的价值 20 100 x[d[i].i]=1; opt+=d[i].v; c-=d[i].w; 从大到小排序。 } 30 120 if (c>0&& i<n) { //零碎空间 因此,算法的计 x[d[i].i] = c/d[i].w; opt += x[d[i].i]*d[i].v; 算时间上界为O } return opt; (nlogn)。 } x 1 1
所谓贪心选择性质是指所求问题的整体最优解 可以通过一系列局部最优的选择,即贪心选择 来达到。这是利用贪心算法求解最优解的第一 个基本要素,也是贪心算法与动态规划算法的 主要区别。
10
2.最优子结构性质
当一个问题的最优解包含其子问题的最优解时,
称此问题具有最优子结构性质。问题的最优子
结构性质是该问题可用动态规划算法或贪心算
第 4章
贪心算法
4.1 贪心算法的基本要素 4.2 活动安排问题 4.3 最优装载 4.4 单源最短路径 4.5 哈夫曼编码
4.6 多机调度问题
1
学习要点
理解贪心算法的概念。 掌握贪心算法的基本要素 (1)最优子结构性质 (2)贪心选择性质 理解贪心算法与动态规划算法的差异 理解贪心算法的一般理论 通过应用范例学习贪心设计策略。 (1)活动安排问题。 (2)最优装载问题。 (3)哈夫曼编码。 (4)单源最短路径。 (5)最小生成树。 (6)多机调度问题。
7
贪心算法框架
Greedy(A,n) { //A为输入集合 solution = Ø; // 解空间初始化为空 for (i = 1; i <=n; i++) { //对每个输入进行检测 x = select(A); // 选择一个输入 if (feasible(solution,x)) // 如果可行
贪心算法的设计思路
贪心算法的设计思路是:总是做出
在当前看来最好的选择,即贪心算
法并不是从整体最优考虑,它所做
的选择只是在某种意义上的局部最 优选择。
6
贪心算法的求解过程
使用贪心算法求解问题应该考虑如下几个方面:
(1)候选集合A:为了构造问题的解决方案,有一个候选集合 A作为问题的可能解,即问题的最终解均取自于候选集合A。 (2)解集合S:随着贪心选择的进行,解集合S不断扩展,直 到构成满足问题的完整解。 (3)解决函数solution:检查解集合S是否构成问题的完整解 。 (4)选择函数select:即贪心策略,这是贪心法的关键,它指 出哪个候选对象最有希望构成问题的解,选择函数通常和目标 函数有关。 (5)可行函数feasible:检查解集合中加入一个候选对象是否 可行,即解集合扩展后是否满足约束条件。
typedef struct { float w,v; int i; } ITEMTYPE;
i 1 2 3
单价 6 5 4
2/3
24
4.2 活动安排问题
设有n个活动的集合E={1,2,…,n},其中每个活
ቤተ መጻሕፍቲ ባይዱ
动都要求使用同一资源,如演讲会场等,而在
同一时间内只有一个活动能使用这一资源。每
个活动i都有一个要求使用该资源的起始时间si
26
(1)活动安排具有最优子结构性质
Sij表示第i个任务结束之后,第j个任务开始之 前的任务集合。 假设子问题Sij的最优解集合为Aij且包含任务ak, 则在最优解集合里的子问题Sik的解Aik以及子 问题Skj的解Akj也一定是最优的。 证明:
假设子问题Sik存在一个更优的解A’ik,则
|A'ik|+1+|Akj|>|Aik|+1+|Akj|=|Aij|
用贪心算法解背包问题的基本步骤:
1.计算每种物品单位重量的价值Vi/Wi; 2.按照单位重量的价值从高到低的顺序排序; 3.依据贪心选择策略,按照单位价值从高到低 的顺序,依次将尽可能多的物品装入背包中。 直到背包装满为止。
是否可以将物品装入背包的条件是:
有空间
22
背包问题的贪心算法
void knapsack(float c,float w[], float v[],float x[],int n) { 将各种物品依其单位重量的价值从高到低排序 初始化 x[i]=0; for (i=0;i<n;i++) { //贪心选择 if (不能放) break; 放入背包中 } w[i]重量 if (背包没满&&还有物品) { v[i]单位价值 装满; } x[i]结果 return opt; }
则有:
n n n

i 1
wk xk z i pi p1 xi pi w1 i k 1

x p
i i k
i
P
( 1)若等式成立,则Z也为最优解,继续同样过程,可使z1 1, 或 0, Z是以贪心算法开始的最优解。 (2)若大于成立,与X为最优解矛盾,不成立。 故总存在以贪心算法开始的最优解。
法求解的关键特征。
11
3.贪心算法与动态规划算法的差异
共同点:求解的问题都具有最优子结构性质
差异点:动态规划算法通常以自底向上的方式
解各子问题,而贪心算法则通常以自顶向下的
方式进行,以迭代的方式作出相继的贪心选择,
每做一次贪心选择就将所求问题简化为规模更 小的子问题。
12
贪心选择性质:在动态规划算法中,每步所作的选择往往 依赖于相关子问题的解。因而只有在解出相关子问题后, 才能作出选择。而在贪心算法中,仅在当前状态下作出最 好选择,即局部最优选择,然后再去解作出这个选择后产 生的相应的子问题。贪心算法所作的贪心选择可以依赖于 以往所作过的选择,但决不依赖于将来所作的选择,也不 依赖于子问题的解。
设物体1,物体2,…,物体n已按价值重量比的降序 排序。 贪心选择性质:
设X={x1,x2,…,xn}是背包问题的一个最优解。 令k=min{i|xi∈0,1≤i≤n}, 若k=1,则X是以贪心算法开始的最优解。
若k‡1,令Z中zk=0,z1=wkxk/w1 ,zi=xi (1≤i≤n,i‡k,i‡1)
3
例:用贪心法求解付款问题。
假设有面值为5元、2元、1元、5角、2角、1角的 货币,需要找给顾客4元6角现金,如何使付出的 货币的数量最少。 首先选出1张面值不超过4元6角的最大面值的货币,
即2元,再选出1张面值不超过2元6角的最大面值
的货币,即2元,再选出1张面值不超过6角的最大 面值的货币,即5角,再选出1张面值不超过1角的 最大面值的货币,即1角,总共付出4张货币。
相关文档
最新文档