❶ 在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),那么想怎么处理都可以的,哈哈