问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++随机取值,范围是30~70,怎样实现?

发布网友 发布时间:2023-09-17 08:46

我来回答

4个回答

热心网友 时间:2024-11-19 21:44

代码如下:
int iR = 0;
srand( (unsigned)time( NULL ) );
iR = 30+rand()%40;

以上代码将随机产生30到70之间的正整数(包括30,不包括70)
如果将第二句改为
iR = 30+rand()%41
则将同时包括30和70。

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

针对不同编程语言,rand函数返回值范围不同。SQL中为0到1间的纯小数,C++中则为正整型范围(0到32767),微软平台的C++运行库定义了一个常量RAND_MAX为rand()函数返回值的上限(即32767)。

由于随机算法的局限性,rand()每次返回的值是固定不变的(即所谓伪随机数)。要使它真正具有随机性,一般的做法是在rand()之前使用srand()产生一个随机种子,可以形象的认为rand()需要一个基数来产生随机数,而该基数就是这个由srand()指定的种子。srand()需要一个参数来产生该种子,因此当该参数在程序运行过程中不断变化时,使用rand()产生的随机数就可以认为是比较客观的了。

实际编码过程中,我们一般使用系统当前时间作为srand()的参数来产生种子,再由rand()根据这个种子去生成随机数。

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

一个使用随机函数发扑克牌的小例子:
http://hi.baidu.com/crazycola/blog/item/52402bd4b3f68705a08bb746.html

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

附上MSDN原文

int rand( void ); Return Value
rand returns a pseudorandom number, as described above. There is no error return.

Remarks
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX (32767). Use the srand function to seed the pseudorandom-number generator before calling rand.

Requirements
Routine Required header Compatibility
rand
<stdlib.h>
ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

For additional compatibility information, see Compatibility in the Introction.

参考资料:MSDN

热心网友 时间:2024-11-19 21:44

int val = rand() % 40 + 30;

这样你就能得到 30 ~ 70 之间的随机数,只是一个数学上的平移问题。

关于 rand() 函数的使用,请查阅 C/C++ 手册。
给你推荐一个网站吧:http://www.cppreference.com/wiki/

这个网站有 C/C++ 所有函数的参考和说明。

热心网友 时间:2024-11-19 21:45

rand()产生的是伪随即数。
srand()书上说是为rand播种的。
如:
void main()
{
int n=1;
srand(n);
for(int i=0; i<50; i++)
cout<<rand()<<endl;
}
无论程序运行几遍,所得到的50个数每次都一样。
但如果你改一下srand()中的值,可以改变rand()产生的数。
如果想产生a到b之间的数,试试cout<<n=a+rand()%(b-a+1)<<endl;

热心网友 时间:2024-11-19 21:46

rand()%(30-70)?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 ascii码值范围是什么? 堡垒2012豆瓣多少分 直播真的能月入一万五吗? 螽斯和蝈蝈有什么区别呢 一笑在人间哪一首歌曲 使用SPSS软件对学习者语料库和母语语料库两样本连词使用进行独立样本T... 帮忙翻译一段话,请懂得统计学原理术语的筒子们来。 200分! 刚开始跳绳有什么症状 acer5580电池更换电芯(力神2200mAh), 保护板后段没有电压输出(接本本处... 泉州华天卡地亚公馆在什么位置? 宜昌江南URD(江南生态新城)售楼热线是多少? 白天鹅对面在建什么 承德天瑞城有多少户? 112线城区改造工程啥时候动工 有没有写1645年朱聿键去江西发展的小说 拯救美人小说txt全集免费下载 石河伦吾体育馆在哪 如何让莲花保持长久 献血证单位能更改吗怎么改 献血证可以异地使用吗? VB 文本框数值范围 穗宝床垫两面都是一样软的么 203天前是几月几号 从六月六到正月正是多长时间 为什么百度评论里总有那么多喷子和三观不正的人? 为什么百度知道喷子 多? 为什么网上评论喷子多,他们出口成脏,连好好说话都不会 欣字取名女孩有寓意属兔最搭的名字有哪些? 铁嘴银牙演员佘诗曼的配音演员 总给佘诗曼配音的人是谁啊!我很喜欢她声音! 阿莱西亚·文托拉的轶闻 因扎吉怎么还不结婚? 希腊神话宫殿 爱玛和台铃,雅迪哪个好?我在郑州 在郑州买电动车,爱玛和台铃,雅迪哪个好?哪个市场便宜? 情满九道湾赵亚平结局如何? 为什么风云单机游戏不能用 荆门石桥驿花园村经度,纬度多少 楼上噪音扰民应该如何处理? 告别尿失禁 女性要比男性更注意