在c++如何中实现在指定范围内产生一个随机数

xuxian02092213 2008-03-16 10:20:32
我想写类似于梭哈的游戏玩,就是想在28张牌中随机的发给用户一张,然后又在剩下的牌中发一张给另一个用户,以此类推。我看见c++中好像只有rand()产生随机数,还有其他的数也能产生随机数吗

分数不够,只能少给点分,请见谅
...全文
809 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuxian02092213 2008-04-09
  • 打赏
  • 举报
回复
那个是设置时间滴答
不设置的话,当你第一次运行程序,得到一组数据,关闭程序后再运行,也会得到
一组数据,看看这前后得到的数据有何特点
dizarrelight 2008-04-06
  • 打赏
  • 举报
回复
scrand(time(0))是什么意思啊?
chenzhp 2008-04-02
  • 打赏
  • 举报
回复

产生不重复的随机数,完成后,数组中的每个元素都是不重复的
void Poker::initRandomArry()
{
for(int n=0;n<=28;n++) //init arry
{
pokerArry[n] = 0;
}
srand((unsigned)GetTickCount());

for(int m = 1;m<= 28;m++)//这是要放入的28个整型数
{
int a= (int)27 * rand()/32767+1; //随机产生位置
if(pokerArry[a]==0) //判断此位置是否为空
{
pokerArry[a]=m; //空,放入其中
}
else //不空
{
for(int n=1;n<=28;n++) //比较所有数组空间
{
if(pokerArry[n]==0) //找到空闲的位置
{
pokerArry[n]=m; //放入其中
break;
}
}//end for
}// end if
} //end for

}
帅得不敢出门 2008-04-01
  • 打赏
  • 举报
回复
srand()与rand()
....... enough
gl0312 2008-04-01
  • 打赏
  • 举报
回复
学习一下
liymzd 2008-03-28
  • 打赏
  • 举报
回复
你这样数字会重复的吧
xuxian02092213 2008-03-28
  • 打赏
  • 举报
回复
我是win32的程序,是vs2005里面的,
#include<time.h>
....
....
srand((unsinged)time(NULL));

rand()%27;
...

好像是这样子的,还做了处理了,关闭程序,再来一次,不会产生相同的随机数
Inhibitory 2008-03-16
  • 打赏
  • 举报
回复
#include <iostream>
#include <ctime>
#include <cmath>

void A::Ain::print() {
std::cout << "Print of Ain." << std::endl;
}

int main() {
srand(time(0));
const int max = 28;

for (int i = 0; i < 20; i++) {
int temp = rand() % max + 1; // 结果是1到max(包括1与max)之间.
std::cout << temp << std::endl;
}

return 0;
}


代码说明最清楚
szblove 2008-03-16
  • 打赏
  • 举报
回复
rand()就可以产生你想要的范围的数啊。
把rand()产一的数result % number就可以了
number是你想要的范围,如28

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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