Re: [問題] 亂數產生一個矩陣

看板java作者 (痞子軍團團長)時間18年前 (2006/03/09 13:52), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/15 (看更多)
當然是包物件阿... 寫 Java 怎麼可以不包物件... \囧/ (路人:這... 不相關吧? ==.==) 我的做法跟上面幾位大大不一樣... 首先,要有幾個 Utility,裡頭有一些 method 長得像這樣 public static double[] aDistributeMethod(int amount){ double[] result = new double[amount]; for(int i=0; i<amount; i++){ result[i]=aProbProduct(); } return result; } /* * 假設 distribution 為 {1, 2, 1} * 則 value 傳入 0~1 時候回傳 0,傳入 1.x~3 時回傳 1,3.x~ 回傳 2 */ public static int valueLocationAt(double[] distribution, double value){ double sum = 0; for(int i=0; i<distribution.length; i++){ sum+=distribution[i]; if(value<=sum){ return i; } } return distribution.length; } aProbProduct() 就看你要怎麼弄 要 poisson 還是什麼鬼的,請隨意 寫一個我喜歡用 Seed 作結尾的物件,這裡就叫做 FooSeed 吧 public class FooSeed { private final String pool[]; private double distribution[]; private double totalProbability; public FooSeed(int totalAmount){ pool = new String[totalAmount]; distribution = Distribution.poisson(totalAmount); for(int i=0; i<pool.length; i++){ pool[i] = "\\囧/"; } totalProbability = Calculate.sumOfArray(distribution); } public double getTotalProbability(){ return totalProbability; } public String pickFoo(){ double value = Distribution.random(0.0, totalProbability); int index = Distribution.valueLocationAt(distribution, value); return pool[index]; } } 那麼,只要 new FooSeed 然後對 FooSeed 一直 pickFoo 就好 這是我的做法,還請各方高手多多指點 [擺茶點] ===== 最近在寫的案子... T__T ==== ㄟ對,qrttOne,再來篇比較的文章吧 我好想 m 阿.... \囧/ -- 侃侃長論鮮窒礙 網站:http://www.psmonkey.idv.tw 眾目睽睽無心顫 個人版:telnet://legend.twbbs.org 煢居少聊常人事 殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.204.16.17
文章代碼(AID): #143yAYg- (java)
文章代碼(AID): #143yAYg- (java)