作者kevingwn (如云如风的人生)
看板Programming
标题Re: [问题] 从0-99999选出一千个不重覆的乱数?
时间Sat Jun 12 23:34:26 2010
※ 引述《qeagle (神啊请让我失恋吧)》之铭言:
: 请问这题要怎麽着手
: 我想产生一些乱数序列以供测试排序功能用
: 产生乱数简单,但要保持其乱数产生顺序,又不能有重覆..
: 不知道大家会怎麽写好,先产生1000个,再一个个检查有无重覆吗...
把0~999999拆成x * 1000 + y, 0 <= x <= 999, 0 <= y <= 999
int x[1000];
int y[1000];
void Seed()
{
// 1. 初始化x,y成0~999
// 2. 把x,y用shuffle打乱
}
int Random(int i)
{
return x[i % 1000] * 1000 + y[i % 1000];
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.204.92.148
1F:推 snowlike:不错,节约空间不过不太乱;还要取一次R? 114.33.184.50 06/13 00:16
2F:推 LPH66:x[i/1000]*1000+y[i%1000] 但的确不太乱 140.112.28.92 06/13 00:31
3F:→ kevingwn:哎呀,本来就没有"真的"RNG啦XD 123.204.92.148 06/13 00:42
4F:→ kevingwn:to LPH66,题目只要前1000个喔 123.204.92.148 06/13 00:49