|
[问题描述] 对于给定的正整数N,判断是否存在正整数E,使 的前若干位与N相同,且N的长度小于 的长度的一半。若存在,求出最小的E。
[分析] 我们先证明"no power of 2"是不会出现的。
引理 如果a是无理数,那么对任意的 和b,存在无穷多的整数m, n使得 。该结论可由"丢番图逼近论"证明得到.
证明 由引理, 满足该式的m, n无穷多.得到  化简得  于是  这里 开头就是N. 证毕.
受上面证明过程的启发,我们得到了这题的如下解法: 设N的位数为L,则 . 因为满足要求的E总存在,可设 , 所以 . 设 , 于是 . 要使整数E存在,必须 . 所以我们从L开始枚举K,直到a≠b .于是所求的 .
[说明]
这样,该题在理论上是可解的,但实际上受编程语言的精度限制,并不是总能求得解。所以也可以枚举E,但高精度计算时只要算前若干位就够了。这点留给各位继续思考。
|