哥们 这个问题很有意思,
n=n^m; // 这一步的意思是:n^m 并把它的值赋给 n,用第一个n用来记录n^m ,第二个n是初始值 故: n= n^M; 这一步很容易理解
m=n^m;相当于m=(n^m)^m // 这一步相当于m=(n^m)^m,没错,这时就出现了两个问题,第一个问题容易看到那就是, 一个数异或 另外一个数2次,结果不变还是那个数。所以m=n^m, 相当于 m=(n^m)^m 它产生的结果就是m=n,把n的赋给m。 这个问题也可以看到,但是这一步又产生了另外一个问题,那就是 (n^m)^m 的结果是n,关键就在这里这个n是初始值n,不是上一步第一个n^M后的n,而是上一步中第二个n,初始值的n 。n又回到原来了。
不要被第一步n=n^m中第一个n所迷惑了
n = n^m; //第三步n^m, n的值没变,但m的值是n^m, 所以 相当于n^(n^m)
这是我的理解 ,希望对你有所帮助
|