在第5页的底部是短语“将 k 更改为 k ⊕(1 j +1 )<子> 2 子>”。即使在二进制中,对于任何仍为1的功率是不是1?我认为这一定是个错字。我发送了一封电子邮件给Knuth博士报告,但我不希望听到几个月。与此同时,我正试图找出应该是什么。
答案 0 :(得分:4)
这可以通过使用(...) 2 表示按位表示的约定来解决。 (1 j + 1 ) 2 则仅由j + 1个组成,而不是指取幂。您可以在第8页的TAOCP第4卷第1分册中更明确地解释此惯例,例如:
如果x几乎是任何非零2-adic 整数,我们可以写出它的位 形式
x = (G01 一 10 B'/ SUP>)<子> 2 子>
换句话说,x由一些组成 任意(但无限)二进制字符串 g,接着是0,然后是 由+ 1个,然后是b零, 某些a>&gt; = 0且b&gt; = 0。
[我已用g代替符号alpha来保存编码问题]
回到原始查询; k⊕(1 j + 1 ) 2 等同于k⊕(2 j + 1 - 1) 暗示(1 j + 1 ) 2 =(2 j + 1 - 1):这是因为左边是有效位为j + 1(连续)的整数;右边是指数。例如,j = 3:
(1 4 ) 2 =(1111) 2 =(2 4 - 1)
希望有所帮助。
答案 1 :(得分:0)
可以在勘误表页面找到已知拼写错误的列表:
http://www-cs-faculty.stanford.edu/~knuth/taocp.html
您报告的错字不存在。如果它确实是一个错字,你可能有资格获得Knuth自己的现金奖励。