代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
随机数发生器
作者:
/ 发布于
2011/1/14
/
534
<div><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Arrays; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Random; </span><span style="color: #008000">/**</span><span style="color: #008000"> * RandomUtil - Random Tool Class. * </span><span style="color: #808080">@author</span><span style="color: #008000"> SageZk * </span><span style="color: #808080">@version</span><span style="color: #008000"> 1.0 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> RandomUtil { </span><span style="color: #0000ff">private</span><span style="color: #000000"> RandomUtil() {} </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> Random rnd </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">; </span><span style="color: #008000">/**</span><span style="color: #008000"> * 初始化随机数发生器。 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> initRnd() { </span><span style="color: #0000ff">if</span><span style="color: #000000"> (rnd </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">) rnd </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Random(); } </span><span style="color: #008000">/**</span><span style="color: #008000"> * 计算并返回无重复值的以 min 为下限 max 为上限的随机整数数组。 * </span><span style="color: #808080">@param</span><span style="color: #008000"> min 随机整数下限(包含) * </span><span style="color: #808080">@param</span><span style="color: #008000"> max 随机整数上限(包含) * </span><span style="color: #808080">@param</span><span style="color: #008000"> len 结果数组长度 * </span><span style="color: #808080">@return</span><span style="color: #008000"> 结果数组 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[] getLotteryArray(</span><span style="color: #0000ff">int</span><span style="color: #000000"> min, </span><span style="color: #0000ff">int</span><span style="color: #000000"> max, </span><span style="color: #0000ff">int</span><span style="color: #000000"> len) { </span><span style="color: #008000">//</span><span style="color: #008000">参数校验及性能优化</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (len </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">) </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000">长度小于 0 的数组不存在</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (len </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">) </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[</span><span style="color: #000000">0</span><span style="color: #000000">]; </span><span style="color: #008000">//</span><span style="color: #008000">返回长度为 0 的数组</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (min </span><span style="color: #000000">></span><span style="color: #000000"> max) { </span><span style="color: #008000">//</span><span style="color: #008000">校正参数 min max</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> t </span><span style="color: #000000">=</span><span style="color: #000000"> min; min </span><span style="color: #000000">=</span><span style="color: #000000"> max; max </span><span style="color: #000000">=</span><span style="color: #000000"> t; } </span><span style="color: #0000ff">final</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> LEN </span><span style="color: #000000">=</span><span style="color: #000000"> max </span><span style="color: #000000">-</span><span style="color: #000000"> min </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000">种子个数</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (len </span><span style="color: #000000">></span><span style="color: #000000"> LEN) </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000">如果出现 35 选 36 的情况就返回 null </span><span style="color: #008000">//</span><span style="color: #008000">计算无重复值随机数组</span><span style="color: #008000"> </span><span style="color: #000000"> initRnd(); </span><span style="color: #008000">//</span><span style="color: #008000">初始化随机数发生器</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[] seed </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[LEN]; </span><span style="color: #008000">//</span><span style="color: #008000">种子数组</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">, n </span><span style="color: #000000">=</span><span style="color: #000000"> min; i </span><span style="color: #000000"><</span><span style="color: #000000"> LEN;) seed[i</span><span style="color: #000000">++</span><span style="color: #000000">] </span><span style="color: #000000">=</span><span style="color: #000000"> n</span><span style="color: #000000">++</span><span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000">初始化种子数组</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">, j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">, t </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> len; </span><span style="color: #000000">++</span><span style="color: #000000">i) { j </span><span style="color: #000000">=</span><span style="color: #000000"> rnd.nextInt(LEN </span><span style="color: #000000">-</span><span style="color: #000000"> i) </span><span style="color: #000000">+</span><span style="color: #000000"> i; t </span><span style="color: #000000">=</span><span style="color: #000000"> seed[i]; seed[i] </span><span style="color: #000000">=</span><span style="color: #000000"> seed[j]; seed[j] </span><span style="color: #000000">=</span><span style="color: #000000"> t; } </span><span style="color: #0000ff">return</span><span style="color: #000000"> Arrays.copyOf(seed, len); </span><span style="color: #008000">//</span><span style="color: #008000">注意:copyOf 需要 JRE1.6</span><span style="color: #008000"> </span><span style="color: #000000"> } </span><span style="color: #008000">//</span><span style="color: #008000">Unit Testing</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) { </span><span style="color: #0000ff">final</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> N </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">10000</span><span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000">测试次数</span><span style="color: #008000"> </span><span style="color: #000000"> </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> N; </span><span style="color: #000000">++</span><span style="color: #000000">i) { </span><span style="color: #0000ff">int</span><span style="color: #000000">[] la </span><span style="color: #000000">=</span><span style="color: #000000"> RandomUtil.getLotteryArray(</span><span style="color: #000000">1</span><span style="color: #000000">, </span><span style="color: #000000">35</span><span style="color: #000000">, </span><span style="color: #000000">7</span><span style="color: #000000">); </span><span style="color: #0000ff">if</span><span style="color: #000000"> (la </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">) </span><span style="color: #0000ff">continue</span><span style="color: #000000">; </span><span style="color: #0000ff">for</span><span style="color: #000000"> (</span><span style="color: #0000ff">int</span><span style="color: #000000"> v : la) System.out.printf(</span><span style="color: #000000">"</span><span style="color: #000000">%0$02d </span><span style="color: #000000">"</span><span style="color: #000000">, v); System.out.println(); } } }</span> </div>
试试其它关键字
随机数
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3