1. Java中产生随机数
  2. 1 . 调用java.lang下面Math类中的random()方法产生随机数
  3. 新建一个文件后缀名为java的文件,文件名取为MyRandom,该类中编写如下的代码:
  4. public class MyRandom {
  5. public static void main(String[] args) {
  6. int radom = (int)(Math.random()*10);
  7. System.out.println(radom);
  8. }
  9. }
  10. 其中Math.random() //产生0~1之间的一个随机小数。
  11. 产生一个0~9之间的整数为:(int)(Math.random()*10);
  12. 产生一个1~10之间的整数则可以写着:(int)(Math.random()*10 + 1);
  13. 以此类推:产生一个0~n之间的数就应写作:Math.random()*n;
  14. 取出一个指定长度大小的随机正整数:
  15. public static int buildRandom(int length) {
  16. int num = 1;
  17. double random = Math.random();
  18. if (random < 0.1) {
  19. random = random + 0.1;
  20. } for (int i = 0; i < length; i++) {
  21. num = num * 10;
  22. }
  23. return (int) ((random * num));
  24. }
  25. 2 . 调用java.util下面Random类,此类的实例用于生成伪随机数流,产生一个随机整数,则调用该类的nextInt()方法
  26. 使用Random类之前,则在包下导入java.util.Random ;代码为:
  27. import java.util.Random;
  28. public class MyRandom {
  29. public static void main(String[] args) {
  30. Random rand = new Random();
  31. int rInt = rand.nextInt(10);
  32. System.out.println(rInt);
  33. }
  34. }
  35. 其中Random rand = new Random()是创建一个新随机数生成器;rand.nextInt(int n)是从此随机数生成器的序列中取出的、在 0(包括)和指定值n(不包括)之间均匀分布的 int值。
  36. Java中在指定的整数范围类,循环产生不相同的随机数
  37. 以产生620以内不相同的随即整数 为例如下:
  38. public class MyRandom {
  39. public static void main(String[] args) {
  40. int n = 20;
  41. Random rand = new Random();
  42. boolean[] bool = new boolean[n];
  43. int randInt = 0;
  44. for(int i = 0; i < 6 ; i++) {
  45. do {
  46. randInt = rand.nextInt(n);
  47. }while(bool[randInt]);
  48. bool[randInt] = true;
  49. System.out.println(randInt);
  50. }
  51. }
  52. }
  53. 其中用布尔变量数组来存储是否生成了该数字。生成后,该数字作为布尔数组下表的对应布尔值变成了true,下一次生成该数字就会再次进入do...while循环生成数字直到产生没有生成过的数字。
  54. 例如:生成一个int类型的数组,长度为50的,并向其中随即插入0-50之间的数,并且不能重复。
  55. 代码如下:
  56. public class MyRandom {
  57. public static void main(String[] args) {
  58. int[] intRandom = new int[50];
  59. List mylist = new ArrayList(); //生成数据集,用来保存随即生成数,并用于判断
  60. Random rd = new Random();
  61. while(mylist.size() < 50) {
  62. int num = rd.nextInt(51);
  63. if(!mylist.contains(num)) {
  64. mylist.add(num); //往集合里面添加数据。
  65. }
  66. }
  67. for(int i = 0;i <mylist.size();i++) {
  68. intRandom[i] = (Integer)(mylist.get(i));
  69. }
  70. }
  71. }
  72. /**
  73. * 随机产生指定的范围不重复的集合
  74. * @param size
  75. * @return
  76. */
  77. public static Set<Integer> generateRandomArray(int size){
  78. Set<Integer> set = new LinkedHashSet<Integer>(); //集合是没有重复的值,LinkedHashSet是有顺序不重复集合,HashSet则为无顺序不重复集合
  79. Integer num = size;
  80. Integer range = size;
  81. Random ran = new Random();
  82. while(set.size() < num){
  83. Integer tmp = ran.nextInt(range); //0-51之间随机选一个数
  84. set.add(tmp);//直接加入,当有重复值时,不会往里加入,直到set的长度为52才结束
  85. }
  86. return set;
  87. }

