Re: [問題] 從0-99999選出一千個不重覆的亂數?

看板Programming作者 (如雲如風的人生)時間14年前 (2010/06/12 23:34), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串7/9 (看更多)
※ 引述《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

06/13 00:16, , 1F
不錯,節約空間不過不太亂;還要取一次R?
06/13 00:16, 1F

06/13 00:31, , 2F
x[i/1000]*1000+y[i%1000] 但的確不太亂
06/13 00:31, 2F

06/13 00:42, , 3F
哎呀,本來就沒有"真的"RNG啦XD
06/13 00:42, 3F

06/13 00:49, , 4F
to LPH66,題目只要前1000個喔
06/13 00:49, 4F
文章代碼(AID): #1C4wa4qo (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 9 篇):
文章代碼(AID): #1C4wa4qo (Programming)