码迷,mamicode.com
首页 > 其他好文 > 详细

设计一个洗牌的程序?就是将这副牌进行随机交换

时间:2015-10-08 18:23:03      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#include <cstdlib>
#include<ctime>
using namespace std;
 
void Swap(int &a, int &b){// 有可能swap同一变量,不能用异或版本
    int t = a;
    a = b;
    b = t;
}
void RandomShuffle(int a[], int n){  //洗牌程序
    for(int i=0; i<n; ++i){
        int j = rand() % (n-i) + i;// 产生i到n-1间的随机数
        Swap(a[i], a[j]);
    }
}
int main(){
    srand((unsigned)time(0));  //用时间来作为种子
    int n = 9;
    int a[] = {
        1, 2, 3, 4, 5, 6, 7, 8, 9
    };
    RandomShuffle(a, n);
    for(int i=0; i<n; ++i)
        cout<<a[i]<<endl;
    return 0;
}

 

设计一个洗牌的程序?就是将这副牌进行随机交换

标签:

原文地址:http://www.cnblogs.com/jijiji/p/4861687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!