→ M4Tank: 淦 講中文12/10 18:38
OK
一般而言如果要做平方根計算要怎麼辦? 最爛的辦法就是從1開始算
例如121的平方根 就從1平方 2平方 開始算到11之後得到解答
更好一點的算法就是用/2的
先算121/2也就是60的平方
發現太大了就再/2算30依序下去->15->7->11就會得到答案了
計算量從11次變成5次
但是當我們要計算各種大數字的平方根就會浪費更多時間
而上面的神奇數字就能直接把計算量減低許多
開根號是蠻基礎的數學計算 電腦就是各種數字計算
用越高的效率得到平方根 程式的效能就越好
所以這個神奇數字超屌的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.108.52 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1607597641.A.B96.html
推 marktak: peko看不懂呢 講一下無理數咩 12/10 18:58
你是說根號101這種無理數嗎?如果是/2這種方法就連小數點一起算
50.5->25.25->12.125->6.062->9.093->10.858
看你想算到多精準 電腦本來就沒有辦法完整表示無理數 只能給近似值
※ 編輯: ZooseWu (111.243.108.52 臺灣), 12/10/2020 19:03:51
推 kitoik5427: 好像有點懂了 12/10 19:04
→ galilei503: 7 怎麼變成11的啊 12/10 19:07
因為7*7=49 比我們要的121還要小
所以就抓7跟15的中間11
比較小就往左邊的中間抓 比較大就往右邊的中間抓
大概像下圖這樣 https://imgur.com/OkyLsQW
→ galilei503: 15太大,7太小,然後11哪來的 12/10 19:08
→ galilei503: 不是要找 891011121314 12/10 19:08
推 emptie: 15與7的average 12/10 19:09
推 galilei503: 幹,太神 12/10 19:10
11的例子不太好 剛好除在中間就是答案 通常都會在答案附近繞
推 jackyT: 這是John Carmark那個嗎 12/10 19:12
不清楚欸 前篇推文有說道是雷神3的引擎
推 r98192: 15+7的均值吧? 12/10 19:14
→ r98192: 總之我的理解是 很多東西套了魔術數字後 不只長高了考試也 12/10 19:15
→ r98192: 都每次都得了100分 對不對呀? 12/10 19:15
不對 這個魔術數字是給平方根專用的 所以才會是魔術數字
它沒有其他地方可以用 所以沒有太多其他的線索可以找出來
→ yyh121: 這樣是作弊 裁判 這個公式作弊== 12/10 19:17
以前電腦效能差的時候工程師真的是無所不用其極的在減少電腦負擔
更少的負擔=更多資源可以做更好的效果/遊戲/畫面
還有一個是以前的引擎用簡單的內差法算三角函數近似值 就可以避免效能消耗
→ spfy: 如果有看過天才寫程式 就不會有太多好奇 用就對了 12/10 19:44
有機會一窺底層函式庫的時候 都覺得我自己到底在寫什麼狗屎
以前看C語言的STL學習書 真的覺得那些程式實在太精妙了
推 GTR12534: 不看實作真的不會知道 *2 可以用 shift 做 12/12 02:47
/2也可以 只是常常會忘記
※ 編輯: ZooseWu (111.243.108.52 臺灣), 12/12/2020 04:24:10