在java中,如果要随机产生数给某个变量赋值,但产生数的范围有两个,该如何实现
我说的范围有两个,一个是48到57,然后另一个是65到90,赋予变量时能随机的去到这两个范围其中一个里面的值...
我说的范围有两个,一个是48到57,然后另一个是65到90,赋予变量时能随机的去到这两个范围其中一个里面的值
展开
4个回答
展开全部
是不是类似与范围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);
}
}
用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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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的可能
剩下的就没什么了,应该恨简单
num = 57 - (int) (Math.random() * 10);
} else {
num = 90 - (int) (Math.random() * 26);
}
36是2个区间内一共有36个数
小于等于9因为
第一区间占有10/36的可能
第二区间占有26/36的可能
剩下的就没什么了,应该恨简单
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你没给出你想要的随机数的范围,所以我只好给你举个例子,基本上随机数就可以按照这样的方法去产生,下面就是我所写的一个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);
}
}
如果你还有什么不懂可以补充告诉我,我会尽快给你解答的.
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);
}
}
如果你还有什么不懂可以补充告诉我,我会尽快给你解答的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询