反复迭代是对的。这道题凡是用导数做的都是错的。。
因为这个函数的(f(x+dx)-f(x))/dx是dx以1/2^n的一种点态形式收敛的,所以这个极限可能并不存在(可以以数列的一个子数列收敛,但原数列不收敛来类比)更别说这个函数的导数了。
所以用反证法证明不存在x1,x2使得f(x1)不等于f(x2),不妨假设(f(x2)>f(x1),x2>x1)
令m=(f(x2)-f(x1))/(x2-x1),因为上面那个极限趋于0,所以对于x1和m,存在1个N,使得f(x1+1/2^N)-f(x1)<m/2^N,然后在考虑x1+1/2^N和m,存在N2,使得f(x1+1/2^N+1/2^N2)-f(x1+1/2^N)<m/2^N2,这样反复迭代。注意为了让这个过程可以一直进行到x2不在中途停住,所以要证明那个1/2^Nx这些数的和不收敛,只要利用收敛设极限为a,在f(x1+a)处利用上面那个极限趋于0,但是存在N3使得f(x1+a+1/2^N3)-f(x1+a)<m/2^N3,所以这个极限至少是a+1/2^N3,矛盾(注意N3是个固定的数)所以该数列发散,然后注意在快要接近x2的时候利用f连续(因为这样的形式的和只能是有理数,但x2和x1的差可能是无理数),然后把上面的式子加和就知道f(x2)-f(x1)<m(x2-x1),矛盾。所以原假设不成立。(对于前面那个矛盾的式子可以考虑平均数,比如f(x1+1/2^N)-f(x1)<m/2^N,所以x在前进1/2^N时,f(x)前进不到m/2^N,所以有最后那个式子)