java中如何生成一组的随机数(范围在0-1000之间,double型的),各个数之间没有联系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何生成一组的随机数(范围在0-1000之间,double型的),各个数之间没有联系相关的知识,希望对你有一定的参考价值。

我知道可以用math.random或者random.double生成随机数,但是生成的随机数貌似互相之间是有联系的,我想让生成的这些数之间毫无联系,就是那种完全随机的,然后存在一个数组中的,能不能编写一个具体的函数是求随机数的这种的,麻烦大虾们了,在线等!

randompublic static double random()返回带正号的 double 值,该值大于等于 0.0 且小于
1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同
new java.util.Random之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。
此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。
参考技术A public class Util
public static void main(String[] args) throws Exception
int[] arr = new int[100];
for(int i = 0; i < arr.length; i++)
arr[i] = new java.util.Random().nextInt(100)+1;

System.out.println(java.util.Arrays.toString(arr));


//您好,提问者:这个Random是没有联系的,就是随机生成啊。。

追问

Random.nexInt是随机的产生数吗?

追答

这个是在100范围内伪随机数,意思就说在0 - 100之间随机。

参考技术B Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,就是完全随机的了,用别的种子就是伪随机的本回答被提问者采纳 参考技术C Math.random()*1000,每次生成的随机数之间并没有联系的追问

那如果用randomnextint的话是随机的吗?

追答

Random random = new Random();

random.nextint();
这样的话也是随机的

参考技术D = = 伪随机也可以算随机啊。不然你自己用他的函数 随位数,随值,随小数,之后拼起来这样??

JAVA中 如何产生一个特定范围的随机数

JAVA中 如何产生一个特定范围的随机数 比如 我要产生一个0 1 2 这三个数中的一个数
再比如 我要产生一个 5到26的一个随机数 这些要怎么写 或者产生一个随机数后 怎样取余来达到这么目的

java.util
类 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 生成0-2之间的随机数,包括2
Random rand = new Random();
int randNum = rand.nextInt(3);
生成5-26之间的随机数,包括26
int randNum = rand.nextInt(22)+5;本回答被提问者采纳
参考技术C

生成0-2之间的随机数,包括2

Random rand = new Random();

int randNum = rand.nextInt(3);

生成5-26之间的随机数,包括26

int randNum = rand.nextInt(22)+5;

java中让随机数产生在一个区间段:

假设你要产生5到10之间的随机数,可以用下面方法:

int Min = 5;

int Max = 10;

int result = Min + (int)(Math.random() * ((Max - Min) + 1));

参考技术D Math.random()产生一个0-1的随机数
你用一个1-10的数字去乘就行了。
比如你要0,1,2
(int)(Math.random()*3)
同理:乘以100内的数字就行
5-26
就大于(int)((Math.random()*6)
小于(int)(Math.random()*27)
或者(int)(Math.random()*22 +5)追问

int)(Math.random()*3 这样弄出的全是0

追答

你用 错了!(int)(Math.random()*3 ) 少了半个括号

以上是关于java中如何生成一组的随机数(范围在0-1000之间,double型的),各个数之间没有联系的主要内容,如果未能解决你的问题,请参考以下文章

在VB中,如何生成某个范围内的随机整数?

Java怎么生成随机日期

java基础:随机生成一组双色球号码(6个红色号码在前,1个蓝色号码在后) (红球号码范围 1~33,蓝色号码 1~16)(需要去重)

js生成一组随机数,找出最大数

Java如何生成一定范围内的随机数? [复制]

JAVA中 如何产生一个特定范围的随机数