<<算法导论>>习题4-2怎么做
题目如下:A[1...N]包含[0...n]中的所有整数数字except one,找出这个数字很简单,只要用一个辅助数组B[0...N]就可以找出少掉的这个数字,复杂度为O(n),但是现在的问题是不可以直接读取A中的整数,因为A中的整数是以二进制存取的,唯一的操作就是取其中的第几位,比如说取第j位,这个操作花费一个常量时间。
要求证明:找出那个少掉的数字仍只需要复杂度O(n)。A以外的数字仍可以通过一个常量时间读取。
(不知道题目的意思不能直接读取A中的整数,是不是紧紧不能读取10进制,因为如果可以读取二进制的话,就可以对A中的N个数用异或的方法找出那个少的数了。)
(还有感觉中文版的翻得不是很好,有些地方有点含糊,比如说最后这句"A以外的数字仍可以通过一个常量时间读取"是要求我们证明的呢,还是给的一个已知条件呢,虽然我觉得应该是个已知条件)