作者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
推 snowlike:不錯,節約空間不過不太亂;還要取一次R? 114.33.184.50 06/13 00:16
推 LPH66:x[i/1000]*1000+y[i%1000] 但的確不太亂 140.112.28.92 06/13 00:31
→ kevingwn:哎呀,本來就沒有"真的"RNG啦XD 123.204.92.148 06/13 00:42
→ kevingwn:to LPH66,題目只要前1000個喔 123.204.92.148 06/13 00:49