证明技巧I——反证法

       反证法(proof by contradiction),或者间接证明(insert proof):为证明一个命题正确与否,去证明这个命题是否存在一个反命题与其矛盾。例如:你想证明一个命题S-“存在无穷多个素数”。那么为了给出这个命题的一个间接证明,一开始先假设这是假的,以这个假设为前提,如果经过一系列的推理后出现了错误,那么有两种情况。第一种我们可以认为推理过程有问题,第二种是如果推理没问题,那么就是一开始的假设就有问题。事实上只有从一个假的假设出发,才有可能在数学上证明这个假设假的。

       通俗的说,反证法就是给出一个和命题相矛盾的假设,当假设成立就说明命题是假的。假设不成立,命题为真。

贪心算法是一种常用的算法思想,它通常用于求解最优化问题。贪心算法的基本思想是:每一步都选择当前状态下最优的解,最终得到全局最优解。但是,贪心算法并不是所有问题都适用,有些问题需要进行证明才能确定贪心算法的正确性。 其中,反证法是一种常用的证明方法。反证法的基本思想是:假设所要证明的命题不成立,然后推导出一个矛盾的结论,从而证明原命题成立。 在贪心算法中,反证法通常用于证明贪心选择性质和最优子结构性质。具体来说,假设贪心算法得到的解不是最优解,然后推导出一个矛盾的结论,从而证明贪心算法得到的解是最优解。 举个例子,假设有一个背包问题,要求在背包容量为C的情况下,选择一些物品放入背包中,使得背包中物品的总价值最大。每个物品有两个属性:重量w和价值v。贪心算法可以选择每次选择单位重量价值最大的物品放入背包中。我们可以使用反证法证明这个贪心算法的正确性: 假设贪心算法得到的解不是最优解,即存在一种更优的解。我们假设这个更优的解选择了物品i和物品j,但是贪心算法没有选择物品j,而是选择了物品k。那么我们可以得到以下两个不等式: v[i]/w[i] > v[j]/w[j] (物品i的单位重量价值大于物品j的单位重量价值) v[i]/w[i] < v[k]/w[k] (物品i的单位重量价值小于物品k的单位重量价值) 将这两个不等式相乘,得到: v[i]*v[k] > v[j]*w[i] 由于v[i]、v[j]、w[i]、w[j]都是正数,所以上式成立。但是,我们知道贪心算法选择物品i和物品k的总价值一定大于选择物品i和物品j的总价值,因为: v[i]*w[k] + v[k]*w[i] > v[i]*w[j] + v[j]*w[i] 这与上式矛盾,因此假设不成立,贪心算法得到的解是最优解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值