java如何产生随机数

一、java如何产生随机数?

1.打开eclipse

2.新建java项目,例如取名为“suijishu”点击完成

3.新建一个类进行测试

4.首先要在头部插入一个包

输入import java.util.Random;

5.输入代码:

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的一个随机数

package suijishu;

import java.util.Random;

public class suijishu{
    public static int suiji =new Random().nextInt(10);
    public static void main(String[] args){
        System.out.print(suiji);
    }
}

6.测试输出,就可以看到生成的随机数

二、java如何实现生成不重复的随机数

package suijishu;

import java.util.Random;

public class suijishu{
    public static int suiji =new Random().nextInt(10);
    public static void main(String[] args){
        System.out.print(suiji);

    }

           //设定几位数

           private static final int LENGTH = 8;

            /**

             * 这是典型的随机洗牌算法。

             * 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域)

             * 算法时间复杂度O(n)

             * @return 随机8为不重复数组

             */

           public static String generateNumber() {

               String no = "";

               // 初始化备选数组

               int[] defaultNums = new int[10];

               for (int i = 0; i < defaultNums.length; i++) {

                   defaultNums[i] = i;

               }

               Random random = new Random();

               int[] nums = new int[LENGTH];

               // 默认数组中可以选择的部分长度

               int canBeUsed = 10;

               // 填充目标数组

               for (int i = 0; i < nums.length; i++) {

                   // 将随机选取的数字存入目标数组

                   int index = random.nextInt(canBeUsed);

                   nums[i] = defaultNums[index];

                   // 将已用过的数字扔到备选数组最后,并减小可选区域

                   swap(index, canBeUsed - 1, defaultNums);

                   canBeUsed--;

               }

               if (nums.length > 0) {

                   for (int i = 0; i < nums.length; i++) {

                       no += nums[i];

                   }

               }

               return no;

           }

           /**

            * 交换方法

            * @param i 交换位置

            * @param j 互换的位置

            * @param nums 数组

            */

           private static void swap(int i, int j, int[] nums) {

               int temp = nums[i];

               nums[i] = nums[j];

               nums[j] = temp;

           }

           /**

            * 获取8位数

            * @return

            */

           public static String generateNumber2() {

               String no = "";

               int num[] = new int[8];

               int c = 0;

               for (int i = 0; i < 8; i++) {

                   num[i] = new Random().nextInt(10);

                   c = num[i];

                   for (int j = 0; j < i; j++) {

                       if (num[j] == c) {

                           i--;

                           break;

                       }

                   }

               }

               if (num.length > 0) {

                   for (int i = 0; i < num.length; i++) {

                       no += num[i];

                   }

               }

               return no;

           }
}

测试输出就会发现每次生成的随机数都不一样

时间: 2024-08-08 05:36:07

java如何产生随机数的相关文章

Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com

Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom(转)

文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com/javase/7/docs/api/java/util/Random.htmlhttp://stac

java Math.random()随机数的产生

Math.random()是java内置产生随机数的函数,Math.random()能够产生[0,1)的浮点数,当我们要产生特定范围的数时,可以采用如下办法: 1.Math.random()*(最大数-最小数+1)+最小数 Math.random()*(a)产生[0-a)的随机数 如要产生[5-15]的随机数: int a =(int)(Math.random()*(15-5+1)+5) 注意随机数的括号,不要写成: int a =(int)Math.random()*(15-5+1)+5 这样

Java中生成随机数Random、ThreadLocalRandom、SecureRandom、Ma

我们来说说Java常见的生成随机数的几种方式:Random,ThreadLocalRandom,SecureRandom;其实产生随机数有很多种方式但我们常见的就这几种,如果需要详细了解这个三个类,可以查看JAVA API. Random random = new Random(); int a = random.nextInt(5);//随机生成0~4中间的数字 其实Random是有构造函数的,他的参数可以传一个long类型的值,当使用空的构造的时候,使用的实际上是System.nanoTim

【JAVA】产生随机数:rand.nextInt(int n )

参考链接: CSDN: rand.nextint() CSDN: jave中的Random中rand.nextInt(int n )的取值范围 CSDN: random.nextInt()与Math.random()基础用法 1. 代码示例 - `Random rand = new Random();` - `p += rand.nextInt(2); //取0-2(左闭右开不包括2)的整数` 2. rand.nextInt()的用法 背景: 自从JDK最初版本发布起,我们就可以使用java.u

关于Java中的随机数产生

对比两种写法: 第一种: public static void main(String args[]){ Random random = new Random(System.currentTimeMillis()); for(int i=0; i<20; i++){ int sindex = random.nextInt(2); System.out.println(sindex); } } 第二种: public static void main(String args[]){ for(int

Java学习关于随机数工具类--Random类

Random类是伪随机数生成器.之所以称为伪随机数(pseudorandom),是因为它们只是简单的均匀分布序列.Random类定义了以下构造函数: Random() Random(long seed) 使用第一个版本创建的随机数生成器使用相对唯一的种子(当前时间).第二个版本允许手动指定种子.如果使用种子初始化Random对象,就会为随机序列定义了开始点.如果使用相同的种子初始化另一个Random对象,就会得到相同的随机序列.如果希望生成不同的序列,需要指定不同的种子.实现这种效果的一种方式就

java 排列三个随机数

import java.util.Scanner; public class Pailie {     public static void main(String []args)     {         Scanner sca=new Scanner(System.in);         System.out.println("请输入第一个数字");         int i=sca.nextInt();              System.out.println(&qu

java中的随机数(Math.random()),以及如何产生一个类似于[21,77]区间的随机数。

//Math.random()产生的是[0,1)!!! double k=Math.random(); //注意下面那个=要加上,这样才满足数学对称性 if(k>=0.5)//意思是当产生的随机数大于等于0.5时说自己牛B,小于0.5时说这种自己傻B System.out.println("我活在牛A和牛C之间"+k); else System.out.println("我活在傻A和傻C之间"+k); //===========================