之前看过一个给出[0, m) ,求[0, n)的随机数

static int getRandom(int n, int m) { 
int i = 1; 
while((n*i-1)%(m-1) != 0) i++; 

int factor = (n*i-1)/(m-1); 

int randomSum = 0; 

while(factor > 0){ 
randomSum += rand_m(); 
factor--; 

return randomSum%n; 
}