用概率模型,先隨機一次看取用哪個概率,隨后再隨機一次。代碼示例如下: import java.util.Random;public class HelloWorld { public static void main(String[] args) { Random random = new Random(); double p1=0.7; //1~4的概率 double p=(...

成都創(chuàng)新互聯公司-專業(yè)網站定制、快速模板網站建設、高性價比太湖網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式太湖網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋太湖地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
首先:關于隨機數的生成方法
java里生成隨機數主要有2個方法比較常用.
1.Random類. 在?java.util.包里, 有多種方法可以隨機產生int, long, double,boolean等類型
2.Math 類,在java.lang.包里, 可以生成一個[0~1)之間的隨機浮點數
*備注* :a. )使用Random需要導包,但是使用Math無需導包.?
b. ?)Math底層還是調用了Random類的nextDouble()方法
其次:關于隨機數的代碼
例如生成[1,6]之間的隨機數
1 .Random的方法,生成的隨機數
Random?r=?new?Random();
int?num1?=?r.nextInt(6)+1;//r.next(6)生成的是0~5之間的數字,需要+1,才是[1~6]之間的數字
2. Math的方法,進行隨機數的生成
int?num?=?(int)?(Math.random()?*?6)?+?1;
//(int)?(Math.random()?*?6)?生成的是0~5之間的整數
//需要+1?才是[1~6]的數字
關于次數統計的方案
1, 可以使用HashMapK,V的方法進行存儲統計. 因為key不重復,所以key可以來存數字1~6, 而對應的V就可以用來存儲出現的次數
2. 可以使用數組的方法來存出現的次數. 數字1~6 是連續(xù)的, 數組下標也是連續(xù)的.我們可以用下標[0~5] 來代表數字[1~6], 數組的每個格子用來存數字數字出現的次數
完整的代碼
//本題使用數組來寫代碼比較方便,簡潔.
import?java.util.Random;
public?class?RandomDemo?{
public?static?void?main(String[]?args)?{
int[]?times?=?new?int[6];//6個格子的數組,存儲出現的次數
int?n?=?100;//循環(huán)的次數
Random?r=?new?Random();
for?(int?i?=?0;?i??n;?i++)?{
int?num?=?r.nextInt(6)+1;//方法1?隨機產生1~6的數字
//int?num?=?(int)?(Math.random()?*?6)?+?1;//方法2?隨機產生1~6的數字
times[num?-?1]?=?times[num?-?1]?+?1;//次數增加1
}
for?(int?i?=?0;?i??times.length;?i++)?{
System.out.println((i?+?1)?+?"出現的次數"?+?times[i]);
}
}
}
輸出: ?當n=100時
1出現的次數13
2出現的次數16
3出現的次數17
4出現的次數23
5出現的次數21
6出現的次數10
輸出: 當n=1000時
1出現的次數160
2出現的次數177
3出現的次數161
4出現的次數169
5出現的次數175
6出現的次數158
結論:
n=100時, 6是次數是10, ?4次數是23, ?兩者的次數相差2倍多
n=1000時, 6次數是158, 2次數是177, 兩者比較接近
說明: ?當隨機的次數越多. 那么隨機數的概率也越來越接近~
1.用內置方法Math.random()產生一個隨機數介于0~1。
2.強制轉化為int類型,根據int類型的特點,這個數是0~5之間的整數。
3.得到的數加1,這樣這個數就是介于1~6的整數,并且是隨機的。
4.將介于1~6之間的這個整數賦值給randomNum
5.(重點)probability是個數組,這個程序的算法就是:利用probability這個數組記錄隨機數出現的次數,probability[0]記錄隨機數1出現的次數,就是當出現的隨機數為1時,數組的probability[randomNum-1]項加1(randomNum-1是為了表現算法,實際的程序中是不需要先加1再減1的)。同理:其它的隨意數也做這樣的處理。這樣,probability這個數組中[0]項保存的是1的出現次數,[1]項保存的是2出現的次數…………
6.輸出隨機數的值(后面加個空格“\t”)
7.循環(huán)到步驟第1.個步驟.
這個很簡單啊。用(int) (Math.random() * 30);,然后求這個隨機數除以3的余數就好了。分為0,1,2,三種情況。是完美的三分之一。
分享名稱:java幾率的代碼,java概率算法
網站鏈接:http://chinadenli.net/article34/hchdpe.html
成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站建設、外貿網站建設、品牌網站制作、移動網站建設、企業(yè)建站、Google
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