※ 引述《PPUDDING (布丁)》之銘言:
: 目標:抽取亂數
: 條件:所有亂數皆介於 -1~1之間
: 所有亂數的和要等於1
: 問題:我先抽好 -1~1 之間的uniform 亂數
: 但是我在處理亂數和要等於一的條件時
: 是利用(各亂數)除以(亂數總和)=(調整後亂數)的方式
: 此時調整後的亂數和應當等於1
: 但這時候如果亂數和剛好接近0的話
: 會出現(調整後的亂數)會有絕對值大於1的情形
: 此時又不符合第一個條件
: 請各位高手幫我想想辦法
: 謝謝
假設共要取 N 個亂數, x(1) ~ x(N)
Step 1: 取 N-1 個 -1~1 之間的 uniform 亂數
Step 2: 第 N 個值 x[N] = 1 - sum(x(1:N-1))
Step 3: 如果 x[N] 不在 -1~1 之間, 就回到 Step 1.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.66.171.13