好的,我正在努力克服Knuth的混凝土数学,还有一些我还不了解的例子。
J(n)= 2 * J(n / 2)-1
它来自第一章。它可以为那些熟悉混凝土数学的人解决约瑟夫问题。有一个解决方案,但绝对没有解释。 我尝试用迭代法解决它。这是我到目前为止所提出的
J(n)=(2 ^ k)* J(n /(2 ^ k)) - (2 ^ k - 1)
我被困在这里。任何帮助或提示将不胜感激。
答案 0 :(得分:3)
我会先回想起约瑟夫斯问题。
我们有 n 人聚集在一起。执行者将以下列方式处理圆圈:
通过快速查看此程序,我们可以看到处于偶数位置的每个人都将在第一次运行中被杀死。当所有“偶数”都死了,谁是剩下的人?那么它取决于n的平价。
如果n是偶数(比如n = 2i),那么其余的人是1,3,5,...,2i-1。剩下的问题是我的人而不是n的圈子。让我们在“新”圆圈中的位置和n个圆圈中的初始位置之间引入一个映射图 even 。
map 甚至(x)= 2.x - 1
这意味着新圆圈中x位置的人在初始位置的位置为2.x - 1。如果幸存者在新圈子中的位置是J(i),那么某人必须占据的位置才能在n = 2.i人的圈子中生存
map 甚至(J(i))= 2.J(i) - 1
我们有第一个递归规则:
对于任何整数n:
J(2.n)= 2.J(n)-1
但是如果n是奇数(n = 2.j + 1),那么第一次运行最终会杀死所有“均匀”并且执行者处于位置n。 n追随者是1 ...因此,下一个被杀死的是1.幸存者是3,5,...,2j + 1并且刽子手继续进行,好像我们有一个j圈的人。映射与偶数情况略有不同:
map odd (x)= 2.x + 1
3是新的1,新的2,等等......
如果幸存者在j圈中的位置是J(j),那么想要在n = 2j + 1的圆圈中存活的人必须占据位置J(2j + 1):
J(2j + 1)= map odd (J(j))= 2.J(j)+ 1
绘制第二个递归关系:
对于任何整数n,我们有:
J(2.n + 1)= 2.J(n)+ 1
从现在开始,我们可以使用2个递归关系计算 ANY 整数n的J(n)。但如果我们再看一点,我们可以做得更好......
因此,对于每个n = 2 k ,我们有J(n)= 1.好的,但是对于其他数字?如果你写下第一个结果(比如说n = 20),你会看到序列似乎是伪周期性的:
1 2 3 4 5 6 7 8 9 10 11
1 1 3 1 3 5 7 1 3 5 7
从2的幂开始,似乎位置在每一步增加2,直到下一次2的幂,我们从1再次开始...因为,给定一个整数n,有一个唯一的整数m( n)这样
2 m(n)≤n<2。 2 米(N)+1
令s(n)为整数,使得n = 2 m(n) + s(n)(我称之为“s”代表“shift”)。 我们观察的数学翻译是J(n)= 1 + 2.s(n)
让我们用强感应来证明它
对于n = 1,我们有J(1)= 1 = 1 + 2.0 = 1 + 2.s(1)
对于n = 2,我们有J(2)= 1 = 1 + 2.0 = 1 + 2.s(2)
假设任何k的J(k)= 1 + 2.s(k)使得k∈[1,n],我们证明J(n + 1)= 1 + 2.s(n + 1)
我们有n = 2 m(n + 1) + s(n + 1)。显然,2 m(n)是偶数(除非在n = 1的平凡情况下),因此n的奇偶性由s(n)承担。
如果s(n + 1)是偶数,则我们表示s(n + 1)= 2j。我们有
J(n + 1)= 2.J((n + 1)/ 2) - 1 = 2.J(2 m(n + 1)-1 + j) - 1
由于该陈述对于任何k∈[1,n]都是正确的,因此1≤k=(n + 1)/ 2 <1。 n因此:
J(n + 1)= 2.(2j + 1) - 1 = 2.s(n + 1)+ 1
我们可以类似地解决奇怪的情况。 为任何整数n建立公式:
J(n)= 2.s(n)+ 1,其中m(n),s(n)∈ℕ这是唯一的整数 2 m(n)≤n<2。 2 m(n)+1 和s(n)= n - 2 m(n)
换句话说:m(n)=⌊ln 2 (n)⌋和s(n)= n - 2 ⌊ln 2 (n)⌋< / SUP>
答案 1 :(得分:1)
从一些简单的例子开始,做出猜测,然后使用归纳来(dis)证明你的猜测。
考虑n = 2的幂。
J(2 ^ 0)= 1(给定)
J(2 ^ 1)= 2J(2 ^ 0) - 1 = 1
J(2 ^ 2)= 2J(2 ^ 1) - 1 = 1
好吧,让我们猜测所有n&gt; = 1的J(n)= 1。
基本情况:J(1)= 1,根据定义为真。
归纳步骤:对于某些任意k,假设J(k)= 1。然后J(2k)= 2J(k)-1 = 1。
因此,通过归纳,对于所有n,J(n)= 1(假设分割舍入为整数)。
答案 2 :(得分:0)
J(n)=2*J(n/2)-1
J(n)-1=2*J(n/2)-2
J(n)-1=2*(J(n/2)-1)
T(n)=2*T(n/2)
,其中T(n)=J(n)-1
T(n)=2^log2(n)*T(1)
J(n)=2^log2(n)*(J(1)-1)+1