当前位置: 首页 > 知识库问答 >
问题:

如何解释这种换币算法

梁丘弘
2023-03-14

我试图找到一个简单问题的直接答案...在这里它是...

假设你有一个硬币更换算法,在面值为d(1)=1、d(2)=7和d(3)=10的系统中,n=10。

现在给出了教科书中算法的实现。。

Greedy_coin_change(denom, A)
{
    i = 1;
    While (A > 0) {
        c = A/denom[i];
print(“use “+c+”coins of denomination”+denom[i];
        A = A – C * denom[i];
        i = i+1;
    }
}

结果会不会是:“使用10枚面额为1的硬币”?

这是因为当然,以我的理解,denom[1]=1,denom[2]=7,denom[3]=10。正确吗?

如果是这样的话,这个算法就不会被认为是最优的,对吗?

但是,代码上面有一个小语句,我不确定它是否应该作为代码的一部分,如下所示:

[1]张志强[1]

共有1个答案

慕阳平
2023-03-14
denom[1] > denom[2] > ... > denom[n] = 1.

表示输入中的项目应按从大到小的顺序排列。

将其作为算法的前提条件(即这是算法工作所必需的)。

因此,如果给定1,7,10denom将是{10,7,1},它将选择恶魔[1]中的1个。

 类似资料:
  • 我试图使用贪婪算法来计算在JavaScript中达到一定数量所需的最低硬币数量 返回结果将是一个数组,由每个级别的硬币数量组成 我决定做一个函数来解决这个问题,但它不起作用 calculateChange函数包含两个参数:硬币值数组和金额。 第一步是初始化一个sum变量,该变量显示已调度的更改量。我还将创建一个数组变量,该变量将保存某个硬币的分配次数。 为此,我将迭代coins数组并将所有值设置为

  • 明日 10:30:40 今日 14:00:08 6月8日 17:07:16 请问以上这些格式如何换算成下面这种时间格式 2023-6-2 10:30:40 2023-6-1 14:00:08 2023-6-8 17:07:16 用asp函数或者正则。 请问能做到吗? 可能难度很大,希望有超级高手帮忙。 谢谢。

  • 这是hackerrank(https://www.hackerrank.com/challenges/coin-change)的硬币更换问题。它要求计算使用给定面值的硬币对N进行更改的方法总数。 例如,有四种方法可以使用面额为1、2和3的硬币兑换4。它们是-

  • 我正在尝试构建一个交换算法,以交换与库存数量相同的硬币。我有一本字典,里面有两个面值的键值对 输入是要返回的值,例如2,80欧元。考虑到股票,我需要一个算法来计算返回资金的最佳方式 (最好的方法是库存硬币数量的标准差最低,这意味着所有面额的库存都是相同的),因此在这个例子中,我需要返还120欧元的硬币 我怎样才能计算出最好的数字,以返回每面额使用c算法,并保持股票相同的所有硬币? 其中map Va

  • 以人民币的硬币为例,假设硬币数量足够多。要求将一定数额的钱兑换成硬币。要求兑换硬币数量最少。 思路说明: 这是用贪婪算法的典型应用。在本例中用python来实现,主要思想是将货币金额除以某硬币单位,然后去整数,即为该硬币的个数;余数则做为向下循环计算的货币金额。 这个算法的问题在于,得出来的结果不一定是最有结果。比如,硬币单位是[1,4,6],如果将8兑换成硬币,按照硬币数量最少原则,应该兑换成为

  • 当我使用第一个代码示例时,由于某种原因,给出了已处理的HighData变量。就好像在脚本的末尾。 更奇怪的是,当我使用(它做的事情与上面的代码完全相同)时,它会按照预期正确地返回变量。 代码位于函数中的Vue组件中。和也在函数中。