Java实现获取指定个数的不同随机数

两个简单的例子,代码实现如下:

1、随机拆分一个整数

public static List<Integer> randomList(int n){
    Random rand = new Random();
    List<Integer> list = new ArrayList<>();
    int i = 0;
    while (i < n) {
      int num = rand.nextInt(n);
      if (!list.contains(num)) {
        list.add(num);
        i++;
      }
    }
    return list;
 }

2、从已知列表中随机选取不同对象 

public static List<Integer> randomList(int n,int size) {
    Random rand = new Random();
    List<Integer> list = new ArrayList<>();
    int i = 1;
    while (i <= n) {
      int num = rand.nextInt(size-1) + 1;
      if (!list.contains(num)) {
        list.add(num);
        i++;
      }
    }
    return list;
 }

3、把一个整数拆分成不等的几份

public static List<Integer> randomList(int n, int m){
 Random rand = new Random();
 List<Integer> list = new ArrayList<>();
 int temp = m;
 for(int i = 0, j; i < n-1; i++){
 j = rand.nextInt(temp-1) + 1;
 temp -= j;
 list.add(j);
 if (temp == 1){
  break;
 }
 }
 list.add(temp);
 return list;
}

例子很简单,仅供参考。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Java生成随机时间的简单随机算法

    根据起始时间生成随机事件,代码如下: public static Date randomDate(Date beginDate,Date endDate ){ if(beginDate.getTime() >= endDate.getTime()){ return new Date(); } long date = random(beginDate.getTime(),endDate.getTime()); return new Date(date); } public static long

  • java随机生成时间字符串的方法

    本文实例为大家分享了java随机生成时间字符串的具体代码,供大家参考,具体内容如下 package com.wechat.utils; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by hexun on 2017/2/4. */ public class RandTimeUtils { /** * 生成随机时间 * @param beginDate * @param endDate * @retu

  • java生成随机字符串的两种方法

    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1:length为产生的位数 public static String getRandomString(int length){ //定义一个字符串(A-Z,a-z,0-9)即62位: String str="zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZ

  • java生成指定范围的随机日期

    有这样一个需求:构造一个方法,随机生成1990-12-31 00:00 00到 2013-12-31 00:00:00之间任意一个时间点. 思路是这样:在javaAPI中 Date类型和long类型很好转化,所以我们可以把问题转化为,求两个long类型数之间的任意值. 同时需要了解java API中的:Math.round(double)  Math.random();  new Date(year,month,day); Calendar. Math.random() 会随机生成大于等于0小于

  • 浅析Java随机数与定时器

    产生90-100的重复的随机数: public class RandomTest { public static void main(String[] args){ /* * Math.random()方法默认double类型,所以需要强制转换为int */ int x=(int)(Math.random()*(100-90+1)+90); //(max-min+1)+min=min-max System.out.println(x); } } 产生90-100不重复的随机数: import j

  • java实现随机数生成器

    本文实例为大家分享了java实现随机数生成器的具体代码,供大家参考,具体内容如下 自己编的随机数生成器,比较简陋,功能也单一,当作练手. Application.java package src; public class Application { public static void main(String[] args) { WindowBoxLayout win=new WindowBoxLayout(); win.setBounds(100,200,300,350); win.setT

  • java图的深度优先遍历实现随机生成迷宫

    最近经常在机房看同学在玩一个走迷宫的游戏,比较有趣,自己也用java写一个实现随机生成迷宫的算法,其实就是一个图的深度优先遍历算法.基本思想就是,迷宫中的每个点都有四面墙,然后呢. 1.从任意一点开始访问(我的算法中固定是从(0,0)点开始),往四个方向中的随机一个访问(每访问到一个可访问的点,就去掉该点的那个方向的墙),被访问点继续以这种方识向下进行访问. 2.对每个被访问的点都被标识为已访问,当一个点对某个方向进行访问时我们首先会判断被访问点是否已被访问,或者触到边界.如果该点四个方向皆已访

  • Java随机生成身份证完整示例代码

    身份证算法实现 1.号码的结构 公民身份号码是特征组合码, 由十七位数字本体码和一位校验码组成. 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码  三位数字顺序码和一位数字校验码. 2.地址码(前六位数) 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码(第七位至十四位) 表示编码对象出生的年.月.日,按GB/T7408的规定执行,年.月.日代码之间不用分隔符. 4.顺序码(第十五位至十七位) 表示在同一地址码所标识的区域范围内,

  • Java编程一个随机数产生模块代码分享

    java随机数的产生比较简单,可以通过 Random rand = new Random(47); System.out.println(rand.nextInt()); 产生,也可以通过以下产生: double d = Math.random(); 当然代码中前者由于使用了固定的种子47,所以每次的值都是一样的,也可以使用 Random rand = new Random(); System.out.println(rand.nextInt()); 而对于代码2则产生的是double的随机数.

  • Java实现获取指定个数的不同随机数

    两个简单的例子,代码实现如下: 1.随机拆分一个整数 public static List<Integer> randomList(int n){ Random rand = new Random(); List<Integer> list = new ArrayList<>(); int i = 0; while (i < n) { int num = rand.nextInt(n); if (!list.contains(num)) { list.add(nu

  • java正则表达式获取指定HTML标签的指定属性值且替换的方法

    实例如下: public static String repDomain(String source, String domain, String element, String attr) { String img = ""; Pattern p_image; Matcher m_image; String regEx_img = "<" + element + "[^<>]*?\\s" + attr + "=['\

  • java 实现获取指定位置后的第一个数字

    目录 获取指定位置后的第一个数字 环境 场景 代码 获取一串数字中每一位数的小技巧 获取指定位置后的第一个数字 环境 java:1.7 场景 今天遇到这么一个需求: 10转增7.5股派1.5元(含税) 10派1.5元(含税) 不分配不转增 10转增3股 10派1.34元(含税) 10送2转增8股派0.3元 10送2.5转增1.5股 10送2股 会有类似上面的字符串,需要根据“送”,“增”和“派”来把后面的数字给切出来:再进行拼接. 比如: 字符串为“10送2转增8股派0.3元”,根据“送”来切,

  • Java如何获取指定目录文件列表

    最近项目中会动态生成文件html及相关资源文件(css,js,png,mp3),为了防止文件名重复,需要获取目录中相同类型文件的最大编号,下面我用代码来实现获得文件列表. public static void getFiles(String path) { File file = new File(path); // 如果这个路径是文件夹 if (file.isDirectory()) { // 获取路径下的所有文件 File[] files = file.listFiles(); for (i

  • Java获取指定字符串出现次数的方法

    Java中 获取指定字符串在另一个字符串中出现的次数,供大家参考,具体内容如下 /** * @param args */ public static void main(String[] args) { String srcText = "Hello World"; String findText = "e"; int num = appearNumber(srcText, findText); System.out.println(num); } /** * 获取

  • java随机抽取指定范围内不重复的n个数

    一.JAVA中生成随机数的方式 1.在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以一个数,比如25,就能得到一个0~25范围内的随机数,这个在j2me中没有: int randomNumber = (int) Math.round(Math.random()*(max-min)+min); 2.在System类中有一个currentTimeMillis()方法,这个方法返回从1970年1月1号0点0分0秒到目前的一个long型的毫秒数,可作

  • Java基于正则表达式获取指定HTML标签指定属性值的方法

    本文实例讲述了Java基于正则表达式获取指定HTML标签指定属性值的方法.分享给大家供大家参考,具体如下: 有时可能会有这样的需求,从HTML页面获取指定标签的指定属性值,可以通过第三方库解析来获取,但是这样相对比较麻烦! 如果使用正则表达式,那么就变得简单了.代码如下: package com.mmq.regex; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import

  • javascript获取指定区间范围随机数的方法

    如下所示: //获取指定区间范围随机数,包括lowerValue和upperValue function randomFrom(lowerValue,upperValue) { return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue); } //如获取2-6之间的随机数 alert(randomFrom(2,6)); //如获取1-10之间的随机数 alert(randomFrom(1,10));

  • java日期操作工具类(获取指定日期、日期转换、相隔天数)

    本文实例为大家分享了java日期操作工具类,获取指定日期前一天.后一天:日期转换:两个日期之间相隔天数等工具类,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class

  • java 键盘输入一个数,输出数组中指定元素的示例

    如下所示: package com.lcn.day05; import java.util.Scanner; public class ArrayDemo7 { /** *键盘输入一个数,输出数组中指定元素 */ public static void main(String[] args) { // 定义一个数组 int[] array = new int[]{123,456,789,321,654,987}; //创建输入对象 Scanner sc = new Scanner(System.i

随机推荐