答案 0 :(得分:4)
前5位数应存储一次,因为5位数表示0-99999十进制数中的数字,您需要至少存储二进制数。
现在,允许您输入99999个数字的第一个二进制值是131072,即2 ^ 17。所以17位用于公共前缀。
现在,您需要为每个数字的最低部分存储1000个5位数字。与以前一样的方法。 每位数17位= 17000位。
Total: 17000 + 17 = 17017 bits
。
每个字节都有8位,所以
17017/8 = 2127.125
。
您至少需要 2128字节。
答案 1 :(得分:2)
10 5 = 100000.ceil(log 2 (100000))= 17.