close
C++亂數
亂數其實打一下標頭檔和程式碼就好,沒啥難的,很多遊戲也都拿它來用,當然給他學起來啦
 
產生固定亂數:
 
一開始,標頭檔一定要打#include<cstdlib>
 
#include<iostream>
#include<cstdlib>
using namespace std;
 
int main()
{
   cout << rand() << endl;
   cout << rand() << endl;
   cout << rand() << endl;
}
執行結果:
不管你執行多少次,他答案就是那些數字,這叫固定的亂數
 
種子亂數:
 
標頭檔一定要打#include<cstdlib>
  • srand 他是來設定亂數的起始,所以一定要設定在rand之前喔
  • 種子數不同產生亂數也不同,是無號數喔
int main()
{
   unsigned seed;
   cout << "請輸入種子數";
   cin >>seed;
   srand(seed);
   cout << rand() << endl;
   cout << rand() << endl;
   cout << rand() << endl;
}
執行結果:
若輸入的種子數一樣,則它的結果會一樣。也就是不同種子數產生不同亂數,所以他還是有規則的
 
到底啥時可以用出隨機亂數阿,大家應該可以想到吧,就是讓種子數一直改變就行啦
 
產生隨機亂數:
 
就是用這個啦~~~ 巴巴巴>0< /~(丟)---->  time(*指標)
 
  • *指標可以是空指標或指向time_t型態的變數指標,NULL是定義cstdlib與ctime標頭檔中常數為0
  • 標頭檔一定要打#include<ctime>
 
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
   srand(time(NULL));
   cout << rand() << endl;
   cout << rand() << endl;
   cout << rand() << endl;
}
那怎麼條它的範圍勒~~
請背公式:
下限+rand()%(上限-下限+1)------>下限<= x <=上限
 
int main()
{
    srand(time(NULL));
    cout << 1+rand()%(10-1+1) << endl;
    cout << 1+rand()%(10-1+1) << endl;
    cout << 1+rand()%(10-1+1) << endl;
}
 
END
arrow
arrow
    全站熱搜

    佑佑 發表在 痞客邦 留言(1) 人氣()