重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码。
成都创新互联专注于企业营销型网站建设、网站重做改版、新宾网站定制设计、自适应品牌网站建设、H5响应式网站、商城网站建设、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为新宾等各大城市提供网站开发制作服务。
例如:var a:Number=Math.random()*2+1,设置一个随机1到3的变量。
完整代码为:
public class Main {
public static void main(String[] args) {
int index = 1;
int[] redBalls = new int[6];
Random random = new Random();
boolean getMoreRed = true;
boolean getAgain;
System.out.println("开始抽取红球!");
while (getMoreRed) {
getAgain = false;
int red = random.nextInt(36) + 1;
System.out.print("本次抽取到的红球为:[" + red + "]!");
for (int i = 0; i index; i++) {
if (redBalls[i] == red) {
System.out.print("重复抽取,将重新抽取红球");
getAgain = true;
break;
}
}
System.out.println("");
if (getAgain){
continue;
}
redBalls[index - 1] = red;
index++;
getMoreRed = index 7;
}
System.out.println("抽取到的红球为:");
Arrays.sort(redBalls);
for (int redBall : redBalls) {
System.out.print(redBall + " ");
}
System.out.println("\n\n开始抽取蓝球!");
System.out.println("本次抽取到的蓝球为:[" + (random.nextInt(16) + 1) + "]!");
}
}
运行结果:
普通抽取:
重复时抽取:
可以借助Math类里的random方法或者借助Random类来实现
1、使用Math类的random方法实现产生1000-9999的随机数代码如下:
int a = (int)(Math.random()*(9999-1000+1))+1000;//产生1000-9999的随机数
2、使用Random类实现代码:
import java.util.Random;//导入Random包
public class Ranadd {
public static void main(String[] args) {
int x;//定义两变量
Random ne=new Random();//实例化一个random的对象ne
x=ne.nextInt(9999-1000+1)+1000;//为变量赋随机值1000-9999
System.out.println("产生的随机数是:"+x);//输出
}
}
说明:
1、Java中Math类中有random方法产生的随机数是一个伪随机选择的(大致)均匀分布在从0.0到1.0这一范围内的double类型数
2、java.util.Random类中实现的随机算法是伪随机,也就是有规则的随机,所谓有规则的就是在给定种(seed)的区间内随机生成数字;相同种子数的Random对象,相同次数生成的随机数字是完全相同的;Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;
是编译错误,数组越界,算法可以这:样实现:随机选数,把选好的数字放到一个表(数组)中;如果重复则反复执行。代码如下:
class Main {
public static void main(String args[]) {
final int N = 21;
final int M = 7;
int selected[] = new int[N];//用来记得每次选的数字表格
int cnt = 0;// 已选的数字个数
while (cnt M) {
int n = (int) (Math.random() * N) + 1;
boolean find = false;
for (int i = 0; i cnt; i++) {
if (selected[i] == n) {// 表示n重复
find = true;
break;
}
}
if (!find) {//表示选的n是不重复的
selected[cnt] = n;
cnt++;
}
}
for(int i=0;iM;i++)//打印每次选择的数字
System.out.print(selected[i]+" ");
}
}