java中生成不重复随机的数字的更多相关文章

  1. JAVA中生成指定位数随机数的方法总结

    JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = ( ...

  2. java中生成验证码,以及验证码的使用

    java中生成验证码,以及验证码的使用: 1:验证码生成工具类: import java.awt.Color; import java.awt.Font; import java.awt.Graphi ...

  3. 关于android开发添加菜单XML文件之后无法在R.java中生成ID的问题

    因为和同学分开做的android软件,现在想整合他做的界面部分,于是拷贝了res和src文件夹的文件,其中包括一个res.menu文件夹中的XML.但是每次将该文件导入到工程总无法自动在R.java中 ...

  4. 在java中生成二维码,并直接输出到jsp页面

    在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...

  5. JAVA中生成、解析二维码图片的方法

    JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...

  6. 【学习笔记】Java中生成对象的5中方法

    概述:本文介绍以下java五种创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.使用Class类的newInstance方法 3.运用反射手段,调用java.lang.re ...

  7. Java中生成随机字符的方法总结

    package learnExercise; public class RandomCharacter { public static char getRandomCharacter(char ch1 ...

  8. java之生成可重复执行的sql脚本

    在实际项目开发过程中,sql脚本需要多次执行.而一般的DML和DDL语句一般只能执行一次,再次执行执行时就会报错(操作对应已存在/不存在),所以必须将sql脚本生成可重复执行的.本文共分为4部分:1. ...

  9. Java中long类型直接赋值大数字 注意事项

    在java中,我们都知道有八种基本数据类型:byte. char. short .int. long. float. double .boolean 下面列出以下四种数据类型及其取值范围: 本文主要讲 ...

随机推荐

  1. 三角形的实现和盒模型、层模型、浮动模型、定位、权重、margin问题

    相邻的border会平分所占的区域,出现一个斜线, .my_triangle{ width: 10px; height: 10px; background-color: blue; border-wi ...

  2. c# 给文件/文件夹 管理用户权限

    public class PermissionManager { /// <summary> /// 为文件添加users,everyone用户组的完全控制权限 /// </summ ...

  3. sublime 3打开中文乱码问题

    首先到官网 https://packagecontrol.io/installation#Simple 下载一个控制台支持的扩展包Package Control.sublime-package 在su ...

  4. 期望dp+高斯消元——bzoj3143

    比较经典的题,题解看网上的..https://www.cnblogs.com/GXZlegend/p/7054536.html 自己sort弄错了..还以为是高斯消元写歪了.. #include< ...

  5. golang模块viper读取配置文件

    一.介绍 Viper是一个方便Go语言应用程序处理配置信息的库.它可以处理多种格式的配置.它支持的特性: 设置默认值 从JSON.TOML.YAML.HCL和Java properties文件中读取配 ...

  6. centos7 将home目录空间扩容到根目录

    [root@localhost ~]# umount /home/ [root@localhost ~]# lvremove /dev/mapper/centos-home Do you really ...

  7. 20.multi_case06

    # coding:utf-8 import asyncio # 通过create_task()方法 async def a(t): print('-->', t) await asyncio.s ...

  8. 历经小半宿吧。哎,终于搭建好了Linux-C的环境

    小小地庆祝一下吧   继续努力学习,把Linux-C熟悉一下,争取做到会用吧...   我想应该不难   我熟悉的 iostream 还存在   可惜,微软基础类库不在了...

  9. netty http 服务器

    HttpFileServer package com.zhaowb.netty.ch10_1; import io.netty.bootstrap.ServerBootstrap; import io ...

  10. sparkStreaming入门

    1.环境 jdk : 1.8 scala : 2.11.7 hadoop:2.7 spark : 2.2.0 2. 开发工具 idea 2017.2 3.maven的pom文件 <depende ...