在c语言产生一个随机数中怎样产生随机数

C语言随机生成数RAND_MAX问题在练习算法中排序时数据需要自己输入,今天想写一个随机生成一组不重复的数组,以前写随机成生数是这样写的:  C/C++ code   int a = rand()%100+1;
//生成从0到100的随机数
但是现在想指定范围,即给出一个max和一个min生成这个范围内的数。查资料上面是这样写的:  C/C++ code   int a = (max-min+1)*rand()/(RAND_MAX+1)+
很是郁闷,不能理解,求解。。
回答1:我没有记错的话,rand()返回一个0到RAND_MAX随机整数,你的工作就是将这个整数线性压缩进(min,max)范围中
rand():产生0到RAND_MAX随机整数,共计RAND_MAX+1个。rand()/(RAND_MAX+1):能够得到一个[0,1)内均匀分布的小数。(max-min+1):区间大小min+(max-min+1)*rand()/(RAND_MAX+1)即min加上区间的一部分,即为min到max之间的随机数。
回答3:数学上的一点简单变换知识x+b----平移b个距离k*x----比例绽放k倍组合起来k*x+b----先缩放k倍 再 平移brand()----产生[0,RAND_MAX)间的整数rand{}/RAND_MAX----缩小RAND_MAX倍,值为[0,1)间的浮点数----注意除法结果是整数除法(...)*rand{}/RAND_MAX----放大到[0,max-min+1)间,(max-min+1)--宽度min+....----平移到[min,max]注意式子中类型变换,最后结果是double 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
如何用C语言产生真正的随机数
下载积分:30
内容提示:随机数&#
文档格式:PDF|
浏览次数:818|
上传日期: 23:57:39|
文档星级:
该用户还上传了这些文档
如何用C语言产生真正的随机数
官方公共微信

我要回帖

更多关于 c语言中产生随机数 的文章

 

随机推荐