怎样用java产生一个指定范围的随机数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用java产生一个指定范围的随机数?相关的知识,希望对你有一定的参考价值。
用java写,应该是random类吧?
产生的随机数的要求是:1到9的9个数字随机排序。
该怎么写?
类 Random
java.lang.Object
java.util.Random
所有已实现的接口:
Serializable
直接已知子类:
SecureRandom
--------------------------------------------------------------------------------
public class Randomextends Objectimplements Serializable此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式对其进行修改(请参阅 Donald Knuth 的《The Art of Computer Programming, Volume 2》,第 3.2.1 节)。
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证属性的实现,为类 Random 指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。
Random 类所实现的算法使用一个 protected 实用工具方法,每次调用它都可提供最多 32 个伪随机生成的位。
很多应用程序会发现 Math 类中的 random 方法更易于使用。
从以下版本开始:
JDK1.0
另请参见:
Math.random(), 序列化表格
--------------------------------------------------------------------------------
构造方法摘要
Random()
创建一个新的随机数生成器。
Random(long seed)
使用单个 long 种子创建一个新随机数生成器: public Random(long seed) setSeed(seed); next 方法使用它来保存随机数生成器的状态。
方法摘要
protected int next(int bits)
生成下一个伪随机数。
boolean nextBoolean()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean 值。
void nextBytes(byte[] bytes)
生成随机字节并将其置于用户提供的字节数组中。
double nextDouble()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0之间均匀分布的 double 值。
float nextFloat()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0 之间均匀分布的 float 值。
double nextGaussian()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。
int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
long nextLong()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。
void setSeed(long seed)
使用单个 long 种子设置此随机数生成器的种子。
楼下的,直接说不理解有什么用 参考技术A 随机数的生成方法是“new Random()”。
生成范围为(0-1)之间的小数,不包含两个端点。
如:生成5位随机整数“int radomInt = new Random().nextInt(99999)”即可。 参考技术B Random
random
=
new
Random();
int
s
=
random.nextInt(max)%(max-min+1)
+
min;
上面的结果
s
就是最小值
min
到最大值
max
之间的任意随机数字,不包括两个端点。 参考技术C random
random
=
new
random();
int
s
=
random.nextint(max)%(max-min+1)
+
min;
上面的结果
s
就是最小值
min
到最大值
max
之间的任意随机数字,不包括两个端点。 参考技术D dctg老兄你也太不负责了吧,随便复制一段东西放在上面,还是看我的吧
public class RandomTest
public static void main(String[]args)
double a = Math.random()*10;
a = Math.ceil(a);
int randomNum = new Double(a).intValue();
System.out.println(randomNum);
本回答被提问者采纳
java随机数指定的范围怎么做
JAVA随机数指定的范围标准格式:
Random rand = new Random();
int randNum = rand.nextInt(范围);
示例:
1.生成0-2之间的随机数,包括2
Random rand = new Random();
int randNum = rand.nextInt(3);
2.生成5-26之间的随机数,包括26
Random rand = new Random();
int randNum = rand.nextInt(22)+5;
扩展资料:
random函数使用格式:
新建random类的rand对象
Random rand = new Random();
设定rand的类型以及区间范围:
int randNum = rand.nextInt(int x)+y;
参考技术A JAVA可以使用Random随机生成数字的类:1.生成0-2之间的随机数,包括
Random rand = new Random();
int randNum = rand.nextInt(3);
2.生成5-26之间的随机数,包括26
int randNum = rand.nextInt(22)+5; 参考技术B 随机数不是在0到1之间么?把出来的结果乘以你要的范围不就得了?
范围:0-100
代码:Math.random()*100
如果你是要从非零开始的话,那么就Math.random()*(n-m)+m就可以了。这里表示从m到n的随机数。
范围:30-100
代码:Math.random()*70+30
哦,如果是用java.util.Radom类的话,用方法nextInt(int n)就可以获得在0-n之间的随机整数了。 参考技术C 用Math.random()要特别小心转化为int的问题
以为Math.random()转化为int只能等于0,所以要先乘100再转化。
如果只要int的话,可以使用这个:
Random ran=new Random();
int i=ran.nextInt(100);
i的值是0~99 参考技术D 0~N:Math.random()*N
n~m:Math.random()*(m-n)+n本回答被提问者采纳
以上是关于怎样用java产生一个指定范围的随机数?的主要内容,如果未能解决你的问题,请参考以下文章