随机数

lcfll 2009-01-21 08:54:36
比如一堆扑克,有四张A,四张K,三张Q,两张J,然后随机从里面抽一张
以这个例子用c++产生随机数
各位大侠帮帮忙
...全文
137 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
nerrymeeting 2009-01-22
  • 打赏
  • 举报
回复
srand((unsigned int)time(NULL));
这个要加,用来初始化rand()的起始值
nullah 2009-01-22
  • 打赏
  • 举报
回复
up
吉人自有天香 2009-01-21
  • 打赏
  • 举报
回复
我感觉还是用rand 比较好
barbara2008 2009-01-21
  • 打赏
  • 举报
回复
网通真是卡!
barbara2008 2009-01-21
  • 打赏
  • 举报
回复
用一个byte的结构表示
struct card
{
int a:4 //放牌的花色 黑桃,梅花,方片,红心
int b:4 //牌的大小A~10, J,Q,K,
};
waizqfor 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Chiyer 的回复:]
C/C++ code#include "iostream"
using namespace std;

enum
{
A1 = 0,
A2,
A3,
A4,
K1,
K2,
K3,
K4,
Q1,
Q2,
Q3,
J1,
J2,
COUNT
};

void print(int t)
{
switch (t)
{
case A1 : cout<<"A1"<<endl; break;
case A2 : cout<<"A2"<<endl; break;
case A3 : cout<<"A3"<<endl; break;
case A4 : cout<<"A4"<<endl…
[/Quote]
星羽大哥的方法 真雷 呵呵!~~
tangshuiling 2009-01-21
  • 打赏
  • 举报
回复
简单的实例:

#include <iostream>
#include <ctime>
using namespace std;

int main()
{
int arr[]={1,1,1,1,2,2,2,2,3,3,3,4,4};
srand((unsigned int)time(NULL));
for(int i=0;i<1000;++i)
{
switch(arr[rand()%13])
{
case 1:
cout<<"A"<<" ";
break;
case 2:
cout<<"K"<<" ";
break;
case 3:
cout<<"Q"<<" ";
break;
case 4:
cout<<"J"<<" ";
break;

}
}

return 0;
}

tangshuiling 2009-01-21
  • 打赏
  • 举报
回复
简单的实例:

#include <iostream>
#include <ctime>
using namespace std;

int main()
{
int arr[]={1,1,1,1,2,2,2,2,3,3,3,4,4};
srand((unsigned int)time(NULL));
for(int i=0;i<1000;++i)
{
switch(arr[rand()%13])
{
case 1:
cout<<"A"<<" ";
break;
case 2:
cout<<"K"<<" ";
break;
case 3:
cout<<"Q"<<" ";
break;
case 4:
cout<<"J"<<" ";
break;

}
}

return 0;
}

星羽 2009-01-21
  • 打赏
  • 举报
回复
#include "iostream"
using namespace std;

enum
{
A1 = 0,
A2,
A3,
A4,
K1,
K2,
K3,
K4,
Q1,
Q2,
Q3,
J1,
J2,
COUNT
};

void print(int t)
{
switch (t)
{
case A1 : cout<<"A1"<<endl; break;
case A2 : cout<<"A2"<<endl; break;
case A3 : cout<<"A3"<<endl; break;
case A4 : cout<<"A4"<<endl; break;
case K1 : cout<<"K1"<<endl; break;
case K2 : cout<<"K2"<<endl; break;
case K3 : cout<<"K3"<<endl; break;
case K4 : cout<<"K4"<<endl; break;
case Q1 : cout<<"Q1"<<endl; break;
case Q2 : cout<<"Q2"<<endl; break;
case Q3 : cout<<"Q3"<<endl; break;
case J1 : cout<<"J1"<<endl; break;
case J2 : cout<<"J2"<<endl; break;
default : cout<<"error"<<endl; break;
}
}

int main()
{
const int test_cnt = 10;

for (int i = 0; i < test_cnt; ++i)
print(rand() % COUNT);

return 0;
}

-------------

A3
K4
A4
K3
K4
K4
J2
K1
A1
J1


lockhall 2009-01-21
  • 打赏
  • 举报
回复
gaga!

:)

[Quote=引用 1 楼 barbara2008 的回复:]
把你想要产生的牌的值放进一个数组
以你举出的例子为例:
四张A,四张K,三张Q,两张J,一共13张牌
对数组的下标做随机数就可以了
rand() % 13
然后用下标索引打印出牌的值
[/Quote]
barbara2008 2009-01-21
  • 打赏
  • 举报
回复
把你想要产生的牌的值放进一个数组
以你举出的例子为例:
四张A,四张K,三张Q,两张J,一共13张牌
对数组的下标做随机数就可以了
rand() % 13
然后用下标索引打印出牌的值

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