Board logo

標題: [隨堂測驗] 產生不重複之隨機亂數 (二) [打印本頁]

作者: 鄭繼威    時間: 2022-4-15 19:10     標題: [隨堂測驗] 產生不重複之隨機亂數 (二)

本帖最後由 鄭繼威 於 2022-4-16 12:03 編輯

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

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];        //宣告長度為10的陣列
  9.     //沒有外面只有裡面(執行1次)
  10.     for(int j=0; j<10; j++)     //執行10次的迴圈->抽10顆球
  11.     {
  12.         n[j]=rand()%38+1;  //1~38放入陣列裡->模擬抽第j球的動作
  13.         //判斷是否有重複  
  14.         for(int k=0; k<j; k++) //跑j次迴圈->決定要檢查j個數  
  15.         {
  16.             if(n[j]==n[k]) //k位置跟原本的j位置比較是否有相等  
  17.             {
  18.                //如果有的話就跳出去(break)此迴圈,並回去(j--)原本的位置
  19.                j--;
  20.                break;              
  21.             }
  22.         }
  23.     }  
  24.     cout<<"我拿到的球為: ";
  25.     for(int j=0; j<10; j++)
  26.     {
  27.         cout<<n[j]<<" ";   //把剛剛抽到的球印出來(機數+空格)
  28.         _sleep(500);
  29.     }  
  30.     cout<<endl<<endl;  
  31.     system("pause");
  32.     return 0;   
  33. }
複製代碼

作者: 林鴻慶    時間: 2022-4-16 11:14

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];
  9.     for(int j=0; j<10; j++)
  10.     {
  11.         n[j]=rand()%38+1;  //1~38
  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                j--;
  17.                break;              
  18.             }
  19.         }
  20.     }  
  21.     cout<<"我拿到的球為: ";
  22.     for(int j=0; j<10; j++)
  23.     {
  24.         cout<<n[j]<<" ";
  25.         _sleep(500);
  26.     }  
  27.     cout<<endl<<endl;  
  28.     system("pause");
  29.     return 0;   
  30. }
複製代碼

作者: 曾善勤    時間: 2022-4-16 11:56

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];
  9.     for(int j=0; j<10; j++)
  10.     {
  11.         n[j]=rand()%38+1;  //1~38
  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                j--;
  17.                break;              
  18.             }
  19.         }
  20.     }  
  21.     cout<<"我拿到的球為: ";
  22.     for(int j=0; j<10; j++)
  23.     {
  24.         cout<<n[j]<<" ";
  25.         _sleep(500);
  26.     }  
  27.     cout<<endl<<endl;  
  28.     system("pause");
  29.     return 0;   
  30. }
複製代碼

作者: 徐譽豈    時間: 2022-4-16 11:58

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];
  9.     for(int j=0; j<10; j++)
  10.     {
  11.         n[j]=rand()%38+1;
  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                j--;
  17.                break;              
  18.             }
  19.         }
  20.     }  
  21.     cout<<"我拿到的球為: ";
  22.     for(int j=0; j<10; j++)
  23.     {
  24.         cout<<n[j]<<" ";
  25.         _sleep(500);
  26.     }  
  27.     cout<<endl<<endl;  
  28.     system("pause");
  29.     return 0;   
  30. }
複製代碼

作者: 田家齊    時間: 2022-4-16 12:01

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main(){
  6.     cout<<"4個介於0~9的隨機亂數:"<<endl;   
  7.     int n[10];        
  8.     int j=1;        
  9.     srand(time(NULL));
  10.                                  
  11.          for(int i=0; i<10; i++){               
  12.                  n[i]=rand()%38+1;               
  13.                  cout<<n[i]<<" ";              
  14.          }            
  15.          cout<<endl;
  16.          _sleep(500);                          
  17.          j++;                                   

  18.    
  19.     system("pause");
  20.     return 0;   
  21. }
複製代碼

