Re: [問題] 請問這Algorithm

看板C_Sharp作者 (mort)時間13年前 (2011/03/16 16:48), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
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
文章代碼(AID): #1DW7b6n2 (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1DW7b6n2 (C_Sharp)