给出表示数字 N 所需位数的大 O 界限

Give a big-O bound on the number of bits needed to represent a number N

N为随机数,

我对绑定感到困惑。

感谢任何帮助。

嗯,对于一个随机数 n,存在 ab 使得 2^a <= n <= 2^b 或者只是一个 k 使得 2^(k-1) <= n <= 2^k - 1 (1)。我们知道对于任何小于 2^n 的数字,我们需要 log(2^n) = n * log(2) = n 位来表示它 (2)。例如:

  • 5: 4 < 5 < 8;我们需要 3 位来表示 4,5 位来表示 8 => 我们需要 4 位来表示 5
  • 23: 16 = 2^4 < 23 < 32 = 2^5;所以我们需要 5 位来表示 23

总之,对于随机数n的精确位数b,我们可以使用公式:

b = floor(log(n)) + 1

因此,我们要使用的大 O 表示法是 O(floor(log(n)) + 1) = O(logn)


额外信息:


1) 我认为它是一个随机的整数正数(尽管它也很容易概括为负数),我想这是你的问题案例;对于小数来说,概括这个公式有点困难

2) log表示法是指以2为底的对数