呵呵,小黑的分析很透彻,那即是我的想法。
在递归结构上,我的算法与小曹所看到的算法没什么区别,寻找一个区间内的满足条件的分数,然后以此分数将原区间划分成两个区间继续这一步骤。这个过程和二叉树的中序遍历是完全一样的。
所以其实问题的关键在于如何找到这个满足条件的分数。具体又可细化为两个问题。
1.如何判断区间内是否存在满足条件的分数?
2.如果确定区间内存在满足条件的分数(可能有多个),如何找到其中一个(具体是哪个无所谓)?
由于小曹的原题在0到1的区间内有一个很漂亮的数学结构,所以那个算法构造的确实简洁漂亮,称得上优美。
而我的算法是按小曹扩展后的要求做的,其定义域是正有理数,在这个范围内上面的数学结构失效,我也没有找到一个类似的简单的数学结构,只能穷举,这也是我的算法不能称为完美的主要原因。
42楼的困惑在于对我的式子推导错误造成的。其中e的计算过程存在一个取整运算。正是这个运算的存在超出了我目前的分析能力,而我目前也无法消除这个运算,所以只能穷举。
小曹的困惑可能是我将这个关于n的穷举过程也融入了递归当中。
即使这样,目前来看这个算法的效率还是明显优于现在已有的非递归遍历的算法。
有谁能解决上面我提出的两个问题,才能获得一个真正优美的算法。
在递归结构上,我的算法与小曹所看到的算法没什么区别,寻找一个区间内的满足条件的分数,然后以此分数将原区间划分成两个区间继续这一步骤。这个过程和二叉树的中序遍历是完全一样的。
所以其实问题的关键在于如何找到这个满足条件的分数。具体又可细化为两个问题。
1.如何判断区间内是否存在满足条件的分数?
2.如果确定区间内存在满足条件的分数(可能有多个),如何找到其中一个(具体是哪个无所谓)?
由于小曹的原题在0到1的区间内有一个很漂亮的数学结构,所以那个算法构造的确实简洁漂亮,称得上优美。
而我的算法是按小曹扩展后的要求做的,其定义域是正有理数,在这个范围内上面的数学结构失效,我也没有找到一个类似的简单的数学结构,只能穷举,这也是我的算法不能称为完美的主要原因。
42楼的困惑在于对我的式子推导错误造成的。其中e的计算过程存在一个取整运算。正是这个运算的存在超出了我目前的分析能力,而我目前也无法消除这个运算,所以只能穷举。
小曹的困惑可能是我将这个关于n的穷举过程也融入了递归当中。
即使这样,目前来看这个算法的效率还是明显优于现在已有的非递归遍历的算法。
有谁能解决上面我提出的两个问题,才能获得一个真正优美的算法。
重剑无锋,大巧不工