您的位置:首页 > 职场人生

【腾讯面试题】:斗地主随机

2015-11-10 21:35 991 查看

题目

腾讯的qq游戏当中,最多人玩的游戏就是斗地主了,每一句游戏开始时,服务 器端都要洗牌,以保证发牌的时每个人拿的牌都是随机的,假设用1-54来表示54 张不同的拍,请你写一个洗牌算法,保证54张牌能随机打散!

思考

这个算法就是随机出1-54的数字,让他每个都不同即可,然后我们就可以通过把54张牌一一匹配到每张牌即可

方法:通过rand生成1-54之间的随机数,然后判断该随机数是否已经出现过,没出现过就加入选牌序列

代码

//////////  QQ斗地主发牌
#include<iostream>
#include <ctime>
using namespace std;
int num[54];
int in(int temp,int count){
for(int i=0;i<count){
if(num[i]==temp) return 0;
}
return 1;
}
int main(){
int count=0,temp;
srand(time(NULL));
while(count<=54){
temp = rand()%54+1;
if(in(temp,count)){
num[count]=temp;
count++;
}
}
for(int i=0;i<54;i++){
cout<<num[i]<<" ";
}
}


运行截图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: