洗牌算法

看面经的时候看到有洗牌算法的问题 题意就很简单 把 54 张扑克牌进行重排 使每张牌在每个位置上等概率的出现 是个小清新算法了 QAQ

#include <bits/stdc++.h>
using namespace std;

int a[110];

void init() {
    for(int i = 0; i < 54; i ++)
        a[i] = i;
}

int main() {
    init();
    srand((unsigned int)time(NULL));
    
    int temp = 54;
    while(temp) {
        swap(a[rand() % temp], a[temp - 1]);
        temp --;
    }

    for(int i = 0; i < 54; i ++)
        printf("%d\n", a[i]);

    return 0;
}

  

 

posted @ 2020-07-09 09:14  丧心病狂工科女  阅读(200)  评论(0编辑  收藏  举报