为了证明“删数问题”的算法满足贪心选择性质,我们可以使用反证法。以下是详细的证明过程:
第一步,根据反证法的使用,我们假设反面命题,即假设存在一个最优解不包含贪心选择。
第二步,明确“删数问题”的贪心选择性质:在每一步选择中,我们应该删除当前数字串中的最小数字(如果是前导零则跳过,直到找到非零的最小数字)。
第三步,设原数字串为S,长度为n。假设最优解不包含贪心选择,即最优解在删除数字时,没有总是选择当前剩余数字串中的最小数字。
第四步,根据假设,存在一个最优解,它删除了三个数字后得到的数字串为T(在这个例子中,T=13)。由于假设最优解不包含贪心选择,那么在删除这三个数字的过程中,至少有一次没有选择当前剩余数字串中的最小数字。
第五步,我们构造一个新的数字串T
′
,它是通过贪心选择性质得到的。即,在每一步中,我们都选择删除当前剩余数字串中的最小数字(跳过前导零)。
第六步,由于贪心选择性质总是选择删除最小数字,因此得到的数字串T
′
在数值上一定小于或等于通过其他任何方式(包括最优解的方式)删除相同数量数字后得到的数字串。特别地,由于假设最优解不包含贪心选择,因此T
′
在数值上一定小于最优解得到的数字串T。
第七步,然而,这与我们的假设矛盾,因为我们已经假设最优解得到的数字串T是最小的。由于我们找到了一个比最优解更小的数字串T
′
,因此我们的假设是错误的。
第八步,根据反证法的原理,由于我们找到了矛盾,因此原命题成立,即“删数问题”的算法满足贪心选择性质。
...全文