溫馨提示×

C語言如何控制隨機(jī)數(shù)的范圍

小億
181
2024-01-18 22:13:08
欄目: 編程語言

在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)。

0