作者: 柳侑辰    時間: 2022-4-16 12:01

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];
  9.     for(int j=0; j<10; j++)
  10.     {
  11.         n[j]=rand()%38+1;
  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                j--;
  17.                break;              
  18.             }
  19.         }
  20.     }  
  21.     cout<<"我拿到的球為: ";
  22.     for(int j=0; j<10; j++)
  23.     {
  24.         cout<<n[j]<<" ";
  25.         _sleep(500);
  26.     }  
  27.     cout<<endl<<endl;  
  28.     system("pause");
  29.     return 0;   
  30. }
複製代碼

作者: 孫子傑    時間: 2022-4-16 12:26

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];        //宣告長度為10的陣列
  9.     //沒有外面只有裡面(執行1次)
  10.     for(int j=0; j<10; j++)     //執行10次的迴圈->抽10顆球
  11.     {
  12.         n[j]=rand()%38+1;  //1~38放入陣列裡->模擬抽第j球的動作
  13.         //判斷是否有重複  
  14.         for(int k=0; k<j; k++) //跑j次迴圈->決定要檢查j個數  
  15.         {
  16.             if(n[j]==n[k]) //k位置跟原本的j位置比較是否有相等  
  17.             {
  18.                //如果有的話就跳出去(break)此迴圈,並回去(j--)原本的位置
  19.                j--;
  20.                break;              
  21.             }
  22.         }
  23.     }  
  24.     cout<<"我拿到的球為: ";
  25.     for(int j=0; j<10; j++)
  26.     {
  27.         cout<<n[j]<<" ";   //把剛剛抽到的球印出來(機數+空格)
  28.         _sleep(500);
  29.     }  
  30.     cout<<endl<<endl;  
  31.     system("pause");
  32.     return 0;   
  33. }
複製代碼

作者: 高昀昊    時間: 2022-4-16 14:45

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];
  9.     for(int j=0; j<10; j++)     
  10.     {
  11.         n[j]=rand()%38+1;  
  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                 j--;
  17.                 break;              
  18.             }
  19.         }
  20.     }  
  21.     cout<<"我拿到的球為: ";
  22.     for(int j=0; j<10; j++)
  23.     {
  24.         cout<<n[j]<<" ";
  25.         _sleep(500);
  26.     }  
  27.     cout<<endl<<endl;  
  28.     system("pause");
  29.     return 0;   
  30. }
複製代碼

作者: 許宸瑀    時間: 2022-4-23 09:42

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];        
  9.     for(int j=0; j<10; j++)   
  10.     {
  11.         n[j]=rand()%38+1;  

  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                
  17.                j--;
  18.                break;              
  19.             }
  20.         }
  21.     }  
  22.     cout<<"我拿到的球為: ";
  23.     for(int j=0; j<10; j++)
  24.     {
  25.         cout<<n[j]<<" ";  
  26.         _sleep(500);
  27.     }  
  28.     cout<<endl<<endl;  
  29.     system("pause");
  30.     return 0;   
  31. }
複製代碼

作者: 高鋐鈞    時間: 2022-4-23 10:23

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];  
  9.     for(int j=0; j<10; j++)  
  10.     {
  11.         n[j]=rand()%38+1;
  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                j--;
  17.                break;              
  18.             }
  19.         }
  20.     }  
  21.     cout<<"我拿到的球為: ";
  22.     for(int j=0; j<10; j++)
  23.     {
  24.         cout<<n[j]<<" ";
  25.         _sleep(500);
  26.     }  
  27.     cout<<endl<<endl;  
  28.     system("pause");
  29.     return 0;   
  30. }
複製代碼

作者: 郭博鈞    時間: 2022-4-30 10:06

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10];        
  9.    
  10.     for(int j=0; j<10; j++)     
  11.     {
  12.         n[j]=rand()%38+1;  
  13.         for(int k=0; k<j; k++)   
  14.         {
  15.             if(n[j]==n[k])   
  16.             {
  17.                
  18.                j--;
  19.                break;              
  20.             }
  21.         }
  22.     }  
  23.     cout<<"我拿到的球為: ";
  24.     for(int j=0; j<10; j++)
  25.     {
  26.         cout<<n[j]<<" ";   
  27.         _sleep(500);
  28.     }  
  29.     cout<<endl<<endl;  
  30.     system("pause");
  31.     return 0;   
  32. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2