Ⅰ 關於java里產生1-6隨機數的方法
我認為2種方法產生的1~6的幾率是相等的,都為1/6.
第一種(int)(Math.random()*10)%6得到0~6的隨機數,每個數的產生的概率為1/7,再加上1,得到1~6的隨機數,0不再出現,每個數產生的幾率1/6.
另一種(int)(Math.random()*6)產生0~5,每個數產生的概率為1/6,再加上1,得到1~6的隨機數,每個數產生的幾率仍為1/6.
Ⅱ C語言產生1~6的一個隨機數!!急!
代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x,num;
srand(time( NULL ));
x =1 + (rand()%6);
printf("%d",x);
return 0;
}
源代碼截圖:
Ⅲ c語言怎麼產生隨機數(1~6)
系統的函數是產生0~32767的隨機數,將這個數對六取余得到0~5的隨機數,再+1就是1~6的隨機數了
假如隨機數的函數是a()
就這樣寫:a()%6+1
Ⅳ C++,請問如何產生一個1-6的隨機數
#include<time.h>
#include<math.h>
srand(time(NULL));
int a=rand()%6+1;
不明白的問我。
Ⅳ 怎樣產生1到6之間的六個隨機數
為了保證每次產生的隨機數不同,需要用time作為隨機數種子,來產生隨機數:
srand((unsigned)time(NULL));
這是函數產生的隨機數:
int R;
R=rand();
此時R在1到327687(即兩個位元組16位所能表示的最大值)之間均勻分布。
想要得到的隨機數為myrand即:
int myrand=R%6+1;
Ⅵ 怎樣隨機生成不重復的1到6之間的隨機數123456或546321
做一個函數,一個參數為序號,一個參數為總數。
這個函數列出所有的不重復的1到6之間的數。
通過序號可以得到一個對應的數。
然後用rand生成的隨機序號,調用該函數
Ⅶ 偽隨機數的生成方法
一般地,偽隨機數的生成方法主要有以下3種:
(1) 直接法(Direct Method),根據分布函數的物理意義生成。缺點是僅適用於某些具有特殊分布的隨機數,如二項式分布、泊松分布。
(2) 逆轉法(Inversion Method),假設U服從[0,1]區間上的均勻分布,令X=F-1(U),則X的累計分布函數(CDF)為F。該方法原理簡單、編程方便、適用性廣。
(3)接受拒絕法(Acceptance-Rejection Method):假設希望生成的隨機數的概率密度函數(PDF)為f,則首先找到一個PDF為g的隨機數發生器與常數c,使得f(x)≤cg(x),然後根據接收拒絕演算法求解。由於演算法平均運算c次才能得到一個希望生成的隨機數,因此c的取值必須盡可能小。顯然,該演算法的缺點是較難確定g與c。
因此,偽隨機數生成器(PRNG)一般採用逆轉法,其基礎是均勻分布,均勻分布PRNG的優劣決定了整個隨機數體系的優劣[7]。下文研究均勻分布的PRNG。
Ⅷ 請教C語言高手,如何編寫一個1-6的隨機數
include<stdlib.h>
include <time.h>
a=1;b=6;
代入即可
1.int a=rand()%(b-a+1)+a;rand()產生的是0--32767之間的隨機數,rand()%6則結果為0-5的任意數,rand()%6+1則為1-6的任意數
2.int a=(int)random(b);random(n)是產生從1到n 的一個隨機數
3.randomize();
int a=rand()%(b-a+1)+a;同1
Ⅸ 一到六的隨機數是什麼
一到六的隨機數是每次產生的隨機數不同,需要用time作為隨機數種子,來產生隨機數。這是函數產生的隨機數。int R,R=rand();此時R在1到327687即兩個位元組16位所能表示的最大值之間均勻分布。
隨機數的原理
隨機變數的抽樣序列稱為隨機數列。若隨機變數是均勻分布的,則的抽樣序列稱為均勻隨機數列;如果是正態分布的隨機變數,則稱其抽樣序列為正態隨機數列。
用數學方法產生隨機數,就是利用計算機能直接進行算術運算或邏輯運算的特點,產生具有均勻總體、簡單子樣統計性質的隨機數。計算機利用數學方法產生隨機數速度快,佔用內存少,對模擬的問題可以進行復算檢查,通常還具有較好的統計性質。
另外,計算機上用數學方法產生隨機數,是根據確定的演算法推算出來的,因此嚴格說來,用數學方法在計算機上產生的隨機數不能說是真正的隨機數,故一般稱之為偽隨機數。
Ⅹ 關於Java里產生1-6隨機數的方法
用java.util.Random 類比較好用Random r=new Random();int i=r.nextInt(6)+1;生成1到6的數字應該機率比較相等;(int)(Math.random()*10)%6+1產生0到9內的整數再 得到1,2,3,4的概率大些因為(int)(Math.random()*10)%得到的數是從0到9;0%6+1=1.。。。。。。5%6+1=6……6%6+1=1.。。。。9%6+1=4;所以不相等另一種 (int)(Math.random()*6)+1從0.1到0.9 *6得到數是int型是0,1,1,2,3,3,4,4,5,+