返回列表 發帖

[隨堂測驗] 產生不重複之隨機亂數 (二)

本帖最後由 tonyh 於 2021-4-10 20:47 編輯

假設箱子裡裝了38顆球,每顆球上皆印有號碼 (1 ~ 38),試模擬自箱子取出10顆球,你會拿到哪些號碼的球呢?(每取出一顆球皆花費 0.5 秒)

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int ball[10];
  9.     for(int i=0; i<10; i++)
  10.     {
  11.          ball[i]=rand()%38+1;   //1~38   最新產生的號碼
  12.          for(int j=0; j<i; j++)   //過去已有的號碼
  13.          {
  14.               if(ball[i]==ball[j])
  15.               {
  16.                   //cout<<"發生重複!"<<endl;
  17.                   i--;
  18.                   break;                    
  19.               }
  20.          }
  21.     }
  22.     cout<<"我拿到的球為: ";
  23.     for(int i=0; i<10; i++)
  24.     {
  25.          cout<<ball[i]<<" ";
  26.     }
  27.     cout<<endl;
  28.     system("pause");  
  29.     return 0;
  30. }
  31. /*
  32.   rand()       不受限制
  33.   rand()%38    0 ~ 37
  34.   rand()%38+1  1 ~ 38
  35. */
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表