首页 > 其他分享 >如何生成随机数

如何生成随机数

时间:2022-09-23 20:12:06浏览次数:53  
标签:rand nextInt Random System 生成 如何 随机数 println out

对于如何生成随机数一般有以下几个方法

1.直接调用Math.random()函数

 int x=(int)(Math.random()*6)——生成0-5的随机数

import javax.swing.JOptionPane;

public class RandomInt {
   public static void main( String args[] )
   {
      int value;
      String output = "";

      for ( int i = 1; i <= 20; i++ ) {
         value = 1 + (int) ( Math.random() * 6 );
         output += value + "  ";
         
         if ( i % 5 == 0 )
            output += "\n";
      }

      JOptionPane.showMessageDialog( null, output,
         "20 Random Numbers from 1 to 6",
         JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }
}

2.JDK提供了Random类

import java.util.Random

Random r=new Random();

int x=r.nextInt(100)+1生成一个1到101的随机数

import java.util.*;

public class TestRandom
{
    public static void main(String[] args) 
    {
        Random rand = new Random();
        System.out.println("rand.nextBoolean():" + rand.nextBoolean());
        byte[] buffer = new byte[16];
        rand.nextBytes(buffer);
        System.out.println(Arrays.toString(buffer));
        //生成0.0~1.0之间的伪随机double数
        System.out.println("rand.nextDouble():" + rand.nextDouble());
        //生成0.0~1.0之间的伪随机float数
        System.out.println("rand.nextFloat():" + rand.nextFloat());
        //生成平均值是 0.0,标准差是 1.0的伪高斯数
        System.out.println("rand.nextGaussian():" + rand.nextGaussian());
        //生成一个处于long整数取值范围的伪随机整数
        System.out.println("rand.nextInt():" + rand.nextInt());
        //生成0~26之间的伪随机整数
        System.out.println("rand.nextInt(26):" + rand.nextInt(26));
        //生成一个处于long整数取值范围的伪随机整数
        System.out.println("rand.nextLong():" +  rand.nextLong());
    }
}

3.带种子的随机数

import java.util.Random;

public class TestSeed
{
    public static void main(String[] args)
    {
        Random r1 = new Random(50);
        System.out.println("第一个种子为50的Random对象");
        System.out.println("r1.nextBoolean():\t" + r1.nextBoolean());
        System.out.println("r1.nextInt():\t\t" + r1.nextInt());
        System.out.println("r1.nextDouble():\t" + r1.nextDouble());
        System.out.println("r1.nextGaussian():\t" + r1.nextGaussian());
        System.out.println("---------------------------");
        
        Random r2 = new Random(50);
        System.out.println("第二个种子为50的Random对象");
        System.out.println("r2.nextBoolean():\t" + r2.nextBoolean());
        System.out.println("r2.nextInt():\t\t" + r2.nextInt());
        System.out.println("r2.nextDouble():\t" + r2.nextDouble());
        System.out.println("r2.nextGaussian():\t" + r2.nextGaussian());
        System.out.println("---------------------------");
        
        Random r3 = new Random(100);
        System.out.println("种子为100的Random对象");
        System.out.println("r3.nextBoolean():\t" + r3.nextBoolean());
        System.out.println("r3.nextInt():\t\t" + r3.nextInt());
        System.out.println("r3.nextDouble():\t" + r3.nextDouble());
        System.out.println("r3.nextGaussian():\t" + r3.nextGaussian());
        
       
        Random r4 = new Random(System.currentTimeMillis());
        System.out.println("以当前时间为种子的Random对象");
        System.out.println("r3.nextBoolean():\t" + r4.nextBoolean());
        System.out.println("r3.nextInt():\t\t" + r4.nextInt());
        System.out.println("r3.nextDouble():\t" + r4.nextDouble());
        System.out.println("r3.nextGaussian():\t" + r4.nextGaussian()); 
    }
}

生成以时间为种子的随机数

Random r4 = new Random(System.currentTimeMillis());

标签:rand,nextInt,Random,System,生成,如何,随机数,println,out
From: https://www.cnblogs.com/jiacheng-712/p/16716709.html

相关文章

  • 7、如何搭建一个网站
    ......
  • net core 使用 Npoi 生成 Word文档
    需求:按数据层级生成WORD文件,要有目录,目录里要有真实的页码,附件内容用表格显示,大标题 做为封面当独显示一页,PDF内容大标题,目录(里有对应的页码)正文 里有表格重点:NPOI......
  • 如何使用Markdown
    标题二级标题三级标题四级标题字体Hello、Word!Hello、Word!Hello、Word!Hello、Word!Hello、Word!引用狂神说java.走向人生巅峰!分割线图片网络图片!......
  • 企业分账如何帮助用户解决成本优化和预算分配的问题
    简介: Serverless应用引擎SAE(ServerlessAppEngine)是一个全托管、免运维、高弹性的通用PaaS平台。SAE支持SpringCloud、Dubbo、HSF、Web应用和XXL-JOB、ElasticJ......
  • RTMP_PUSH协议的通道IP不正确是什么原因?该如何解决?
    EasyCVR视频融合云平台基于云边端一体化架构,兼容性高、拓展性强,可支持多类型设备、多协议方式接入,包括国标GB/T28181、RTMP、RTSP/Onvif协议,以及厂家的私有协议,如:海康Ehome......
  • 前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件
    在之前的文章中,我们为大家分别详细介绍了在JavaScript、React中使用SpreadJS导入和导出Excel文件的方法,作为带给广大前端开发者的“三部曲”,本文我们将为大家介绍该问题在A......
  • B站上如何把同类视频做成合集
    前言常逛B站的朋友,想必对下图不会感到陌生,简单来说就是把同系列的视频做一个合集,当你点击其中任意一个视频后,都会显示下图的合集列表,方便观看但要想把视频做成合集却......
  • cp随机数
    dlt是七个开奖号码:可以对应五个区间前区(1~35)可以切割为:1~12、13~24、25~35后区(1~12)可以切割为:1~6、7~12*思路:先整个函数(比如叫:sjs)可以返回[min,max]区间的随机......
  • 如何查看nginx的用户名及用户组?
    https://www.656463.com/wenda/rhcknginxdyhmjyhz553_58nginx的用户名在/etc/nginx/nginx.conf配置文件中,有一个user参数,查看对应的就可以。此外使用psaxu|grepnginx来......
  • 如何实现webview内页面放大和缩小 (手指放大缩小)
    uniapp的web-view无法自由缩放(已解决)onReady(){ //#ifdefAPP-PLUS constcurrentWebview=this.$scope.$getAppWebview()//获取当前页面的webview对象 setTimeou......