假设我们有一个整数n≥1。 在循环内部,而n大于1.如果n是偶数,则n = n / 2.如果n是奇数,则n = n + 1.否则,算法将退出循环并返回"成功& #34;
我怎样才能从归纳中证明这个问题。我想用感应来假设k≥1。但是,在归纳步骤中我不能假设的条件是什么?
答案 0 :(得分:0)
分裂问题3例。
1)如果n = 1,我们就完成了。
2)如果n> 1和n是偶数。如果n大于1,则下一个数字将是n / 2,它肯定小于n。
3)如果n> 1和n是奇数。我们可以写n = 2 * k + 1.在下一次迭代之后我们得到n = 2 * k + 2.经过两次迭代后我们得到n = k + 1.我们知道k + 1 < 2 * k + 1。
对于案例1)我们已经完成,对于案例2)和3)我们将问题减少到更小的问题。
你可以从中进行锻炼诱导。
如果需要,我可以写完整的归纳法。