用試算表公式隨機產生 -1 , 1 的數值

一般試算表會提供隨機值產生公式, 如 rand() 或 rnd() , 而數值通常在 0~0.99999 之間.

如果要使用隨機值產生 -1 與 1 的結果, 就要有幾個步驟:

  1. 因為結果有兩個: -1 , 1 , 所以隨機值要先由等比尺度變成等距尺度, 這邊有兩個作法:
    1. rand() * 2 再 int , 先將隨機值放大為 0~1.99999 , 再用 int 取出 0 跟 1 , 如果未來有擴充需要, 用這方法較容易擴充.
    2. 使用四捨五入 round() 直接取出 0 跟 1 , 因為這方式只有兩種結果, 未來無法擴充.
  2. 因為目標的數值差是 2 ( 1 減掉 -1 ) , 而目前產生的數值差是 1 ( 1 減掉 0 ) , 所以要放大兩倍, 可以用乘以 2 .
  3. 前一個步驟產生了 0 , 2 的結果, 跟目標的 -1 , 1 偏差 1 , 所以再把前一個結果減 1 .
寫成函式, 就大約是這樣(依不同試算表軟體可能要再調整):
  • =int(rand()*2)*2-1
  • =round(rand(),0)*2-1

其實這樣的作法, 對照量測常用的 Bias 跟 Gain , 乘以 2 就是 Gain 的應用, 而偏差調整就是 Bias 的應用.