Re: [問題] 請問這Algorithm
probabilities 為一個 double array。裡面包含所有事件的個別機率
個別機率必須大於等於0 。機率總和等於 1
Random() 為一個均勻機率的亂數產生器
radnom.NextDouble() 應該設定最小為 0 ,最大為 1 來產生一個 double 亂數
依據此亂數來檢查他在 probabilities 的機率分佈中,落點在哪一個事件中
回傳被觸發的事件 index (若有 n 個事件,回傳值會是 0,1,2 ..., n-1)
※ 引述《kingofsdtw (不能閒下來!!)》之銘言:
: 從一本書中提到的
: 如果事件的概率存在一個陣列裡,可以用以下方法產生一個隨機事件
: Ramdom random = new Random();
: int NextEvevt(double[] probabilities)
: {
: double p = random.NextDouble();
: for ( int i = 0 ; i< probailities.Lebgth -1; i++)
: {
: if(p< probabilities[i])
: return i;
: p-=probabilites[i];
: }
: return probabilities[probabilities.Length-1];
: }
: 有點無頭...感覺上是書少寫了啥嗎0.0?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.207.196
推
03/16 17:20, , 1F
03/16 17:20, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):