2016-07-07 53 views
1

我正在計算操作過程中的許多(〜1億個)浮點值。我不想將它們都存儲在內存中,但我想保存該集合的粗略分佈。在不保存單個值的情況下存儲概率分佈

我的想法是確定所有值的指數並在直方圖中對它們進行計數。但是,這當然只在數值有不同的指數時才起作用。

有沒有人知道我怎麼能做到這一點,而不知道分佈是怎樣的?

+0

它-the飛分佈的時間,然後再重建PDF取決於你願意做得多糟糕。另外,你有沒有關於價值範圍的想法?他們都在0到100萬之間嗎? –

回答

5

我會建議隨機保存一些,然後根據事實做出直方圖。例如,如果你隨機保存0.1%的數字,那麼你只需要保存100,000個,從中可以計算出高度準確的分佈。

您可以通過每次保存號碼時調用它來減少對rand()的調用次數,以找到範圍1..2000範圍內的一個隨機數,然後在保存下一個號碼之前等待很多號碼。

+0

如果輸入數據足夠隨機/均勻分佈,那麼只需對每個_n_th數據進行採樣就可以避開,因此完全不需要隨機數生成器。 – Tomboyo

+0

@Tomboyo我想到了這一點,但我個人看到太多的「同步工件」想要這樣做。 – btilly

+1

我同意。我經常用「每第n個」採樣得到偏差的結果。 –

1

如果您大致瞭解最小值和最大值,我認爲分箱策略將是一個不錯的選擇。這裏是我的意思大綱:

弄清楚你多少箱需要 我所有的數字 發現,這個數字進去 增加段

相關問題