如我在这里发现的,
Coin Change是找出使用给定面额d_1....d_m的硬币,总金额为n时,找零的方式数量的问题。它是整数分割的一般情况,并且可以用动态规划解决。
通常问题被问作:如果我们想要找零N美分,并且我们有无限供应的价值为S = { S_1, S_2,....., S_m }的硬币,我们可以使用多少种方法找零?(为了简单起见,顺序不重要。)
我尝试了这个并且运行良好。那么我如何修改它以在不同硬币的顺序实际上很重要时找到所有可能的硬币组合。
即:之前
例如,对于N = 4,S = {1,2,3},有四个解决方案:{1,1,1,1},{1,1,2},{2,2},{1,3}。
现在:
对于N = 4,S = {1,2,3},有7个解决方案:{1,1,1,1},{1,1,2},{1,2,1},{2,1,1},{2,2},{1,3},{3,1}
这里的{1,1,1,1}即使能够按不同的顺序选择四个“1”,它也必须被视为一个最终组合,而不是将四个硬币视为不同。因此,实际的不同硬币顺序需要不同才能将其计算为单独的组合。
例如:{1,1,3}不会假定{1_a,1_b,3_a}是一种组合,而{1_b,1_a,3_a}是另一种具有不同顺序的组合。
Coin Change是找出使用给定面额d_1....d_m的硬币,总金额为n时,找零的方式数量的问题。它是整数分割的一般情况,并且可以用动态规划解决。
通常问题被问作:如果我们想要找零N美分,并且我们有无限供应的价值为S = { S_1, S_2,....., S_m }的硬币,我们可以使用多少种方法找零?(为了简单起见,顺序不重要。)
我尝试了这个并且运行良好。那么我如何修改它以在不同硬币的顺序实际上很重要时找到所有可能的硬币组合。
即:之前
例如,对于N = 4,S = {1,2,3},有四个解决方案:{1,1,1,1},{1,1,2},{2,2},{1,3}。
现在:
对于N = 4,S = {1,2,3},有7个解决方案:{1,1,1,1},{1,1,2},{1,2,1},{2,1,1},{2,2},{1,3},{3,1}
这里的{1,1,1,1}即使能够按不同的顺序选择四个“1”,它也必须被视为一个最终组合,而不是将四个硬币视为不同。因此,实际的不同硬币顺序需要不同才能将其计算为单独的组合。
例如:{1,1,3}不会假定{1_a,1_b,3_a}是一种组合,而{1_b,1_a,3_a}是另一种具有不同顺序的组合。