精華區beta MATLAB 關於我們 聯絡資訊
※ 引述《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