《二进制的二三事》有6个想法

  1. 小白鼠试毒药问题是否应该是 (2^n)-1 >= 1000, 因为全0是不可能的,至少有一只小白鼠会死

  2. 可以是全0的。表示一只小白鼠都没死。对应的是有毒的那瓶药没有给任何一支小白鼠。因此,应该还是2^n。不需要减去1。

  3. 从编译器的角度来讲,部分的编译器能把相对简单的递归算法转化成迭代算法,因为递归的算法对编译器来说是更友好的算法,更易于在此基础上做更多的优化。

    这个写错了吧,应该是这个吧:

    从编译器的角度来讲,部分的编译器能把相对简单的递归算法转化成迭代算法,因为对编译器来说是更友好的算法,更易于在此基础上做更多的优化。

    后续也有这个错误。

    其实,在这个例子中,为什么递归会慢? 我觉得有以下几个原因:
    1、递归需要对bit[xx]取值,可能需要一次访存
    2、栈构造和销毁,可以通过编译选项修改,或者inline

    不过这篇文章很棒! 多谢分享

电子邮件地址不会被公开。 必填项已用*标注