求助丨编程与证明题:二分查找的整数期望条件
185
2025.07.19
2025.07.19
发布于 福建

编程与证明题:二分查找的整数期望条件

题目:

有序数组包含 n 个元素(元素为 1, 2, \dots, n 的整数),每个元素被查找的概率相等。用二分法查找该数组时,每次通过比较中间元素划分范围,直到找到目标元素,所需的比较次数即为查找次数。记查找的期望次数为 E 。

(1)编写程序,输出1到 2^{63}-1 范围内所有满足“ E 为整数”的 n 。

(2)证明:你在(1)中输出的所有 n 恰好是形如 2^t - 1 - t ( t 为整数且 t \geq 2 )的数。

要求:

- 程序需保证输出的 n 既不遗漏也不超出范围。

- 证明过程需包含“充分性”(若 n = 2^t - 1 - t 则 E 为整数)和“必要性”(若 E 为整数则 n 必形如 2^t - 1 - t )。

(注:二分法的查找次数指从第一次比较到找到元素的总比较次数,例如查找数组唯一元素时,比较次数为1)

评论 (0)