Re: [閒聊] 寫程式真的這麼邪門嗎?

看板C_Chat作者 (紳士母雞)時間1年前 (2023/01/26 18:10), 編輯推噓4(405)
留言9則, 6人參與, 1年前最新討論串7/19 (看更多)
※ 引述 《SkyPlus (Sky)》 之銘言: : https://liuslog.wordpress.com/2014/06/20/0x5f3759df/ :   : 1/sqrt(x) 用神秘的數字y=0x5f3759df 帶入: :   : y+y*(1.5-(x*y^2)/2) 後直接算出來 :   針對inverse square root 其實回覆提供的文章沒有很好的解釋神秘數字的由來 https://youtu.be/p8u_k2LIZyo
我認為這部影片講解得很清楚 簡單來說是利用浮點數bit representation與log base 2近似的特性 直接把bit representation當log處理 神秘數字則是轉換過程留下的常數 所以後面只需要一次牛頓插值法就能把誤差壓到1% -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.196.44 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1674727833.A.D8C.html

01/26 18:21, 1年前 , 1F
我看不懂,但我大受震撼
01/26 18:21, 1F

01/26 18:23, 1年前 , 2F
就能用 目前誤差尚能接受 之後?誰知道...
01/26 18:23, 2F

01/26 18:27, 1年前 , 3F
1%可以了啦,省去運算太棒了
01/26 18:27, 3F

01/26 18:30, 1年前 , 4F
數學上有很多犠牲精度來簡化運算的方式,在程式上很有用
01/26 18:30, 4F

01/26 18:31, 1年前 , 5F
wiki的寫法是,轉型做快速log2後還需要一個誤差參數
01/26 18:31, 5F

01/26 18:31, 1年前 , 6F
數學近似值計算上也有很多這種怪物運算
01/26 18:31, 6F

01/26 18:32, 1年前 , 7F
後人有找到最差的誤差參數,跟傳說的版本只差約0.5%
01/26 18:32, 7F

01/26 18:32, 1年前 , 8F
像圓周率我都用22/7替代
01/26 18:32, 8F

01/26 19:29, 1年前 , 9F
這種我是覺得不叫邪門 只是寫的人跟你知識差太多了
01/26 19:29, 9F
文章代碼(AID): #1Zqb6PsC (C_Chat)
討論串 (同標題文章)
文章代碼(AID): #1Zqb6PsC (C_Chat)