也說說演算法的力量

2021-08-22 05:32:16 字數 977 閱讀 9426

剛巧看到乙個網友研究「演算法的力量」,說明好的演算法有時候能大大提高速度。不過就這個網友提出的問題,其實不需要使用計算機來求解,數論方法很容易就能獲取到方程的所有解。

問題是:

就是要找乙個數出來,把這個數個位上的數字挪到最前面去,例如 123 變成 312,12345變成51234。但是還要求得到的「新數」要是原來數的兩倍。

文章作者假定末位數為y,10位以上為x,則需求就成了

(1) 2*(10x+y) = y*10

(n-1) + x

化簡結果就是
(2) x = y (10

(n-1) -2)/19

然後作者變成遍歷計算10

(n-1) -2是否整除19。其實到這一步,數學的方法還可以進一步,不過需要一點的數論專業知識:

用數論的語言是求n-1使得

(3) 10

(n-1) = 2 (mod 19)

因為10和19互質(只有公約數1)、而且19是質數,所以根據費馬定理

(4) 10

19-1 = 1 (mod 19)

如果等式(3)有解,n必定小於19,設定t=19-n,則
(5) 10

19-1-t = 1/10

t (mod 19)

其中1/10

t代表10

tz = 1 (mod 19)中的z值,什麼時候z=2就是我們想要的,換言之,我們只需要知道什麼時候10

t*2 = 1 (mod 19)就行,這個結果就很簡單了,t的最小值為1。

所以,求解結果是:n最小值為19-t=18。有了n,y從1-9都是可能的解。

所以,有時候,理論比計算來得更有挑戰,只有人們沒有找到求解方法的時候,才會思考各種逼近結果的演算法。不過讓我有點納悶的是,小學5年級學生用的數學課外讀物怎麼就有這麼高深的問題了?

也說說培訓

現在的公司招聘,特別是面向大學畢業生的招聘,很多大學生都會問乙個問題,就是你公司培訓機制怎麼樣。我記得我剛進公司的時候,公司那時候人員雖然數量沒有現在多,不過水平什麼的要比現在好很多。當時剛進公司有3個培訓,第乙個就是日語培訓,這個培訓一直到現在公司還是在做,而且日語老師水平也還不錯,效果也還行。第...

也說說圓角效果

看了許多的精彩 當然是個有個精彩的!但圓角效果幾乎是大家共同的喜好。原因可能是圓角,實現技術不難,對 的整體效果改善卻是顯而易見的。我也有過一些嘗試,但都不算完滿的。從css加到純css,再到js封裝的圓角,對vml,對css sprites 非圓角技術 的嘗試。個個都好,但也個個都有不好的地方。j...

也說說「80後」

這兩天乙個說得比較熱點兒的話題就是說中國國家桌球隊員的素質與球技不成比例。與此相似地,前天就在實驗室,也不知道兩個師弟師妹說什麼呢,只聽到乙個師妹大聲問 是 的學生嗎?這個師妹不是我的導師的學生,而是乙個課題組的一位老師的學生,但當著 老師這麼多學生的面,當著這麼多自己師兄姐的面,直呼其名是不是有點...