您的当前位置:首页正文

kata03:估算

来源:华拓网

估算是一种挺有用的天赋. 如果你能估算出代码运行的效率和所占用的内存, 那么在设计的时候就会做到有的放矢.

这个kata的内容就是下面的一系列问题, 请给出估算的答案:

有多大?

  • 下面这些无符号数字大约需要占用多少位(bit)?
    1,000
    1,000,000
    1,000,000,000
    1,000,000,000,000
    8,000,000,000,000

  • 我们乡里有20,000户家庭, 那么为这些人存储姓名, 地址和电话的话, 需要多大的空间(所有的数据都存为字符型)?

  • 把一百万的整数存入二叉树, 大概需要多少个节点? 二叉树大约为几层? 如果是32位的系统, 需要多少存储空间?

有多快?

Object Oriented Software Construction
  • 上面这本书的电子版大约有1200页,用我家56k的猫去拨号传需要多长时间?

  • 我的二分查找算法处理一万个元素大约需要4.5秒, 处理十万个元素大约需要6秒, 那处理一千万个元素需要多长时间?(假设我有足够的内存, 不用分页)

  • Unix系统的密码使用单向散列函数存储:字符串被哈希算法加密成不可逆向的密文. 攻击方法之一就是收集尽可能多的明文密码, 按照这个算法转为密码字典, 进行暴力比对破解(笨办法). 假设要破解16位长度的密码, 每一位有96种可能. 尝试一次需要1ms时间, 破解出来大约需要多少时间?