我得到了一些隨機失真的值,現在我正在尋找一種方法來平均失真。數學用於平均扭曲值
在下面的代碼中我有一個我的問題的例子,測量a []的數組。我有一個隨機陣列失真[]。這通過rnd.Nextbytes
與陣列創建的B [] i的嘗試去接近陣列的[]
在我使用10.000樣本samplecode,但它不是真的固定,100.000樣本值也可以,最後我寧願讓它運行一段時間或直到按下一個鍵。
using System;
namespace test_math
{
class Program
{
static void Main(string[] args)
{
Random rnd = new Random();
byte[] distortion = new byte[8];
int[] b = { 0, 0, 0, 0, 0, 0, 0, 0 };
int[] a = { 100, 200, 300, 400, 500, 600, 700, 800 };
for (int count = 0; count < 100000; count++)
{
Console.Write(count+ " ");
rnd.NextBytes(distortion);
for (int i = 0; i < distortion.Length; i++)
{
b[i] = (int)(b[i] * .8 + (a[i] + 127-(int)(distortion[i])) * .2);
Console.Write(b[i].ToString() + " ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
與線
b[i] = (int)(b[i] * .8 + (a[i] + 127-(int)(distortion[i])) * .2);
凡0.8和0.2的因素目前,它(我與其他數字測試以及)。 但我認爲這遠非理想,雖然這樣的數學具有抑制作用,但它沒有考慮到在某個時間點新的測量結果應該對平均值具有較小的影響。PS []我現在不知道如何用統計學的術語來稱呼它,如果有一個術語,我也很樂意知道它。
你不明白你在問什麼。具體來說,不清楚上述內容的哪一部分,要求的結果是什麼,以及上面的哪部分代表了你從試圖獲得所需結果的不成功嘗試。 –
隨着時間的推移,似乎很清楚,假設一個好的隨機分佈,這些值應該收斂在正確的值上。但就改進你的目標而言,目前還不清楚你的目標是什麼。代碼現在究竟做了什麼,以及_specifically_與您希望做的有什麼不同? –
在上面的代碼b []不會收斂到[] 實質上[n]被[n] +隨機(-127 .. + 127) 扭曲我正在尋找數學,當重複足夠多次一個[N] +隨機的;會將b []收斂到a []的原始值。所以b []跳到{100,200,300,400,500,600,700,800}。 該代碼只是一個容易複製和編輯的問題示例 – user3800527