無重複隨機數生成
做作業時候遇到這個問題,感覺這種演算法很快捷
一個洗牌的演算法。。多執行緒沒做出來然後放棄了
生成1-52之內的不重複隨機數,一個數代表了一張牌,迴圈52次即摸牌完畢。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
string a[5]={"紅桃","方片","黑桃","梅花"};
string b[15]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
string c[60]={"0"};
int k=0; //總牌數,初始化為0
srand((int)time(0));
//初始化牌堆
for(int i=0;i<4;i++)
for(int j=0;j<13;j++)
{
c[k]=a[i]+b[j];
k++;
}
//迴圈計數遞減,每抽取一個字串就將其放到字串組末尾,從下次迴圈中剔除
for(int i=k;i>=1;i--)
{
int temp = rand()%i ;
cout<<"第"<<i<<"張:"<<c[temp]<<endl;
swap(c[temp],c[i-1]);
}
return 0;
}
相關文章
- java 無重複取隨機數Java隨機
- 生成14個可重複一次的隨機數隨機
- 集合框架-獲取無重複的隨機數案例框架隨機
- 巧用物件,生成不重複隨機數物件隨機
- [隨機數詳解]生成一個隨機數,生成指定範圍的隨機數及隨機陣列去重隨機陣列
- C++【生成16個不重複字母】(生成不重複隨機數)C++隨機
- C#迴圈中使用Random生成隨機數有重複問題C#random隨機
- 生成隨機數隨機
- 如何生成隨機不重複的11位數字隨機
- javascript生成不重複隨機數程式碼例項JavaScript隨機
- matlab之生成不重複的隨機整數Matlab隨機
- JavaScript 生成隨機數JavaScript隨機
- mysql生成隨機數MySql隨機
- python生成隨機數、隨機字串Python隨機字串
- 隨機數生成器隨機
- java隨機數生成原理Java隨機
- 生成隨機整數方法隨機
- python 隨機數生成Python隨機
- C++生成隨機數C++隨機
- sample, choices: 從list中隨機選擇無重複的元素隨機
- 集合框架-產生10個1-20之間的隨機數,要求隨機數不能重複框架隨機
- Linux Shell 生成隨機數和隨機字串Linux隨機字串
- 編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複。隨機
- 微信小程式生成隨機數微信小程式隨機
- 更安全的隨機數生成隨機
- 幾種生成隨機數方法隨機
- 使用Math類生成隨機數隨機
- matlab 生成隨機數序列Matlab隨機
- PHP 生成更好的隨機數PHP隨機
- 在oracle 中生成隨機數Oracle隨機
- C語言程式生成指定範圍的不重複的隨機數C語言隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- 生成固定長度不重複的隨機字串隨機字串
- ruby指令碼,隨機生成複雜密碼指令碼隨機密碼
- Golang生成區間隨機整數Golang隨機
- Python生成隨機數random模組Python隨機random
- Python中如何生成隨機數?Python隨機
- python生成隨機數的方法Python隨機