❶ 在java中,我想在0到1中隨機產生一個兩位小數的數,並且在0.01到0.20之間的概率為80%,
生成三個隨機數,r1的范圍是0.01~0.20,r2的范圍是0.21~1,r3是0~1;
然後對r3做判斷,如果r3小於0.8,則生成的隨機數是r1,否則是r2
❷ java如何產生1-10隨機數
java代碼方法一如下:
int random=(int)(Math.random()*10+1)
java代碼方法二如下:
package bdqn_Empy;
import java.util.Random;
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=0;
Random b=new Random();
a=b.nextInt(101);
System.out.println(a);
}
}
可以先通過 random方法生成一個隨機數,然後將結果乘以10。此時產生的隨機數字即為大於等於0小於10的數字。
然後再利用nt方法進行轉換它會去掉小數掉後面的數字即只獲取整數部分,不是四捨五入)。最後即可獲取一個0到9的整數型隨機數字。其實現方法很簡單,就是對原有的 grandom方法按照如下的格式進行變型:(int( Math. Random0*10)即可。
其實我們還可以對這個方法進行擴展,讓其產生任意范圍內的隨機數。至需要將這個10換成n即可,如改為( int(Math. Random0n)。此時應用程序就會產生一個大於等於0小與n之間的隨機數。
如將n設置為5,那麼其就會產生一個0到5之間的整數型的隨機數。如果將這個寫成一個帶參數的方法,那麼只要用戶輸入需要生成隨機數的最大值,就可以讓這個方法來生成制定范圍的隨機數。
❸ 用JAVA 產生一個0到1的隨機數
在java.lang.Math中有個Math.random()方法,它可以產生0-1之間(包括0但不包括1)的任意小數,所以用System.out.println(Math.Random());即可!要產生0或1的整數只需System.out.println((int)(Math.Random()+1));
❹ java生成隨機數0或1,只能是0,1二者其一,最好可以使1或0出現的概率符合高斯分布(正態分布)
Java內置了高斯正態隨機數
Random.nextGaussian()獲得均值為0,標准差為1的正態分布。
Random r=new Random();
for(int i=0;i<20;i++)
System.out.println(r.nextGaussian());
=======
-0.13281412372658716
-0.01315269766483013
-0.056744105795208055
-1.0402491360478257
-0.5311391585982737
-0.3630802799191039
-0.9866340328819281
-0.8579720715397737
-0.9265915705393113
-0.21839994469893823
0.3671093015925613
-0.6560992663799461
-1.2695699508671745
0.046509998380311696
0.1952527864179513
0.9997730342084369
如果求閥值0.7,
Random r=new Random();
int c0=0,c1=0;
for(int i=0;i<10000;i++){
byte n=(byte) (r.nextInt(10)>=7?1:0); //獲得一個0或1
if(n==0)c0++; else c1++;
}
System.out.println("zero:"+(c0/10000.0)+" one:"+(c1/10000.0));
=========
列印概率
zero:0.7068 one:0.2932
❺ java中,如何用Math.random()生成從0到1的隨機數,包括1
double java.lang.Math.random()
Returns:
a pseudorandom double greater than or equal to 0.0 and less than 1.0.
------
產生一個偽隨機數(為啥叫偽,自己谷歌),這個數的范圍在區間:[0.0, 1.0)
❻ 用JAVA產生[0,1]均勻分布的隨機數 要演算法
double rand(double []r)
{
double base,u,p,v,temp1,temp2,temp3;
base=256.0;
u=17.0;
v=139.0;
temp1=u*(r[0])+v; //就算總數
temp2=(int)(temp1/base);//計算商
temp3=temp1-temp2*base;//余數
r[0]=temp3;//更新隨機種子,為下一次使用
p=r[0]/base;//產生隨機數
return p;
}
其中base為基數,一般去2的整數倍,常數,u、v可以隨意取。數組r[]為只能去一個值的數組。如:double[]r={5.0}.
❼ java 使用Math.random()產生一個100以內的隨機數;
int val = (int)(Math.random()*100+1);
System.out.println(val); //第一種
Random r=new Random(); //第二種
int a;
a=1+r.nextInt(100);
System.out.println(a);
❽ java中用Math.random()產生的隨機數包括0和1嗎
Math.random()是令系統隨機選取大於等於 0.0 且小於 1.0 的偽隨機 double 值
包括0.0,不包括1.0
❾ java生成隨機數0或1,只能是0,1二者其一,怎麼實現呢
int rd=Math.Random()>0.5?1:0;
這樣0和1出現的幾率分別為百分之五十。
其實只要知道Math.Random()產生的數據為[0,1),那麼想怎麼處理都可以的,哈哈