大家早上好,今天我已经展示了一种评估整数整数平方根的巧妙方法。尽管确实有效,但我仍然不明白它为什么有效。这是代码:
mov output, 0
mov eax, input
mov ebx, 1
loop:
sub eax, ebx
cmp eax, 0
jl end
inc output
add ebx, 2
jmp loop
end:
现在请注意我的问题,我知道这是如何工作的:它将输入减少不均匀数(1、3、5、7 ...),如果输入仍然> = 0,则将输出增加1并重复该过程,否则输出是输入的整数平方根。我不知道这是该算法起作用的原因,我在问是否有人知道它。
要生成(2 i-1)的i = 1到n的和,将数字取反并加:
1 + 3 + 5 + 7 + ... + 2n-3 + 2n-1
+ 2n-1 + 2n-3 + 2n-5 + 2n-7 + ... + 3 + 1
----------------------------------------------
2n + 2n + 2n + 2n + ... + 2n + 2n
= 2n ^ 2,但由于总和加了两次除以2,所以
i = 1至n的(2 i-1)= n ^ 2的总和。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句