- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我最近在做一个项目欧拉问题(即#31),它基本上是找出我们可以使用集合 {1,2,5,10,20,50,100,200} 的元素求和为 200 的多少种方法。
我使用的想法是这样的:求和到 N 的方法数等于
(the number of ways to sum N-k) * (number of ways to sum k), summed over all possible values of k.
我意识到这种方法是错误的,因为它会创建多个重复计数。我试图调整公式以避免重复,但无济于事。我正在寻求堆栈溢出者的智慧:
最佳答案
在尝试避免重复排列时,在大多数情况下可行的直接策略是仅创建上升或下降序列。
在您的示例中,如果您选择一个值然后对整个集合进行递归,您将得到重复的序列,例如 50,50,100
和 50,100,50
和 100,50,50
。但是,如果您使用下一个值应等于或小于当前选定值的规则进行递归,那么在这三个值中,您只会得到序列 100,50,50
。
因此,仅计算唯一组合的算法将是例如:
function uniqueCombinations(set, target, previous) {
for all values in set not greater than previous {
if value equals target {
increment count
}
if value is smaller than target {
uniqueCombinations(set, target - value, value)
}
}
}
uniqueCombinations([1,2,5,10,20,50,100,200], 200, 200)
或者,您可以在每次递归之前创建集合的副本,并从中删除您不想重复的元素。
上升/下降序列方法也适用于迭代。假设您要查找三个字母的所有唯一组合。此算法将打印类似 a,c,e
的结果,但不会打印 a,e,c
或 e,a,c
:
for letter1 is 'a' to 'x' {
for letter2 is first letter after letter1 to 'y' {
for letter3 is first letter after letter2 to 'z' {
print [letter1,letter2,letter3]
}
}
}
关于algorithm - 寻找硬币组合以产生给定变化的不正确的递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33409088/
我目前正在做一个项目,试图开发一种用于 P2P 能源交易的货币和模型,其中每产生一千瓦时的可再生能源就会向该生产商类型转换一枚硬币。我的问题是关于销毁智能合约中的代币。 所有与我的项目类似的当前实现都
在没有Maps帮助的情况下通过Memoization解决问题,由于读取文件的方法,我得到了TLE,根据我的说法,这不应该是这种情况。可能的原因是什么? 这是给出 AC - http://ideone.
考虑下面这段伪代码,其中d是面额值数组,k是面额数,n是要进行更改的金额。 Change(d; k; n) 1 C[0] 我真的不明白这部分,你为什么要用它,谁能给我解释一下! 最佳答案 为了回答
我正在尝试在我的网站上实现 Coin Slider (http://workshop.rs/2010/04/coin-slider-image-slider-with-unique-effects/)
我有使用硬币 slider 的画廊 var $jq = jQuery.noConflict(); $jq(window).load(function() { var imhei
我使用了从该站点提取的硬币 slider http://workshop.rs/projects/coin-slider/ .它现在自动滚动并仅在悬停时显示上一个和下一个。我需要禁用自动滚动并正常显示
我的问题是一道CodeFu练习题(2012 round 2 problem 3)。它基本上归结为将整数数组分成两个(几乎)相等的两半并返回两者之间可能的最小差异。我在下面包含了问题描述。如评论中所述,
我们的老师要求我们制作一 jar 硬币,用来计算我们有多少便士、一毛钱等,然后给出总金额。 这是他希望我们使用的模板 https://online.pcc.edu/content/enforced/7
我正在尝试使用币安币 future 的 api 下载 BTC/USD 永续 future 的历史价格数据,具体来说,我想使用 this endpoint .但是,我找不到必须为 BTC/USD 指定的
我上周刚开始学习计算机科学,我们得到了一个名为“硬币”的工作表,其中我必须找出一组硬币中有多少个 25 美分、10 美分、5 美分和 10 便士。我遇到了很多麻烦,并收到了该错误。这是我的代码 pac
我正在构建一些使用消耗性硬币的测验。我使用 NSUserDefault 来保存设备上的硬币及其工作。我还在 qiuz 中使用 CloudKit 处理数据。 不麻烦的是,如果用户切换设备如何恢复硬币?有
我是一名优秀的程序员,十分优秀!