C語言產生隨機數(偽)


C語言的獲取隨機數的函數為rand(), 可以獲得一個非負整數的隨機數。要調用rand需要引用頭文件stdlib.h
要讓隨機數限定在一個范圍,可以采用模除加加法的方式。
要產生隨機數r, 其范圍為 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理為,對於任意數,
0 <= rand()%(n-m+1) <= n-m

(即rand()%(n-m+1)生成的隨機數是在0到n-m之間的)

於是
0+m <= rand()%(n-m+1)+m <= n-m+m

(於是給這個隨機數加上m就可以得到m到n-m之間的隨機數)


m<=rand()%(n-m+1)+m<=n

示例代碼

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()   //生成10個在77-100之間的隨機數
{
 int random, i;
 srand(time(NULL));
 for(i=0; i<10; ++i)
 {
  random = 77 + rand() % 24;//	24 = 100-77+1
  printf("%d ",random);
 }
}

運行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM