Distributions
如何從康托分佈中採樣?
從康托爾分佈中取樣的最佳方法是什麼?它只有 cdf,我們不能反轉它。
簡單:制服樣本從二進制分發和重新編碼到三進制,將每個“1”解釋為“2”。(這是逆概率變換方法:它確實反轉了 CDF!)
這是一個
R
實現,其編寫方式應該可以輕鬆移植到幾乎任何計算環境。binary.to.ternary <- function(x) { y <- 0 x <- round(2^52 * x) for (i in 1:52) { y <- y + 2*(x %% 2) y <- y/3 x <- floor(x/2) } y } n <- 1000 x <- runif(n) y <- binary.to.ternary(x) plot(ecdf(y), pch=".")