coin-change相关内容

如何使用递归在C#中获得硬币兑换问题的最小可能组合

我是C#的新手,我有一个递归问题要解决。我想在这个硬币兑换问题中得到尽可能少的硬币。我已经调整了一个算法,但我需要返回一个类型为Change的对象,该对象将包含最小可能的组合。 我试图实现一个算法,但我有所有可能的组合。 using System; using System.Collections.Generic; using System.Linq; // Do not modif ..
发布时间:2022-04-01 11:11:32 C#/.NET

用特定账单表示金额

我想在 Racket 中编写一个函数,它需要一笔钱和一个特定账单价值的列表,然后返回一个列表,其中包含每种类型使用的账单数量以构成给定金额.例如 (calc 415 (list 100 10 5 2 1)) 应该返回 '(4 1 1 0 0). 我以这种方式尝试过,但这不起作用:/说实话,我想我还没有完全理解您可以/不能使用 Racket 中的 set! 做什么. (define (cal ..

SICP示例:计数变化,看不懂

我是一名初学者,在 MIT OpenCourseWare 上学习 SICP 课程,使用视频讲座和在线提供的书籍.昨天我遇到了一个例子,它问我​​们是否可以编写一个程序来计算改变任何给定金额的方法的数量. 这个问题有一个简单的递归程序解决方案: (define (count-change amount)(cc量5))(定义(cc 数量的硬币)(cond ((= 数量 0) 1)((或( 如 ..
发布时间:2021-12-16 08:23:07 其他开发

当给定一些美元价值时如何找到硬币的所有组合

我发现了一段我几个月前为面试准备而编写的代码. 根据我的评论,它试图解决这个问题: 给定一些以美分为单位的美元价值(例如 200 = 2 美元,1000 = 10 美元),找出构成美元价值的所有硬币组合.只允许使用便士 (1¢)、五分硬币 (5¢)、一角硬币 (10¢) 和 25 美分 (25¢). 例如,如果给出 100,答案应该是: 4 季币 0 角钱 0 镍币 0 便士3 ..
发布时间:2021-12-06 19:32:39 其他开发

最小硬币变化问题 - 回溯

我正在尝试以最少的硬币数量解决硬币找零问题使用回溯法. 我实际上已经完成了,但我想添加一些选项,以按单位打印硬币数量,而不仅仅是总数. 这是我下面的python代码. def minimum_coins(coin_list, change):min_coins = 零钱如果 coin_list 发生变化:返回 1别的:对于 coin_list 中的硬币:如果硬币<改变:num_coi ..
发布时间:2021-10-26 18:44:32 Python

理解硬币找零递归

我试图专门使用递归来解决硬币找零问题,但遇到了以下代码. 问题: 给定一些面额的无限硬币,计算编号.它们可以形成给定数量的方式. 输入: int[] 硬币 = {1, 2};整数金额 = 5;int way = change(amount,coins,coins.length - 1);//预期方式 = 3 -->11111、1112、122 代码: int change(int ..
发布时间:2021-07-05 19:20:43 Java开发

Prolog 中的算术,使用 2 的幂表示一个数字

我有两个数字,让我们把它们命名为N和K,我想用KN> 2 的幂. 例如如果 N = 9 和 K = 4,则 N 可以是 N = 1 + 2 + 2 +4 (2^0 + 2^1 + 2^1 + 2^2). 我的程序应该输出类似 N = [1,2,2,4] 的内容. 我习惯了 C++.我在 Prolog 中找不到解决这个问题的方法.任何帮助将不胜感激! 解决方案 这是一个使用 ..
发布时间:2021-06-22 18:53:36 其他开发

使用动态编程更改硬币

我一直在使用动态编程来解决硬币找零问题.我试图制作一个数组fin [],该数组包含该索引所需的最少硬币数量,然后打印出来.我写了一段代码,我认为它应该给出正确的输出,但是我不知道为什么它没有给出确切的答案.例如:对于输入:4 3 1 2 3 (4是要更改的数量,3是可用硬币的类型数量,1 2 3是硬币值列表)输出应为:0 1 1 1 2(因为我们有1,2,3作为可用硬币,因此需要0硬币更改为0、1 ..
发布时间:2021-05-03 19:05:32 Java开发

递归算法解决变更问题

我想提出一种解决变更问题的递归算法.是否可以使用一种非动态的方法,该方法不仅返回最小数量的硬币,而且还返回用于组成给定值的硬币组, 例如,给定值6,硬币组= [1、3、4]. 是否可以创建一种不具有备忘录的递归算法,该算法既可以返回最小数量的硬币(2),又可以返回硬币组(3,3)? 编辑:这是我当前的算法,但是它只返回硬币总数: int makeChangeRecursive(i ..
发布时间:2021-04-02 20:45:54 其他开发

硬币数量有限时的最小硬币找零问题

具体来说,问题是: 给定面额数组 coins [] ,每个硬币的限额数组 limits [] 和数字 amount ,返回最小值要获得 amount 所需的硬币数量,如果不可能,则返回null.此外,在数组 change 中填写解决方案中使用的每种硬币的编号. 这是我的解决方案: 公共静态整数?动态(int数量,int []硬币,int []限制,out in [[找零]){int [] ..
发布时间:2021-04-02 20:34:42 C#/.NET

给定总和和面额的最小硬币数量

给出一组面额和所需的总和,我必须找到使该总和的最小硬币数量,并且还要找到每种面额的硬币数量 请帮助!! 解决方案 用于确定达到该总和所需的最小硬币数量的伪代码为: 程序coinChange(硬币,总计): n:= coins.length dp [n] [total + 1] 对于i从0到n dp [i] [0]:= 0 对于 结束,i从1到(总计+ 1) dp ..
发布时间:2020-10-27 02:37:22 其他开发

找零:动态编程

我编写的代码使用动态编程解决了基本的硬币找零问题,并给出了进行找零所需的最少硬币数。但是我想将每个硬币参与部分的数量存储在最小数量中。 我要做的是初始化数组 count [] ,就像对它进行哈希处理一样,它会增加每当发现分钟时,即 coin [j] ,即 count [coin [j]] + + 。 但这不能按照我想要的方式工作,因为每次找到硬币[j]对应的分钟时,它都会添加硬币。 cod ..
发布时间:2020-10-27 02:36:05 其他开发

硬币找零-DP

我在理解动态编程中的硬币找零问题时遇到了一个小问题。简单地说,我必须使用最少数量的硬币来更改总和。 我有n个面额为1 = v1的硬币。 v2 ..
发布时间:2020-10-27 02:35:50 其他开发

动态编程,用于代币兑换

我有兴趣解决硬币兑换问题的一个变体。回想一下硬币交换问题的正式定义: 给定值 N ,如果我们想更改 N 分,并且我们有无限数量的 S = {S1,S2,..,Sm} 整数值硬币,我们可以用几种方法进行更改?硬币的顺序无关紧要。例如,对于 N = 4和 S = {1,2,3} ,有四个解:{1,1,1,1},{1, 1,2},{2,2},{1,3}。因此输出应为4。对于 N = 10和 S = ..
发布时间:2020-10-27 02:34:46 其他开发

Python硬币更改动态编程

我目前正在尝试在Python中实现动态编程,但是我不知道如何设置回溯部分,以使其不会重复排列。 例如,输入为(6,[1,5]),预期输出应为2,因为有2种可能的方式来排列1和5,以使它们的总和等于6。这些组合是{1,1,1,1,1,1}和{1,5},但是我的程序当前工作的方式,它说明了上面显示的组合和组合{5,1}。这导致输出为3,这不是我想要的。所以我的问题是“如何防止重复排列?”。我的当前代 ..
发布时间:2020-10-27 02:31:23 Python

达成硬币兑换问题动态规划解决方案的思考过程

我正在学习动态编程,并遇到了这个著名的硬币更改问题。 解决此问题的递归关系由 countCoinsChangeRec( arr,sum-arr [i],i)+ countCoinsChangeRec(arr,sum,i-1); 最简单的优化方法问题是通过存储子问题的解。因此,我为每个(sum,i)的值维护了一个 Map 。 字符串键= sum +“:” + i; 整数me ..
发布时间:2020-10-27 02:27:51 其他开发

用特定账单代表一定金额

我想在Racket中编写一个函数,该函数需要一定数量的钱和特定账单值的列表,然后返回一个列表,其中列出了每种类型所使用的账单数量,以总计得出给定的金额.例如,(calc 415 (list 100 10 5 2 1))应该返回'(4 1 1 0 0). 我是这样尝试的,但是这行不通:/老实说,我想我还没有完全理解Racket中set!可以做/不能做的事情. (define (calc ..
发布时间:2020-07-01 03:14:46 其他开发

用有限的硬币在C#中进行硬币找零

我构建了下面的硬币找零(C#),它非常有效: 类程序 { 静态整数数量= 0; 静态void Main(string [] args) { EnterAmount(); int []个硬币= new int [] {500,100,50,20,10,5,2,1,}; int结果= 0; for(int i = 0; i { 结果=数量/硬币[i] ..
发布时间:2020-06-03 21:49:17 C#/.NET

动态编程硬币零钱

动态编程更改问题(有限硬币)。 我正在尝试创建一个程序,该程序以 INPUT: int coinValues []; //例如[coin1,coin2,coin3] int coinLimit []; //例如:[2个coin1可用,1个coin2可用,...] int金额; //我们要更改的金额。 输出: int DynProg []; //大小为+1。 输出应为大 ..
发布时间:2020-06-03 21:22:24 其他开发