估算是一种挺有用的天赋. 如果你能估算出代码运行的效率和所占用的内存, 那么在设计的时候就会做到有的放矢.
这个kata的内容就是下面的一系列问题, 请给出估算的答案:
有多大?
-
下面这些无符号数字大约需要占用多少位(bit)?
1,000
1,000,000
1,000,000,000
1,000,000,000,000
8,000,000,000,000 -
我们乡里有20,000户家庭, 那么为这些人存储姓名, 地址和电话的话, 需要多大的空间(所有的数据都存为字符型)?
-
把一百万的整数存入二叉树, 大概需要多少个节点? 二叉树大约为几层? 如果是32位的系统, 需要多少存储空间?
有多快?

-
上面这本书的电子版大约有1200页,用我家56k的猫去拨号传需要多长时间?
-
我的二分查找算法处理一万个元素大约需要4.5秒, 处理十万个元素大约需要6秒, 那处理一千万个元素需要多长时间?(假设我有足够的内存, 不用分页)
-
Unix系统的密码使用单向散列函数存储:字符串被哈希算法加密成不可逆向的密文. 攻击方法之一就是收集尽可能多的明文密码, 按照这个算法转为密码字典, 进行暴力比对破解(笨办法). 假设要破解16位长度的密码, 每一位有96种可能. 尝试一次需要1ms时间, 破解出来大约需要多少时间?
网友评论