此为工具类,支持抽奖业务需求,具体实现见下方代码:

package com.org.test;

import java.util.ArrayList;
import java.util.List; public class RandomUtil { /**
* 随机抽出中奖用户下标
* 当max < count时,输出max+1个, 如 0,2,5 输出3个结果
* 当max = count时,输出 count个, 如 0,2,2 输出2个结果
* 当max > count 时,输出count个,如 0,5,3 输出3个结果
* @param min
* @param max
* @param count
* @return
* @author Shindo
* @date 2017年1月7日 下午5:00:14
*/
public static int[] getRandomArray(int min, int max, int count) {
List<Integer> randomCommon = randomCommon(min, max, count);
int size = randomCommon.size();
int[] result = new int[size];
if (size > 0) {
for (int j = 0; j < randomCommon.size(); j++) {
Integer integer = randomCommon.get(j);
result[j] = integer;
}
System.out.println("随机下标:");
for (int k = 0; k < result.length; k++) {
System.out.println(result[k]);
}
}
return result;
} /**
* 随机指定范围内N个不重复的数
* @param min 指定范围最小值
* @param max 指定范围最大值
* @param n 随机数个数
* @return
*/
public static List<Integer> randomCommon(int min, int max, int n) {
List<Integer> integers = new ArrayList<Integer>();
if (min < 0) {
min = 0;
}
if ((max - min) + 1 < n) {
n = (max - min) + 1;
}
if (max < min) {
max = min;
}
if (max < 0 || n < 0) {
return integers;
}
for (int i = 1; i <= n; i++) {
int randomNumber = (int) Math.round(Math.random() * (max - min) + min);
if (integers.contains(randomNumber)) {
i--;
continue;
} else {
integers.add(randomNumber);
}
}
return integers;
} // 测试随机数获取
public static void main(String[] args) { // 当max < count时,输出max+1个,当max = count时,输出 count个, 当max > count 时,输出count个
List<Integer> randomCommon = randomCommon(0, 8, 3); for (int j = 0; j < randomCommon.size(); j++) {
Integer integer = randomCommon.get(j);
System.out.println(integer);
}
System.out.println("\n");
int size = randomCommon.size();
int[] result = new int[size];
if (size > 0) {
for (int j = 0; j < randomCommon.size(); j++) {
Integer integer = randomCommon.get(j);
result[j] = integer;
}
System.out.println("抽奖下标打印输出");
for (int k = 0; k < result.length; k++) {
System.out.println(result[k]);
}
} } }

  

随机指定范围内N个不重复的数的更多相关文章

  1. 随机获取指定范围内N个不重复数字

    /// <summary> /// 随机获取指定范围内N个不重复数字 /// </summary> /// <param name="min"> ...

  2. python获取指定时间段内的随机不重复的时间点

    上篇 <python时间时分秒与秒数的互相转换>http://www.cnblogs.com/gayhub/p/6154707.html 提到了把时间转成秒数的方法, 这篇写写转换成秒数后 ...

  3. C#生成指定范围内的不重复随机数

    C#生成指定范围内的不重复随机数 // Number随机数个数 // minNum随机数下限 // maxNum随机数上限 public int[] GetRandomArray(int Number ...

  4. Oracle 生成指定范围内随机日期

    Oracle生成一个指定范围内的随机日期 /* 年1月1日)的整数偏移量来保存(即把日期保存为一个数字); * 因此可通过寻找‘指定日期’与‘关键日期’相对应的整数偏移量,再加一个指定范围内的随机整数 ...

  5. JS生成指定范围内的随机数(支持随机小数)

    直接需要函数的话,直接到文章的最后面找. ============================================================= 转载:https://www.cn ...

  6. 【VBA】返回指定范围内的随机整数

    返回指定范围内的随机整数: Sub main() Randomize Debug.Print 随机整数(1, 2) End Sub Function 随机整数(a As Integer, b As I ...

  7. Java产生指定范围内的随机日期

    要想产生指定范围内的随机日期,首先我们要指定一个范围,那么我们可以通过SImpleDateFormat格式化日期,然后再通过parse()方法设置日期,返回一个Date类型的日期对象,再转化为时间戳( ...

  8. 关于 Math.random()生成指定范围内的随机数的公式推导

    关于 Math.random()生成指定范围内的随机数的公式推导 在 java 中,用于生成随机数的 Math 方法 random()只能生成 0-1 之间的随机数,而对于生成指定区间,例如 a-b ...

  9. Window Linux下实现指定目录内文件变更的监控方法

    转自:http://qbaok.blog.163.com/blog/static/10129265201112302014782/ 对于监控指定目录内文件变更,window 系统提供了两个未公开API ...

随机推荐

  1. phothoshop 快捷键

    界面构成: 1 菜单栏 2 工具箱 3 工具属性栏 4 悬浮面板(辅助作用) CTRL + N 新建对话框(对画布进行设置) 回车确定 CTRL + O (字母) 打开对话框(选择图片) 画布的三种显 ...

  2. express koa koa2 优缺点分析

    发布日期 2009年6月26日,TJ 提交 Express 第一次 commit.目前拥有 5000 多次 commit. 2013年8月17日, TJ 只身一人提交 Koa 第一次 commit.目 ...

  3. Linux 学习笔记之超详细基础linux命令 Part 1

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122   说明:主要是在REHL Server 6操作系统下进行的测试 --字符界面虚拟终端与图形界面之间的切 方法:[ ...

  4. 《Inside C#》笔记(九) 表达式和运算符

    赋值和比较操作是一门语言最基本的功能. 一 基本概念 a)基本的运算符有加.减.乘.除.取余.赋值. 运算结果需要保存在内存的某个区域,有时直接保存在操作数本身,不管怎样,如果没有保存运算结果,编译器 ...

  5. Java 获取表格中某一个单元格的值

    需求 搜索页面返回表格样搜索结果, 获取搜索结果中某个单元格的具体值. 以下图为例, 下表是搜索返回的结果, 第一行是各个列的名字, 其它是具体的返回值. 方法1: 根据用户输入的表头名来确定是第几列 ...

  6. Unity3D开发之3D按钮的声音播放

    这里我们首先就简易的制作一个非常简单的3D按钮![ 图中就一个cube 加个3DText,然后我们就编写代码 [RequireComponent(typeof(CompoundButton))]//特 ...

  7. CSS图片水平垂直居中

    Html: <div id="></img></div> </div> CSS: #MainContent { display:table-c ...

  8. MonkeyRunner 之如何获取APP的Package Name和Activity Name

    别人写的就收藏了: MonkeyRunner 之如何获取APP的Package Name和Activity Name http://www.mamicode.com/info-detail-51278 ...

  9. Python3 下实现 腾讯人工智能API 调用

    1.背景 a.鹅厂近期发布了自己的人工智能 api,包括身份证ocr.名片ocr.文本分析等一堆API,因为前期项目用到图形OCR,遂实现试用了一下,发现准确率还不错,放出来给大家共享一下. b.基于 ...

  10. knockoutjs关于ko.bindingHandlers的updata订阅

    ko.bindingHandlers是先执行init进行初始化数据的绑定(如果需要执行updata进行数据更新可以不用初始化); init: function(element, valueAccess ...