vlinDone
BlogJava
首頁
新文章
新隨筆
聚合
管理
posts - 33, comments - 17, trackbacks - 0
隨機數發(fā)生器
1
import
java.util.Arrays;
2
import
java.util.Random;
3
4
/** */
/**
5
* <code>RandomUtil</code> - Random Tool Class.
6
*
@author
SageZk
7
*
@version
1.0
8
*/
9
public
class
RandomUtil
{
10
11
private
RandomUtil()
{}
12
13
private
static
Random rnd
=
null
;
14
15
/** */
/**
16
* 初始化隨機數發(fā)生器。
17
*/
18
private
static
void
initRnd()
{
19
if
(rnd
==
null
) rnd
=
new
Random();
20
}
21
22
/** */
/**
23
* 計算并返回無重復值的以 <code>min</code> 為下限 <code>max</code> 為上限的隨機整數數組。
24
*
@param
min 隨機整數下限(包含)
25
*
@param
max 隨機整數上限(包含)
26
*
@param
len 結果數組長度
27
*
@return
結果數組
28
*/
29
public
static
int
[] getLotteryArray(
int
min,
int
max,
int
len)
{
30
//
參數校驗及性能優(yōu)化
31
if
(len
<
0
)
return
null
;
//
長度小于 0 的數組不存在
32
if
(len
==
0
)
return
new
int
[
0
];
//
返回長度為 0 的數組
33
if
(min
>
max)
{
//
校正參數 min max
34
int
t
=
min;
35
min
=
max;
36
max
=
t;
37
}
38
final
int
LEN
=
max
-
min
+
1
;
//
種子個數
39
if
(len
>
LEN)
return
null
;
//
如果出現(xiàn) 35 選 36 的情況就返回 null
40
//
計算無重復值隨機數組
41
initRnd();
//
初始化隨機數發(fā)生器
42
int
[] seed
=
new
int
[LEN];
//
種子數組
43
for
(
int
i
=
0
, n
=
min; i
<
LEN;) seed[i
++
]
=
n
++
;
//
初始化種子數組
44
for
(
int
i
=
0
, j
=
0
, t
=
0
; i
<
len;
++
i)
{
45
j
=
rnd.nextInt(LEN
-
i)
+
i;
46
t
=
seed[i];
47
seed[i]
=
seed[j];
48
seed[j]
=
t;
49
}
50
return
Arrays.copyOf(seed, len);
//
注意:copyOf 需要 JRE1.6
51
}
52
53
//
Unit Testing
54
public
static
void
main(String[] args)
{
55
final
int
N
=
10000
;
//
測試次數
56
for
(
int
i
=
0
; i
<
N;
++
i)
{
57
int
[] la
=
RandomUtil.getLotteryArray(
1
,
35
,
7
);
58
if
(la
==
null
)
continue
;
59
for
(
int
v : la) System.out.printf(
"
%0$02d
"
, v);
60
System.out.println();
61
}
62
}
63
64
}
posted on 2008-07-23 17:53
scea2009
閱讀(260)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
個人
網摘(6)
隨筆檔案
2008年12月 (2)
2008年8月 (1)
2008年7月 (24)
2008年6月 (1)
2008年5月 (4)
PL/SQL存儲過程與函數
搜索
最新評論
1.?re: 18位號碼身份證校驗碼的計算公式[未登錄]
1@邱麗娟
--李杰
2.?re: 生成 JSON 字符串的工具
ddddddddd
--hls
3.?re: 18位號碼身份證校驗碼的計算公式
340621198706139338
--陸樹軍
4.?re: 生成 JSON 字符串的工具
12121
--11112dacda
5.?re: 18位號碼身份證校驗碼的計算公式
wozhidao
--lixziyu
閱讀排行榜
1.?18位號碼身份證校驗碼的計算公式(25071)
2.?生成 JSON 字符串的工具 (4959)
3.?s:select(2866)
4.?關于 Calendar.getInstance()(1410)
5.?根據輸入的ISBN號,檢驗ISBN的有效性(1410)
評論排行榜
1.?18位號碼身份證校驗碼的計算公式(10)
2.?根據輸入的ISBN號,檢驗ISBN的有效性(4)
3.?生成 JSON 字符串的工具 (2)
4.?時間計算工具類(1)
5.?數據庫連接(0)
Copyright ©2025 scea2009 Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
牛牛在线精品观看免费正
|
羞羞视频免费网站日本
|
亚洲午夜无码久久
|
精品亚洲视频在线
|
人妻无码久久一区二区三区免费
|
中文字幕不卡亚洲
|
亚洲最大成人网色
|
久操视频在线免费观看
|
免费看小12萝裸体视频国产
|
一级一级一片免费高清
|
综合在线免费视频
|
国精无码欧精品亚洲一区
|
国产麻豆一精品一AV一免费
|
日韩精品无码人妻免费视频
|
日韩亚洲AV无码一区二区不卡
|
亚洲日韩精品无码AV海量
|
日韩精品免费电影
|
国产精品偷伦视频免费观看了
|
午夜免费不卡毛片完整版
|
亚洲精品乱码久久久久久蜜桃图片
|
亚洲国产电影在线观看
|
成人免费福利电影
|
乱爱性全过程免费视频
|
亚洲国产精品久久久久婷婷软件
|
精品国产亚洲一区二区三区在线观看
|
亚洲日韩国产成网在线观看
|
国产在线观看免费视频软件
|
亚洲欧洲日产专区
|
99视频精品全部免费观看
|
中文字幕亚洲综合小综合在线
|
亚洲AV中文无码乱人伦在线视色
|
国产一区二区三区免费观看在线
|
亚洲国产成人精品久久
|
亚洲成a人片在线观看老师
|
亚洲免费在线视频
|
亚洲AV无码成人精品区狼人影院
|
国产亚洲精品自在久久
|
中国在线观看免费国语版
|
一个人免费观看日本www视频
|
亚洲嫩草影院在线观看
|
亚洲国产成人乱码精品女人久久久不卡
|