如何用java生成指定范围的随机数
2个回答
展开全部
要生成在[min,max]之间的随机整数,
复制代码 代码如下:
package edu.sjtu.erplab.io;
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
int max=20;
int min=10;
Random random = new Random();
int s = random.nextInt(max)%(max-min+1) + min;
System.out.println(s);
}
}
random.nextInt(max)表示生成[0,max]之间的随机数,然后对(max-min+1)取模。
以生成[10,20]随机数为例,首先生成0-20的随机数,然后对(20-10+1)取模得到[0-10]之间的随机数,然后加上min=10,最后生成的是10-20的随机数
复制代码 代码如下:
package edu.sjtu.erplab.io;
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
int max=20;
int min=10;
Random random = new Random();
int s = random.nextInt(max)%(max-min+1) + min;
System.out.println(s);
}
}
random.nextInt(max)表示生成[0,max]之间的随机数,然后对(max-min+1)取模。
以生成[10,20]随机数为例,首先生成0-20的随机数,然后对(20-10+1)取模得到[0-10]之间的随机数,然后加上min=10,最后生成的是10-20的随机数
展开全部
package spy1;
import java.util.Scanner;
import java.util.Random;//调用random
public class hello {
public static void main(String[] args)
{
Random a=new Random();//新建a对象,调用random()方法
int x=a.nextInt(7);//x生成0-6之间的数,[0,7)
int y=a.nextInt(7)+3;//()后面的+3代表他的左右区间一起加了3,所以y该值区间应为[3,10)
/*()后面的+3代表他的左右区间一起加了3,但我想生成的是[3,7)这个区间该怎么办,看下面*/
int z=a.nextInt(7-3)+3;/*()后面的+3其实可以把它看成是左区间,那么右区间即括号里的数应该(右区间值-左区间值)
,则这里的区间为[3,7)*/
System.out.print(z);
}
}
/*总的来说生成随机规定区域数写法
例如:我要生成[5,8)的数
则应该为: int z = a.nextInt(3)+5;//3就是右区间-左区间,也就是8-5=3,()后的+5代表左区间
int z=a.nextInt(右区间-左区间)+左区间;
*/
import java.util.Scanner;
import java.util.Random;//调用random
public class hello {
public static void main(String[] args)
{
Random a=new Random();//新建a对象,调用random()方法
int x=a.nextInt(7);//x生成0-6之间的数,[0,7)
int y=a.nextInt(7)+3;//()后面的+3代表他的左右区间一起加了3,所以y该值区间应为[3,10)
/*()后面的+3代表他的左右区间一起加了3,但我想生成的是[3,7)这个区间该怎么办,看下面*/
int z=a.nextInt(7-3)+3;/*()后面的+3其实可以把它看成是左区间,那么右区间即括号里的数应该(右区间值-左区间值)
,则这里的区间为[3,7)*/
System.out.print(z);
}
}
/*总的来说生成随机规定区域数写法
例如:我要生成[5,8)的数
则应该为: int z = a.nextInt(3)+5;//3就是右区间-左区间,也就是8-5=3,()后的+5代表左区间
int z=a.nextInt(右区间-左区间)+左区间;
*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询