Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我如何通过归纳来解决这个问题?
假设给你一个算法作为一个黑盒子,你看不到它是如何设计的,它具有以下属性:如果你输入任何实数序列和一个整数 k,算法将回答 YES 或 NO,指示是否存在子集总和正好为 k 的数。展示如何使用这个黑盒来找到给定序列 {X1, ...., Xn} 的子集,其和为 k。您可以使用黑盒 O(n) 次。
任何想法?
我并不完全相信这里有必要进行归纳。
这是我的两分钱:
假设您有一个数字序列S和整数k,并且您已经知道存在一个数字子集,其和为k。现在,从你的序列中删除一个数字(调用它i),然后在剩下的部分上使用你的黑盒子(使用与k以前相同的方法)。
S
k
i