看板 Programming 關於我們 聯絡資訊
※ 引述《dm33 ()》之銘言: : 即 Rand() % N = M : 但N與M為已知,這個亂數產生要怎麼比較快符合需求 : 實例 產生 5位數之亂數,取7餘數必需為3 : 目前我只想到最爛的方法,就是一直跑loop直到命中為止 : 請問有人有更好的方法嗎,謝謝 已知 N, M 令有 f(x): x % N 及某數 s 若 f(s) = M 則 f(s) = M => s % N = M => s = t * N + M 你只要取一個隨機整數 t, 求 (t * N + M) 就可以滿足某 rand() % N = M. 當 10000 =< s < 99999 時, (10000 - M) / N =< t < (99999 - M) / N. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.226.101.187