java随机数函数,java随机数指定的范围怎么做
java随机数函数,java随机数指定的范围怎么做详细介绍
本文目录一览: java随机数指定的范围怎么做
JAVA随机数指定的范围标准格式:
Random rand = new Random();
int randNum = rand.nextInt(范围);
示例:
1.生成0-2之间的随机数,包括2Random rand = new Random();int randNum = rand.nextInt(3);
2.生成5-26之间的随机数,包括26Random rand = new Random();int randNum = rand.nextInt(22)+5;
扩展资料:
random函数使用格式:
新建random类的rand对象
Random rand = new Random();
设定rand的类型以及区间范围:
int randNum = rand.nextInt(int x)+y;
java随机函数random用不用关闭
1、首先在打开的软件中,random.random():返回一个随机数,范围是0到1之间。
2、random.uniform():在指定范围内,生成随机数,一个是下限,另一个是上限。
3、random.randint():生成指定范围内的整数,开始数和结束数。
4、最后使用 random.randrange():在指定范围内,按指定基数递增的集合中获得一个随机数,这样就完成了。
不用关闭,java中存在两个随机函数,它们分别来自java.long.Math.random()和 java.util.Random();其中前者的适用范围比较小,完全可以被后者取代。
一、java.lang.Math.random()方法的用法
①、方法类型:
public static double random();
此方法是一个无参,double类型返回值的公开静态方法。
返回一个大于0的double类型数据,该值大于等于0.0且小于1.0,返回的是一个伪随机选择数,在该范围内(几乎)均匀分布
java中产生随机数的函数是什么
double number=Math.random();
Math.random()是产生0到1的方法(不包括1)
如果想要产生0到100的随机数可以写成:
double number=Math.random()*100;(想包含100的话写成double number=Math.floor(Math.random());)
要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方式提供常用的数学方法,
其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法
如:
产生一个100以内的整数:int x=(int)(Math.random()*100);
又如:
产生一个1-50之间的随机数:int x=1+(int)(Math.random()*50)
Math.random() 会产生0-1.0之间的随机浮点数。
Math.Random()
"java生成随机数"
http://blog.csdn.net/super_marioli/archive/2010/03/13/5377649.aspx
Math.Random(),。。一种
Random r=new Random()。。。这种也可以
int n= r.nextInt();
一、利用random方法来生成随机数。
在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机数。不过默认情况下,其产生的随机数范围比较小,为大于等于0到小于1的double型随机数。虽然其随机数产生的范围比较小,不能够满足日常的需求。如日常工作中可能需要产生整数的随机数。其实,只要对这个方法进行一些灵活的处理,就可以获取任意范围的随机数。
如我们可以先通过random方法生成一个随机数,然后将结果乘以10。此时产生的随机数字即为大于等于0小于10的数字。然后再利用Int方法进行转换(它会去掉小数掉后面的数字,即只获取整数部分,不是四舍五入)。最后即可获取一个0到9的整数型随机数字。其实现方法很简单,就是对原有的random方法按照如下的格式进行变型:(int)(Math.Random()*10)即可。其实我们还可以对这个方法进行扩展,让其产生任意范围内的随机数。至需要将这个10换成n即可,如改为(int)(Math.Random()*n)。此时应用程序就会产生一个大于等于0小与n之间的随机数。如将n设置为5,那么其就会产生一个0到5之间的整数型的随机数。如果将这个写成一个带参数的方法,那么只要用户输入需要生成随机数的最大值,就可以让这个方法来生成制定范围的随机数。在Java中定义自己的工具库
有时候程序员可能需要生成一个指定范围内的随机偶数或者奇数。此时是否可以通过这个方法来实现呢?答案是肯定的。如现在程序要需要生成一个1-100范围内的偶数。此时该如何实现?首先,需要生成一个0到99之内的随机数(至于这里为什么是99,大家耐心看下去就知道原因了)。要实现这个需求,很简单吧,只要通过如下语句就可以实现: i=1+(int)(Math.Random()*100)。其中(int)(Math.Random()*99)产生0到99的整数型随机数。然后再加上1就是产生1到100之间的随机整数。然后将产生的随机数赋值给变量i。但是此时其产生的随机数即有偶数,又有奇数。而现在程序员需要的是一个随机的偶数。那么我们可以在后面加上一个if判断语句。将这个随机数除以2,如果没有余数的话(或者余数为0)则表明这个随机数是偶数,直接返回即可。如果其返回的余数不为零,那么就表明其是奇数,我们只要加上1就变为了偶数,返回即可。注意,在上面的随机数生成中,笔者采用的范围是0到99,然后再加上1让其变为1到100的随机数。最后的结果就是生成1到100之间的随机偶数。其实,如果要范围随机奇数的话,至需要对上面的语句进行稍微的修改即可。Java:改变你我的世界
java获取随机数
很多朋友都想知道java怎么获取随机数?下面就一起来了解一下吧~
Java中的随机数的有三种产生方式:
(01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
(02). 通过Math.random()返回一个0到1之间的double值。
(03). 通过Random类来产生一个随机数。
第1种
通过System.currentTimeMillis()来获取随机数。实际上是获取当前时间毫秒数,它是long类型。使用方法如下:
final?long?l?=?System.currentTimeMillis();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
final?long?l?=?System.currentTimeMillis();final?int?i?=?(int)(?l?%?100?);
第2种
通过Math.random()来获取随机数。实际上,它返回的是0(包含)到1(不包含)之间的double值。使用方法如下:
final?double?d?=?Math.random();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
final?double?d?=?Math.random();final?int?i?=?(int)(d*100);
第3种
通过Random类来获取随机数。
使用方法如下:
(01)?创建Random对象。有两种方法可以创建Random对象,如下:
Random?random?=?new?Random();//默认构造方法Random?random?=?new?Random(1000);//指定种子数字
(02)?通过Random对象获取随机数。Random支持的随机值类型包括:boolean, byte, int, long, float, double。
比如,获取[0, 100)之间的int整数。方法如下: int?i2?=?random.nextInt(100);
java 使用Math.random()产生一个100以内的随机数;
random产生的是[0,1)的小数。
如果想要产生50--100之间的数字;
先让它产生[0--50)之间的数字,也就是 random()*50
然后在后面加上51,也就是random()*50+51;
得到的就是[50--100]的整数了。
你可以这样写:
int num=(int)Math.random()*50+51;
System.out.println(num);
java取随机数一般是用java.util包下的Random来取的。如下:
Random random = new Random();// 0-99int num = random.nextInt(100);Math.random()生成的是double类型的随机数。看源码就会知道,Math.random()等价于new Random().nextDouble();//生成0-1之间的随机数。
private static final class RandomNumberGeneratorHolder { static final Random randomNumberGenerator = new Random();}...public static double random() { return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();}如果一定要使用Math.random()取,那可以这样:
double random = Math.random();int num = new Double(Math.random() * 100).intValue();
1)使用Java产生一个指定数x以内的随机数。
public static void main(String ...args) { int x=100; // 上界。 java.util.Random random=new java.util.Random(); // 返回0 to x的一个随机数但不会取到x,即返回[0,x)闭开区间的值。 int rn=random.nextInt(x); System.out.println(rn);}2)使用Java产生一个指定区间x到y的随机数。
public static void main(String ...args) { int x=100; // 下界。 int y=200; // 上界。 java.util.Random random=new java.util.Random(); // 返回x to y之间的一个随机数,不仅可以取到下界x还可以取到上界y,即返回[x,y]的闭区间。 int rn=random.nextInt(y-x+1)+x; System.out.println(rn);}注:上面调用nextInt获取的是正整数,如果要获取浮点数可以调用nextFloat()。
Math.random()会产生一个0到1之间的随机数,为浮点型,只需要将这个数再乘以一百,就是你要的数。
public static void main(String[] args) { double num = Math.random() * 100; System.out.println(num); // 如果需要是整数直接转成int型就可以了 System.out.println((int) num);}
Math.random()会产生[0,1)区间中的双精度浮点随机数,所以
Math.random()*100就会生成一个100以内的随机数浮点数,如果需要整数的话,可以使用
(int)(Math.random()*100)
使用一个循环从键盘输入数据,和产生的随机数比较大小并提示,循环结束为猜中随机数。
1.首先导入random包
2.定义两变量
3.实例化一个random的对象ne
4.开始为两变量赋随机值
5.输出
6.结果
7.再运行一次
8.再点击运行一次
java随机数random怎么用
在Java中,随机数(Random)是一种用于生成随机数的类,可以用于模拟实验、加密、密码学、游戏等多种应用场景。
Random类提供了多个方法用于生成随机数,其中常用的方法包括:
1、nextInt():生成一个int类型的随机数。
2、nextDouble():生成一个double类型的随机数。
3、nextBoolean():生成一个boolean类型的随机数。
4、nextFloat():生成一个float类型的随机数。
5、nextLong():生成一个long类型的随机数。
在使用Random类生成随机数时,可以通过构造函数指定种子(Seed)来生成随机数。如果不指定种子,则使用系统时间作为默认的种子。以下是一个生成随机数的示例代码:
import java.util.Random;public class RandomDemo { ???public static void main(String] args) { ???????// 创建一个Random对象,不指定种子 ???????Random rand1 = new Random(); ???????// 生成一个0到100之间的随机数 ???????int num1 = rand1.nextInt(100); ???????System.out.println("随机数1:" + num1); ???????// 创建一个Random对象,指定种子 ???????Random rand2 = new Random(100); ???????// 生成一个0到100之间的随机数 ???????int num2 = rand2.nextInt(100); ???????System.out.println("随机数2:" + num2); ???}}
虽然生成随机数的算法是随机的,但是在使用随机数生成密码、加密、安全等需要保密的场合时,需要进行更严格的随机数生成算法,以保证数据的安全性和保密性。
java如何生成随机数?
输入代码
public static int suiji = new Random().nextInt(10);
public static void main(String[] args) {
System.out.print(suiji);
}
其中,public static int suiji = new Random().nextInt(10);这一行是生成随机数的关键,它可以生成0到9的一个随机数
UUID.randomUUID().toString()
可以先通过random方法生成一个随机数,然后将结果乘以100,然后再利用int方法进行转换,就可以得到一个0到99的随机整数。
Java怎么产生随机数?
一、利用random方法来生成随机数。
在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机数。
二、通过Random类来生成随机数。
在Java语言中,除了可以通过random 方法来产生随机数之外,还可以通过一个random类来产生随机数。程序开发人员可以通过实例化一个Random对象来创建一个随机数的生成器。如 Random i=new Random()。通过这条语句就利用了Random类创建了一个随机数的生成器。数
三、产生随机的字符。
可以利用random方法来产生随机字符。如可以利用代码生成一个随机的小写字符:(char)(‘a’+Math.random()*(‘z’-‘a’+1))。其实这跟生成任意两个数之间的随机数类似。通过以上的代码就可以生成一个范围之内的任意随机字符。通过对这个代码进行适当的修整,还可以生成任意两个字符之间的随机字符与任意大写字符的随机字符。其转换的方式跟上面提到的任意范围之内的随机数类似。
下面来了解下随机数的运用:
在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。
在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。
在真正关键性的应用中,比如在密码学中,人们一般使用真正的随机数。
C语言、C++、C#、Java、Matlab等程序语言和软件中都有对应的随机数生成函数,如rand等。
关于Java里产生1-6随机数的方法
用java.util.Random
类比较好用
Random
r=new
Random();
int
i=r.nextInt(6)+1;
生成1到6的数字应该机率比较相等;
(int)(Math.random()*10)%6+1产生0到9内的整数再
得到1,2,3,4的概率大些
因为(int)(Math.random()*10)%得到的数是从0到9;0%6+1=1.。。。。。。5%6+1=6
……6%6+1=1.。。。。9%6+1=4;
所以不相等
另一种
(int)(Math.random()*6)+1
从0.1到0.9
*6得到数是int型是0,1,1,2,3,3,4,4,5,
+
Math类的方法fandom随机生成一个0.0到1.0(不含1.0)之间的double值
(int)(Math.random()*10)产生0到9内的整数再
%6
确实可以得到
1~6的随机数,但是
7
8
9
%6
一样得到
1
2
3
,是不是1
2
3
得到的几率会大一些些呢?呵呵
(int)(Math.random()*6)产生0到5内的整数,。。。你可以设计一个小程序来试验,发现它的六个数出现的几率是差不多的。
我认为2种方法产生的1~6的几率是相等的,都为1/6.
第一种(int)(Math.random()*10)%6得到0~6的随机数,每个数的产生的概率为1/7,再加上1,得到1~6的随机数,0不再出现,每个数产生的几率1/6.
另一种(int)(Math.random()*6)产生0~5,每个数产生的概率为1/6,再加上1,得到1~6的随机数,每个数产生的几率仍为1/6.
Java如何实现随机数?
第一种 int i=new Random().nextInt(100);得到0到99的随机数,如果要6个数的话,你循环一下;
用Set可以不允许有重复元素。如:
//产生6个不重复的100以内的整数
import java.util.*;
public class DistinctNumbers {
public static void main(String[] args) {
Set distinctNumbers = new HashSet();
Random rand = new Random();
for(int i = 0; i < 6;)
if(distinctNumbers.add(new Integer(rand.nextInt(100)))) i++;
System.out.println(distinctNumbers);
}
}
//包含大小写字母和数字的随机数每执行一次生成8位 我执行4次 生成的是32位的随机数 比你买彩票中的几率还低 哈哈package tool;import java.util.Random;/**
*
* @author Qianht
*
*/
public class RandMath { //产生一个随机数
public static String getRandom()
{
Random r=new Random();
int i=0;
String str="";
String s=null;
while(i<8)
{
switch(r.nextInt(62))
{
case(0):s="0";break;
case(1):s="1";break;
case(2):s="2";break;
case(3):s="3";break;
case(4):s="4";break;
case(5):s="5";break;
case(6):s="6";break;
case(7):s="7";break;
case(8):s="8";break;
case(9):s="9";break;
case(10):s="a";break;
case(11):s="b";break;
case(12):s="c";break;
case(13):s="d";break;
case(14):s="e";break;
case(15):s="f";break;
case(16):s="g";break;
case(17):s="h";break;
case(18):s="i";break;
case(19):s="j";break;
case(20):s="k";break;
case(21):s="m";break;
case(23):s="n";break;
case(24):s="o";break;
case(25):s="p";break;
case(26):s="q";break;
case(27):s="r";break;
case(28):s="s";break;
case(29):s="t";break;
case(30):s="u";break;
case(31):s="v";break;
case(32):s="w";break;
case(33):s="l";break;
case(34):s="x";break;
case(35):s="y";break;
case(36):s="z";break;
case(37):s="A";break;
case(38):s="B";break;
case(39):s="C";break;
case(40):s="D";break;
case(41):s="E";break;
case(42):s="F";break;
case(43):s="G";break;
case(44):s="H";break;
case(45):s="I";break;
case(46):s="L";break;
case(47):s="J";break;
case(48):s="K";break;
case(49):s="M";break;
case(50):s="N";break;
case(51):s="O";break;
case(52):s="P";break;
case(53):s="Q";break;
case(54):s="R";break;
case(55):s="S";break;
case(56):s="T";break;
case(57):s="U";break;
case(58):s="V";break;
case(59):s="W";break;
case(60):s="X";break;
case(61):s="Y";break;
case(62):s="Z";break;
}
i++;
str+=s;
}
return str;
}
public static String getRADNumber()
{
String RandNumber= getRandom()+"-"+getRandom()+"-"+getRandom()+"-"+getRandom();
//System.out.println(RandNumber);
return RandNumber;
}
/*public static void main(String[] args) {
getRADNumber();
}*/
}
Double a=Math.Random()*N;这样产生0~N-1之间的随机数
把随机数。加上当前时间
可以使用Random类产生随机数,利用HashSet集合类过滤掉重复值,因为HashSet具有不重复性,重复的值,添加不成功,这样保证了集合里的数是唯一的。
以下代码供你参考一下:
package com.dusd;import java.util.*;public class RandomDemo { public static void main(String[] args) { //HashSet类具有唯一性 Set
distinctNumbers = new HashSet
(); Random rand = new Random(); //通过循环产生6个不重复的100以内的整数 for (int i = 0; i < 6; i++) if (distinctNumbers.add(new Integer(rand.nextInt(100)))); System.out.println(distinctNumbers); }}