整數(shù)開(kāi)平方算法學(xué)習(xí)記錄
????????之前同學(xué)問(wèn)我一段代碼。本來(lái)我也不懂,就去查了一下,又沒(méi)睡著午覺(jué)連想了大概5小時(shí),終于想通了。此文紀(jì)念一下那個(gè)頭腦發(fā)熱的中午。

????????這是那段代碼。
????????《平方根的C語(yǔ)言實(shí)現(xiàn)(二)?——?手算平方根的原理》(https://www.cnblogs.com/Colin-Cai/p/7220506.html)這篇的思想跟我看到的代碼的思想是一樣的,于是我認(rèn)真學(xué)習(xí)了一下。
????????計(jì)算方法原來(lái)從完全平方公式里來(lái)的
其實(shí)是開(kāi)方結(jié)果的最低位,這一輪計(jì)算中要算的;
?是開(kāi)方結(jié)果的第2位到最高位,是上一輪計(jì)算的結(jié)果;
是進(jìn)制數(shù)。
????????整個(gè)計(jì)算過(guò)程就是
粗略理解,每2位被開(kāi)方數(shù)可得到1位結(jié)果,然后余數(shù)就扔給下一輪計(jì)算,跟除法一樣。兩位兩位地排是因?yàn)槠椒疥P(guān)系,算立方根當(dāng)然就是3位3位地排好咯。
十進(jìn)制就是?。
二進(jìn)制就是,而且b不是0就是1,不用像十進(jìn)制那樣要比較很多次,也不需要用到乘法。
????????二進(jìn)制計(jì)算中 4a 恰好是 a 左移2位,想到這就能理解代碼了。下面就看別人代碼是怎么通過(guò) root 的移動(dòng)實(shí)現(xiàn) root 既作根也作 4a 的。
????????可以看到,place的作用有:1、標(biāo)記;2、在??里面,參與比較;3、為 root 賦值。
整數(shù)開(kāi)平方算法學(xué)習(xí)記錄的評(píng)論 (共 條)
