在java中,如果要随机产生数给某个变量赋值,但产生数的范围有两个,该如何实现

我说的范围有两个,一个是48到57,然后另一个是65到90,赋予变量时能随机的去到这两个范围其中一个里面的值... 我说的范围有两个,一个是48到57,然后另一个是65到90,赋予变量时能随机的去到这两个范围其中一个里面的值 展开
 我来答
hilyfe
2008-04-15 · 超过69用户采纳过TA的回答
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:217万
展开全部
Math.random()函数是取一个大于等于0,小于等于1的随机数,返回的一个值是个double型。
根据你的需要,你可以对这个值进行范围控制:
比如(int)(Math.random()*100),即为取一个范围在0-100的整数;(int)(Math.random()*100)+10,即为取一个范围在10-110的整数。
乌微月2S
2008-04-15 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2885万
展开全部
是不是类似与范围10-100这种啊,
用Math类的getRandom()方法就可以,范围为10-12


package help;
public class Test{
public int getRandom(){
int i=(int)(Math.random()*12);
return i;
}
public boolean isInScope(int i){
if(i<10){
return false;
}else{
return true;
}
}
public static void main(String[] args) {
Test test=new Test();
int j=test.getRandom();
boolean tag=true;
while(tag){
if(!test.isInScope(j)){
j=test.getRandom();
}
if(!test.isInScope(j)){
tag=true;
}else{
tag=false;
}
}
System.out.println(j);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dkchina
2008-04-16 · TA获得超过2473个赞
知道大有可为答主
回答量:3504
采纳率:0%
帮助的人:2079万
展开全部
if ((int) (Math.random() * 36) <= 9) {
num = 57 - (int) (Math.random() * 10);
} else {
num = 90 - (int) (Math.random() * 26);
}

36是2个区间内一共有36个数
小于等于9因为
第一区间占有10/36的可能
第二区间占有26/36的可能
剩下的就没什么了,应该恨简单
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
408968356
2008-04-15 · TA获得超过176个赞
知道答主
回答量:53
采纳率:0%
帮助的人:46.1万
展开全部
因为你没给出你想要的随机数的范围,所以我只好给你举个例子,基本上随机数就可以按照这样的方法去产生,下面就是我所写的一个class,它最后输出b3,且b3为随机数,范围为120<=b3<220.

import java.util.*;
public class RandomNumber{
public static void main(String[] args){
//b为随机数,且范围为0<=b<1
double b = Math.random();
//b2的范围为120<=b2<(100+120)
//你需要随机数的范围可以通过这样去计算
double b2 = b*100+120;
//小数点后只保留两位
double b3 = (int)(b2*100)/100.0;
System.out.println(b3);
}
}

如果你还有什么不懂可以补充告诉我,我会尽快给你解答的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式