洗牌算法

看面经的时候看到有洗牌算法的问题 题意就很简单 把 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
", a[i]);

    return 0;
}

  

 

原文地址:https://www.cnblogs.com/zlrrrr/p/13271650.html