用了一點點 數值分析 逼近值概念
浮點運算器是 工業制御 CPU 的硬傷, 也是轉機讓寫程式的人一較本領的擂台
* K/m ; m需等於2^n 就是移n位的意思 用C或組合語言 都算好處理
π 3.14159的逼近值 * 201/ 64 = 3.140625e 2.71828 的逼近值 * 87/ 32 = 2.71875
自然對數的逼近值比泰勒展開式 6階 還接近, 夠我用了
用哪裡 ciko大介紹的 ESR 表 刻度不是線性的 是自然對數的
------2017 04 28 續-----
然而上述 * 201/ 64 以及 * 87/ 32 之中
為了加快運算效率 , 刻意使用移位方式取代除法 ,
因此 除數(分母) 使用 2的N 次方 也就是 將分子數值 右移N位
那麼... 分子201以及 87 是怎麼來的?
有一種數學計算方法 叫做 窮舉法(暴力破解法) 請GOOGLE一下
拿一堆數字一直試著代入分子 看哪一個是答案
在上述一堆數字 可先剔除一些不要的範圍 ( 或說指定範圍候選數字)
如果以八位元CPU來說
因 除數(分母) 使用 2的N 次方 也就是說N 只有1~8
以3.14159 * 2的N 次方(N代入1~8 ) 得到的數字 哪個最接近 整數
例如
3.14159 * 1= 3.14159
3.14159 * 2= 6.28318
3.14159 * 4=12.56636
3.14159 * 8=25.13272
3.14159 * 16=50.26544
3.14159 * 32=100.53088
3.14159 * 64=201.06176
3.14159 * 128=402.12352
3.14159 * 256=804.24704
上述201.06176 是最接近整數(誤差最小) 取其整數為201
看懂了之後 就可在PC寫一個VB版暴力破解法的程式(直接比較哪個最接近 整數 )
不會寫也沒關係 計算機多按幾下或 EXECL 建表計算
會捉老鼠就是好貓...
----
鮮血到這, 整理好再重新發布 賺積分