精华内容
下载资源
问答
  • 使用JPEG图像作为熵源的Java真随机数生成器(TRNG)。 这个怎么运作 它使用两个不同的输入图像(具有相同的分辨率)。 这些图像被认为是独立的,因为它们是在两个不同的时刻捕获的。 它使用,因此,如果两个图像中的...
  • JAVA生成随机数

    万次阅读 2021-04-25 18:48:44
    方式一 Random rand = new Random(); for(int i=0; i<10; i++) { System.out.println(rand.nextInt(10) + 1); } 方式二 for (int i = 0; i < 50; i++) { arr[i]=(int)(100*Math.random());... }

    方式一

    Random rand = new Random();
            for(int i=0; i<10; i++) {
                System.out.println(rand.nextInt(10) + 1);
            }
    

    方式二

            for (int i = 0; i < 50; i++) {
    
                arr[i]=(int)(100*Math.random());
            }
    
    展开全文
  • java生成随机数的方法

    2020-09-03 16:36:38
    主要介绍了java生成随机数的方法,涉及java随机数及字符串操作的相关技巧,需要的朋友可以参考下
  • java实现随机数生成器

    2020-08-26 13:53:52
    主要为大家详细介绍了java实现随机数生成器,随机数生成小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 介绍java 产生随机数式介绍java 产生随机数式介绍java 产生随机数式介绍java 产生随机数
  • java生成随机数

    2019-01-29 16:30:20
    java生成随机数 生成0-99之间的随机数(包括0和99) import java.util.Random; public class Main { public static void main(String[] args) { Random rand = new Random(); int a = rand.nextInt(100...

    java生成随机数(Random类 和 Math类)

    Random类

    1. 生成0-99之间的随机数(包括0和99)
    import java.util.Random;
    public class Main {
        public static void main(String[] args) {
            Random rand = new Random();
            int a = rand.nextInt(100);
            System.out.println(a);
        }
    }
    

    2.生成1-100之间的随机数(包括1和100)

    import java.util.Random;
    public class Main {
        public static void main(String[] args) {
            Random rand = new Random();
            int a = rand.nextInt(100) + 1;
            System.out.println(a);
        }
    }
    

    3.随机生成两位整数

    import java.util.Random;
    public class Main {
        public static void main(String[] args) {
            Random rand = new Random();
            int a = rand.nextInt(90) + 10;
            System.out.println(a);
        }
    }
    

    4.随机生成三位整数

    import java.util.Random;
    public class Main {
        public static void main(String[] args) {
            Random rand = new Random();
            int a = rand.nextInt(900) + 100;
            System.out.println(a);
        }
    }
    

    5.生成任意区间的随机数

    int randNumber =rand.nextInt(MAX - MIN + 1) + MIN;
    // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数

    生成区间 [64,128] 中随机值

    import java.util.Random;
    public class Main {
        public static void main(String[] args) {
            Random rand = new Random();
            int a = rand.nextInt(65) + 64;
            System.out.println(a);
        }
    }
    

    Math类

    Math类的random()方法可以生成大于等于0.0、小于1.0的double型随机数。

    (int)(Math.random()*n); //生成大于等于0小于n之间的随机数
    m+(int)(Matn.randon()*n); //生成大于等于m小于m+n(不包括m+n)之间的随机数

    生成随机字符

    (char)(‘a’+Math.random()*(‘z’-‘a’+1)); 随机生成a~z之间的字符

    public class Main {
        public static void main(String[] args) {
            for (int i = 0; i < 10; i++) {
                char a = (char) ('a'+Math.random()*('z'-'a'+1));
                System.out.println(a);
            }
        }
    }
    

    原贴:Java中在特定区间产生随机数

    展开全文
  • 主要介绍了java生成随机数的常用方法,结合实例形式分析了java生成随机数常用的方法功能与相关使用技巧,需要的朋友可以参考下
  • java 权重随机数算法

    千次阅读 2017-12-15 12:56:05
    java 权重随机数 算法

    大家好,我是入错行的bug猫。(http://blog.csdn.net/qq_41399429,谢绝转载)

    如题,前段时间写一个抽奖程序,需要产生随机数A、B、C、D…,并且出现的概率是固定值,比喻特等奖,一等奖,二等奖,三等奖中奖概率分别是1:2:3:4

    bug猫:产生随机数啊,那个简单,我知道!

    脑袋一拍,有了:
    随机生成含0,不含10的整数,按照理论,生成 0,1,2,3,4,5,6,7,8,9 概率完全相等,
    生成的随机数为0(大于等于0,小于1),占整体的概率是1/10;
    生成的随机数为1,2(大于等于1,小于3),占整体的概率是2/10;
    生成的随机数为3,4,5(大于等于3,小于6),占整体的概率是3/10;
    生成的随机数为6,7,8,9(大于等于6,小于10),占整体的概率是4/10;
    于是四种可能的比,正好是 1:2:3:4

    于是bug猫疯狂地敲键盘,代码撸出来了,代码就不贴了,没什么技术含量。

    老板:不对啊,怎么少了参与奖?不行,参与奖要加,还要占整个概率的50%。

    bug猫:……
    好吧,不难。我把随机数范围设置为0-20,0到10保持不变,10-20范围属于参与奖。
    加一个if else判定搞定!

    老板:嗯——咱们还等加一个优惠奖,抽中这个优惠奖,可以直接有下次抽奖的资格,这个奖,就和特等奖、一等奖、二等奖、三等奖之和一样吧

    bug猫:……
    经过一系列计算,bug猫终于把各种概率计算出来后,把之前的各个临界值修改了一遍。加班搞完了!

    老板:等等!貌似抽奖就有奖获奖,这不对啊!还有大把的不中奖呢?

    bug猫:噫,这不是您故意设计成这样的吗?
    老板:我要是都发给中奖的人,哪你还要年终奖吗?

    bug猫:向年终奖低头!
    于是bug猫熬夜搞完了!

    像这种不断变更需求,程序猿能不各种苦逼加班吗?
    bug猫认为,程序猿需要会“偷懒”,不会“偷懒”的程序猿最终会被各种需求淹没,甚至会被淘汰!
    此偷懒非上班摸鱼打浑,而是提高自己效率,更短的时间内,干完自己手上的活,让自己闲下来。

    回到正题,如果java中有权重随机数,那么bug猫也不会苦逼兮兮改代码了。
    可惜java里没有现成的方法。
    网上查资料,要么是千篇一律,不知道是谁转载谁的,要么就是复杂得一腿子,还有的根本没法扩展。
    那么,自己撸吧!

    解题思路:
    按照一开始思路,是没有问题。
    某个元素的概率变化了,或者删减了元素,影响到的只是随机数范围,和临界值。
    我们看一下随机数范围是怎么来的:等于各个元素的比例之和。
    如果概率是按百分比,那么随机数范围,也就是总体是100;
    如果是类似A:B:C:D:E=1:2:3:4:6,那么随机数范围应该是(1+2+3+4+6)=16;
    再看临界值:
    16份数据中,A占1份,B占2份,C占3份,D占4份,E占6份

    元素最小最大
    A0 = 01=0+1
    B1=A最大3=A最大+2
    C3=B最大6=B最大+3
    D6=C最大10=C最大+4
    E10=D最大16=D最大+6

    规则很明显
    数学表达式:E0最小=0,E0最大=E0最小+权值0;En最小=En-1最大,En最大=En最小+权值n
    说人话就是:当前元素概率范围,最小值是上一个元素的最大值,最大值是当前元素的最小值,加上当前元素的权值;

    java 代码:

    int[] weight = new int[]{1,2,3,4,6};   //所有元素权重
    List<Integer> weightTmp = new ArrayList<Integer>(weight.length+1);
    weightTmp.add(0);//随机数范围从0开始计算
    Integer sum = 0;//随机数最大值,java随机数是不包含该值
    for( Integer d : weight ){
       sum += d;
       weightTmp.add(sum);//当前元素概率范围临界值
    }
    Random random = new Random();
    int rand = random.nextInt(sum);//产生0到sum,含0不含sum的随机数

    随机数,和临界值都准备好,剩下的就是判断rand是落在哪个范围。
    哈?用if else?
    先等等,bug猫已经对if else产生不可抗力的恐惧了。

    我们还是先观察一下,weightTmp是一个集合,里面的每个对象,正好是元素的临界值。第一个对象是0,最后一个对象是sum,而且weightTmp里面的对象,全部按从小到大排好,找到可以插入rand的位置,这个区间段对应的权重,就是本次随机到的元素:

    int index = 0;
    for(int i = weightTmp.size()-1; i >0; i--){//从集合尾部向头部遍历。也就是从大到小遍历
       if( rand >= weightTmp.get(i)){//当第一次出现随机数,大于临界值时
          index = i;
          break;
       }
    }
    return index;

    返回的index,就是随机到的weight下表。

    整理一下代码:

    /**
     * 权重随机数
     * @param weight [15,568,4181,2]
     * @return 索引值
     */
    public static int random(List<Integer> weight){
        List<Integer> weightTmp = new ArrayList<Integer>(weight.size()+1);
        weightTmp.add(0);
        Integer sum = 0;
        for( Integer d : weight ){
            sum += d;
            weightTmp.add(sum);
        }
        Random random = new Random();
        int rand = random.nextInt(sum);
        int index = 0;
        for(int i = weightTmp.size()-1; i >0; i--){
            if( rand >= weightTmp.get(i)){
                index = i;
                break;
            }
        }
        return index;
    }
    //这只是整数权重的,如果是小数、或者百分比,可以先转化成整数,在执行这个方法

    搞定!

    临近下班的时候,老板带着零食饮料过来,bug喵呀,这个还要加一个奖,另外几个概率也改改。
    bug猫撮着枸杞白开水,掐指一算各自的概率,随手在键盘敲了几下,测试通过。对老板说,已经改完了!
    在老板诧异的阳光下,伴着下班闹钟,淡定地溜了。








    ~THE END~

    于是第二天bug喵被老板塞了更多的任务了…… (╯‵□′)╯︵┻━┻

    展开全文
  • Java简易随机数生成

    2018-06-25 11:14:41
    Java简易随机数生成 下载完请输入测试代码 public static void main(String[] args) { System.out.println(random(50,100));//example System.out.println(random(50.0,100.0)); }
  • java随机生成随机数 Generating a series of random numbers is one of those common tasks that crop up from time to time. In Java, it can be achieved simply by using the java.util.Random class. 生成一...

    java随机生成随机数

    Generating a series of random numbers is one of those common tasks that crop up from time to time. In Java, it can be achieved simply by using the java.util.Random class.

    生成一系列随机数是不时出现的常见任务之一。 在Java中 ,只需使用java.util.Random类即可实现。

    The first step, as with the use of any API class, is to put the import statement before the start of your program class:

    与使用任何API 类一样 ,第一步是将import语句放在程序类开始之前:

    Next, create a Random object:

    接下来,创建一个Random对象:

    The Random object provides you with a simple random number generator. The methods of the object give the ability to pick random numbers. For example, the nextInt() and nextLong() methods will return a number that is within the range of values (negative and positive) of the int and long data types respectively:

    Random对象为您提供了一个简单的随机数生成器。 对象的方法可以选择随机数。 例如,nextInt()和nextLong()方法将分别返回int和long数据类型的值(负和正)范围内的数字:

    The numbers returned will be randomly chosen int and long values:

    返回的数字将是随机选择的int和long值:

    从一定范围内挑选随机数 ( Picking Random Numbers From a Certain Range )

    Normally the random numbers to be generated need to be from a certain range (e.g., between 1 to 40 inclusively). For this purpose, the nextInt() method can also accept an int parameter. It denotes the upper limit for the range of numbers. However, the upper limit number is not included as one of the numbers that can be picked. That might sound confusing but the nextInt() method works from zero upwards. For example:

    通常,要生成的随机数必须在某个范围内(例如,包括1到40之间)。 为此,nextInt()方法还可以接受一个int参数。 表示数字范围的上限。 但是,上限编号不作为可以选择的编号之一。 这听起来可能令人困惑,但是nextInt()方法从零开始工作。 例如:

    will only pick a random number from 0 to 39 inclusively. To pick from a range that starts with 1, simply add 1 to the result of the nextInt() method. For example, to pick a number between 1 to 40 inclusively add one to the result:

    只会选择一个从0到39(含)之间的随机数。 要从以1开头的范围中进行选择,只需将nextInt()方法的结果加1。 例如,要选择一个介于1到40之间(包括1和40)的数字,请在结果中加上一个:

    If the range starts from a higher number than one you will need to:

    如果范围从大于1的数字开始,则需要:

    • minus the starting number from the upper limit number and then add one.

      从上限编号减去起始编号,然后再加一个。
    • add the starting number to the result of the nextInt() method.

      将起始编号添加到nextInt()方法的结果中。

    For example, to pick a number from 5 to 35 inclusively, the upper limit number will be 35-5+1=31 and 5 needs to be added to the result:

    例如,要选择一个介于5到35之间的数字,上限数字将为35-5 + 1 = 31,并且需要在结果中加上5:

    随机类别的随机性如何? ( Just How Random Is the Random Class? )

    I should point out that the Random class generates random numbers in a deterministic way. The algorithm that produces the randomness is based on a number called a seed. If the seed number is known then it's possible to figure out the numbers that are going to be produced from the algorithm. To prove this I'll use the numbers from the date that Neil Armstrong first stepped on the Moon as my seed number (20th July 1969) :​

    我应该指出,Random类以确定性方式生成随机数。 产生随机性的算法基于一个称为种子的数字。 如果知道种子编号,则可以找出将要从算法生成的编号。 为了证明这一点,我将使用尼尔·阿姆斯特朗第一次踏上月球的日期作为我的种子编号(1969年7月20日):

    No matter who runs this code the sequence of "random" numbers produced will be:

    无论是谁运行此代码,产生的“随机”数字序列都将是:

    By default the seed number that is used by:

    默认情况下,以下对象使用的种子编号:

    is the current time in milliseconds since January 1, 1970. Normally this will produce sufficiently random numbers for most purposes. However, note that two random number generators created within the same millisecond will generate the same random numbers.

    是自1970年1月1日以来的当前时间(以毫秒为单位)。通常,对于大多数用途,这将产生足够的随机数。 但是,请注意,在同一毫秒内创建的两个随机数生成器将生成相同的随机数。

    Also be careful when using the Random class for any application that must have a secure random number generator (e.g., a gambling program). It might be possible to guess the seed number based on the time the application is running. Generally, for applications where the random numbers are absolutely critical, it's best to find an alternative to the Random object. For most applications where there just needs to be a certain random element (e.g., dice for a board game) then it works fine.

    将Random类用于必须具有安全随机数生成器的任何应用程序(例如,赌博程序)时,也要小心。 可能可以根据应用程序的运行时间猜测种子编号。 通常,对于随机数绝对重要的应用程序,最好找到随机对象的替代方法。 对于大多数只需要某个随机元素(例如,棋盘游戏的骰子)的应用程序来说,它可以正常工作。

    翻译自: https://www.thoughtco.com/how-to-generate-random-numbers-2034206

    java随机生成随机数

    展开全文
  • Java产生随机数

    2017-05-28 13:23:00
    java随机数的产生
  • java-随机数生成

    2020-12-22 03:52:30
    Java随机数生成 随机数有三种生成方式 1.通过Math.random()方法 2.通过System.currentTimeMillis()方法获取毫秒数, 3.通过Random类 ——————————————————————使用开发工具MyEclipse10 第一种:...
  • Java Random 随机数

    千次阅读 2016-07-31 22:39:39
    Java Random 随机数实际开发中产生随机数的使用很常见,因此在程序中产生随机数的操作很重要。在Java中主要提供了两种方法产生随机数,分别是调用Math类的random()方法和Random类提供的产生各种数据类型的随机数的...
  • java产生随机数的几种方式 java产生随机数的几种方式 java产生随机数的几种方式 java产生随机数的几种方式
  • Java生成随机数

    2016-05-09 10:25:59
    Java生成随机数有2种方法 1、Math.Random() 位于该类 java.lang.Math.Random ----生成[0,1),不会等于1的double随机数。 用法如下: 问题:如何使用该方法生成0~10的整数随机数? [0,1) * 11 = [0,11...
  • Java_随机数

    2021-08-27 16:46:29
    import java.util.Random; // 随机数的生成 // 随机种子:随机数是通过一些复杂的数学算法得到的,随机种子(Random Seed)... // 第一种生成随机数的方式,使用Math.random()方法,生成[0,1.0]的double类型的随机数
  • JAVA获取随机数

    万次阅读 2018-04-15 16:01:42
    JAVA获取随机数 java中一般是通过Random类来获取随机数,构造函数一般有两种形式 - Random(long seed); - Random(); 第一种是利用seed作为随机发生器的种子 而第二种省略了seed,则则利用系统时间作为...
  • java产生随机数

    2017-10-20 14:31:16
    记得自己刚java入门时除了输出helloworld就是输出某个特定范围内的随机数了,好了废话不多说,下面小编将给大家分享一下在java中如何产生随机数。 neatbeans 8.0 jdk 1.8 首先我们新建一个java project...
  • JAVA产生随机数

    2020-04-29 23:22:33
    1、在JDK7之后的版本可用下面的方法产生随机数: // 通过本地线程产生随机数,可以仔细研究ThreadLocal的用法。 ThreadLocalRandom.current()....2、可以借助java.util.Random类来产生随机数。 借助java.u...
  • 主要介绍了java生成字母数字组合的随机数的示例,大家参考使用吧
  • Java Random随机数

    2018-11-27 19:03:11
    Java随机数有两种函数 1.java.lang.Math.Random API文档 //产生一个[0,1)之间的随机数。 Math.random(): //返回指定范围的随机数(m-n之间)的公式: Math.random()*(n-m)+m; //或者 Math.random()*(n+1-m)+m...
  • java随机数小结.pdf

    2021-09-13 10:25:38
    java随机数小结.pdf
  • 本篇文章主要介绍了Java获取随机数的3种方法,现在分享给大家,也给大家做个参考,感兴趣的小伙伴们可以参考一下。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 117,395
精华内容 46,958
关键字:

java真随机数

java 订阅