在C語言中,可以使用rand()函數(shù)生成隨機(jī)數(shù),但默認(rèn)情況下它生成的是一個范圍在0到RAND_MAX之間的整數(shù)。如果想要控制隨機(jī)數(shù)的范圍,可以通過一些數(shù)學(xué)計算來實(shí)現(xiàn)。
例如,如果想要生成一個范圍在0到N之間的隨機(jī)數(shù),可以使用以下代碼:
int random_number = rand() % (N + 1);
上述代碼中,rand() % (N + 1)
會生成一個范圍在0到N之間的余數(shù),而余數(shù)的范圍正好是0到N。所以通過這種方式,可以生成一個0到N之間的隨機(jī)數(shù)。
如果想要生成一個范圍在M到N之間的隨機(jī)數(shù)(M < N),可以使用以下代碼:
int random_number = M + rand() % (N - M + 1);
上述代碼中,rand() % (N - M + 1)
會生成一個范圍在0到N-M之間的余數(shù),再加上M,余數(shù)的范圍就變成了M到N。所以通過這種方式,可以生成一個M到N之間的隨機(jī)數(shù)。
需要注意的是,上述代碼中的rand()函數(shù)還是會生成一個范圍在0到RAND_MAX之間的隨機(jī)數(shù),所以如果想要生成更大范圍的隨機(jī)數(shù),可以通過多次調(diào)用上述代碼來實(shí)現(xiàn)。