证明函数终止

时间:2016-04-09 06:39:21

标签: algorithm

if x is even , then F(x)=x/2 else F(x) = F(F(3x+1))。证明F(x)终止所有整数x

任何人都可以帮助我。我正在研究“计算机算法基础”。我无法理解如何继续这一点。

1 个答案:

答案 0 :(得分:4)

书中有一条暗示你省略了:"考虑形式(2i + 1)2 ^ k - 1的整数并使用归纳"。没有提示,这是一个相当难的问题。

因此,使用提示,请注意您可以为某些i和k写任何数字(2i+1)2^k - 1。您可以观察到k是基数2中数字底部的1的数量。

使用此功能,您可以证明F在k上通过归纳终止。 k = 0的基本情况是立即的,因为(2i+1)2^0 - 1是偶数。

否则,当k> 0时,(2i+1)2^k - 1为奇数。然后

  F((2i+1)2^k - 1)
= F(F(3((2i+1)2^k - 1)+1))
= F(F(3(2i+1)2^k-2))
= F((3(2i+1)2^k-2)/2) (since k>0)
= F(((6i+3)2^k-2)/2)
= F((2(3i+1)+1)2^{k-1}-1)

通过归纳假设,F((2(3i+1)+1)2^{k-1}-1)终止,因为k较小,我们已完成。

相关问题