程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++和c語言隨機數的產生

c++和c語言隨機數的產生

編輯:C++入門知識

1:如果只要產生隨機數而不需要設定范圍的話,只要用rand()就行了,rand()會返回一個隨機數的值,范圍在RAND_MAX之間. RAND_MAX定義在stdlib.h,它的值為2147483647. 例如: #include<stdio.h> #include<stdlib.h> void main() {    int i ;          for(int i=0;i<10;i+)              printf("%d\n",rand()); }   (2) 如果你要隨機生成一個在一定范圍的數,你可以在宏定義中定義一個random(int number)函數,然後在main()裡面直接調用random()函數: 例如:隨機生成10個0~100的數: #include<stdio.h> #include<stdlib.h> #define random(x) (rand()%x) void main()  {   int x;         for( x=0;x<10;x++)            printf("%d\n",random(100)); }   (3)但是上面兩個例子所生成的隨機數都只能是一次性的,如果你第二次運行的時候輸出結果仍和第一次一樣。這與srand()函數有關。 srand()用來設置rand()產生隨機數時的隨機數種子。在調用rand()函數產生隨機數前,必須先利用srand()設好隨機數種子 (seed), 如果未設隨機數種子, rand()在調用時會自動設隨機數種子為1。上面的兩個例子就是因為沒有設置隨機數種子,每次隨機數種子都自動設成相同值1 ,進而導致rand()所產生的隨機數值都一樣。 srand()函數定義 : void srand (unsigned int seed);  通常可以利用geypid()或time(0)的返回值來當做seed 如果你用time(0)的話,要加入頭文件#include<time.h> 例如: #include<stdio.h> #include<stdlib.h> #include<time.h> #define random(x) (rand()%x) void main() {   int x;      srand((int)time(0));      for( x=0;x<10;x++)            printf("%d\n",random(100)); }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved