c++中rand()求得的随机值最大值的问题 15
c++中rand()求得的随机值最大值怎么是32767,intrand(void)返回值应该是4字节的int的最大值吧.怎么才32767???有没有什么办法取4字节的最大...
c++中rand()求得的随机值最大值怎么是32767,int rand(void)返回值应该是4字节的int的最大值吧.怎么才32767???
有没有什么办法取4字节的最大值....???
两位,先谢谢!
对 luosiyong:你说的,4字节的int最大值是0x7fffffff,unsigned int最大值是0xffffffff 。不错。可是rand()返回的只有0~32767
对 PE_luck: (0~32767)*22222 当然会很大啦(0~32767*22222)。可是还要去乘,性能就降低了,不是吗。 展开
有没有什么办法取4字节的最大值....???
两位,先谢谢!
对 luosiyong:你说的,4字节的int最大值是0x7fffffff,unsigned int最大值是0xffffffff 。不错。可是rand()返回的只有0~32767
对 PE_luck: (0~32767)*22222 当然会很大啦(0~32767*22222)。可是还要去乘,性能就降低了,不是吗。 展开
3个回答
展开全部
试试这个,(int)((double)rand() / RAND_MAX * N)(其中N为你期望的最大值)
不要问我为什么,因为我也是在网上找到的,事实证明是对的!
不要问我为什么,因为我也是在网上找到的,事实证明是对的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道理解是不是有错误~... 随便贴一个.
如果仅仅是要取rand的返回值就看它的定义~
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main()
{
srand((unsigned) time(NULL));
for (int i=0;i<10;i++) //测试10次
{
printf("%d\n",rand()*22222);//发挥吧
}
}
如果仅仅是要取rand的返回值就看它的定义~
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main()
{
srand((unsigned) time(NULL));
for (int i=0;i<10;i++) //测试10次
{
printf("%d\n",rand()*22222);//发挥吧
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询