java生成指定范围内的随机数

  我们经常说Java中的随机数是伪随机数,那么我们要知道什么是伪随机数。

什么是伪随机数?

  1、真正意义上的随机数在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。这才是真随机。

  2、计算机中的随机函数是按照确定算法模拟产生的,其结果是确定的,是可见的,我们可以这样认为这个可预见的结果其出现的概率是100%,所以被称为伪随机。

Java随机数产生原理

     Java的随机数产生用了线性同余公式等,也就是说通过一个复杂的算法生成的。如果感兴趣,可以去看一下这篇对java随机数源码解析的博客。http://www.codes51.com/article/detail_1581162_5.html

Java产生随机数的方法有两种:

  1、Math.random()
  2、new Random()

java.lang.Math.Random

  Math.Random()函数能够返回0-1之间的double值,在该范围内(近似)均匀分布。

java.util.Random:

Random()有两种构造方法:

     1、Random():使用一个和当前时间的毫秒数作为种子,可以通过System.currentTimeMillis()来获得当前时间的毫秒数。下面是JDK的源代码。

  public Random() { this(System.currentTimeMillis()); }。

   2、 Random(long seed):直接传入一个种子,如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

 random对象的nextInt(),nextInt(int n)方法:
  int nextInt() 
      返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 
  int nextInt(int n) 
      返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 [0,1) 之间均匀分布的 int值。

时间: 2024-12-08 18:59:22

java生成指定范围内的随机数的相关文章

SQL Server生成指定范围内的随机数

在开发中很多时候,我们都会遇到这种需要生成一个指定范围随机数的情况.而且在很多语言中比如Java.C#.SQl等,都会有一个函数生成一个类似于0.234273983423789的随机小数,而所有的随机数都是通过这个最基本的随机数(0.234273983423789)变化过来的. 下面我说一下生成指定范围随机数的思路,比如我要生成一个100-999范围内的随机数,我就要保证我写的生成随机数的表达式所生成的值,最大是999,最小是100.还有就是要明白一个数学里的小道理,0.99去乘一个数字所得的结

随机生成指定范围内的随机数,放在指定长度的数组内

在群里遇到有人提出一道题:1.创建一个长度为5的空数组arr. 2.生成一个[2,32]之间的随机整数rand. 3.把随机整数插入到arr内,如果arr内已存在与rand相同的数,则重新生成随机整数并插入(需要使用递归实现,不能使用for/while等循环). 4.最后输出一个长度为5,且内容不重复的数组arr. 首先:生成指定范围的随机整数的公式: Math.floor(Math.random()*(max-min+1)+min); 之后看完整的方法: var arr = new Array

shell生成指定范围内的随机数

#!/bin/bash read -p "请输入起始数:" min read -p "请输入终止数:" max if [ $min -gt $max ] then echo "起始数大于终止数!" else echo -n "随机数:" ;expr $(date +%N) % $[$max - $min + 1] + $min #日期函数生成随机数向最大值和最小值的差加1后取余得到一个随机数,然后加上最小值保证能取到的最小值和

Java生成指定范围内的工具类

/** * 生成[min, max]之间的随机整数 * * @param min 最小整数 * @param max 最大整数 * @return * @author jqlin */ private static int randomInt(int min, int max){ return new Random().nextInt(max)%(max-min+1) + min; } 原文地址:https://www.cnblogs.com/javahr/p/8323588.html

js中Math.random()生成指定范围数值的随机数

http://www.111cn.net/wy/js-ajax/57062.htm Math.random() 这个方法相信大家都知道,是用来生成随机数的.不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数.这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数.w3school的random()教程定义和用法 random() 方法可返回介于 0 ~ 1 之间的一个随机数.语法 Math.random() 返回值 0.0 ~ 1.0 之间的一

2016/1/14 java生成指定范围的随机数

java生成指定范围的随机数 1 package edu.sjtu.erplab.io; 2 3 import java.util.Random; 4 5 public class RandomTest { 6 public static void main(String[] args) { 7 int max=20; 8 int min=10; 9 Random random = new Random(); 10 11 int s = random.nextInt(max)%(max-min+

生成指定范围的一组随机数并求平均值

Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码. 随机数生成20~90之间的数值,并求平均数: public class Random01 { public static void main(String[] args) { int len = 5; int sum = 0; int[] arr = new int[len]; for (int i = 0; i < len; i++) { arr[i] = (int

js生成某个范围内的随机数

根据random方法,Math.random()方法返回的是0到1的随机数(不包含0和1): ? 1 2 3 4 5 6 7 8 //生成k个m到n的随机数,返回数组     function Temp(m,n,k) {         var all = new Array();         for (var i = 0; i < k; i++) {             all[i] = Math.floor(Math.random()*(n-m) + m); //Math.floor

【maven+junit】 java生成指定为位数的随机密码

原文:[maven+junit] java生成指定为位数的随机密码 源代码下载地址:http://www.zuidaima.com/share/1575542151629824.htm 网上整理的.大家有什么更好的方案可以分享下. 版权声明:本文为博主原创文章,未经博主允许不得转载.