天天看點

程式設計-如何産生随機數

//産生1-100之間的随機數

#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

int main()

{   

 int i,z(0),f(0);  

 double n;  

 srand(time(NULL)); 

 for (i=0;i<100;++i)

 {      

  n=(rand()%11)/10.0; 

  if(n<0.5)          

   z=z+1;       

  else           

   f=f+1;

}   

 cout<<"正有"<<z;   

 cout<<"反有"<<f;

return 0;

}

//産生1-100之間的随機數

#include <iostream>

#include <cstdio>

#include <ctime>

#include <cstdlib>

using namespace std;

int main()

{

 int i;

 double n;

 srand(time(NULL));

  n=(rand()%51)+50;

  cout<<n<<endl;

  return 0;

}

//需要使用rand()和srand()函數//rand()為随機數函數, 産生[0,int型最大值)之間的整數數

//srand(seed);

//為初始化随機數種子函數

//具體例子如下

#include<stdio.h>

//标準(std)輸入輸出(io)庫, 内含printf()函數

#include<stdlib.h>

//标準(std)操作庫(lib), 内含srand(),rand()函數

#include<time.h>

//時間庫(time), 内含time()系統時間函數

int GetRand()

{

//産生随機數的函數

srand(time(NULL)) ;

//通過系統時間初始化随機數種子

//如果不設定随機數種子,則每次rand()函數的起始值都一樣.

int n = rand()%181+20 ;

// rand()為随機數函數, 産生[0,int型最大值)之間的整數數, 此值依系統不同而不同, 一般為2147483648, 可認為無窮

// 通過rand()%181+20轉化為[20,200]之間的整數 (注:rand()%181産生[0,180]之間的整數)

return n ;

} //傳回這個整

int main() //主函數

{printf("%d",GetRand()) ;

return 0;

}

//輸出一個随機數

繼續閱讀