演算法 均勻的生成圓內的隨機點

2022-06-12 15:15:10 字數 1853 閱讀 2237

演算法 1

設半徑為$r$。

$x = r \ast cos(\theta)$

$y = r \ast sin(\theta)$

其中 $0\leqslant r \leqslant r$,$t$為0-1均勻分布產生的隨機數,$r = sqrt(t) \ast r$,$\theta = 2\pi \ast t, t \sim u(0, 1)$ 證明:url

下面的演算法是錯誤的

原因在於對$r$求開方,導致$r = sqrt(r)*t$平方後不在滿足均勻分布。

圓內的均勻隨機點

最近遇到乙個問題,需要在以乙個座標為中心的區域內生成一組均勻分布的隨機點,首先想到的就是以圓作為區域。根據 x y r 那麼自讓想到可以先隨機生成 r,r 間的橫座標x,然後生成 sqrt x sqrt x 範圍內的隨機數y,那麼 x,y 自然也就是在圓內的隨機點了。寫一段 看一看 看到這個圖應該立...

leetcode在圓內隨機生成點

1.拒絕取樣 在乙個半徑為r的圓內均勻隨機生成點,可以使用拒絕取樣 rand rand max隨機產生0 1之間的數,設其值為x,則2 x 1隨機產生 1 1之間的數 則 2 x 1 r則隨機產生 r r之間的數 對於y同理 如下 class solution vectorrandpoint you...

478 在圓內隨機生成點

題目描述 給定圓的半徑和圓心的 x y 座標,寫乙個在圓中產生均勻隨機點的函式 randpoint 說明 輸入值和輸出值都將是浮點數。圓的半徑和圓心的 x y 座標將作為引數傳遞給類的建構函式。圓周上的點也認為是在圓中。randpoint 返回乙個包含隨機點的x座標和y座標的大小為2的陣列。示例 1...