c++随机函数rand怎么用,c中rand函数产生的随机数的范围是

c++随机函数rand怎么用,c中rand函数产生的随机数的范围是,C++ 中随机函数random函数的使用方法

本文主要介绍c中使用random函数的相关信息,希望这篇文章可以帮助到大家,有需要的朋友可以参考一下。

C++ 中随机函数random函数的使用方法

一、random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。 可改用C++下的rand函数来实现。

1.c标准函数库提供了一个随机数生成器rand,它返回0-rand _ max之间均匀分布的伪随机整数。RAND_MAX必须至少为32767。rand()函数不接受参数,默认为1作为种子(即起始值)。随机数生成器总是从同一个种子开始,所以形成的伪随机数列是一样的,失去了随机的意义。(但这样便于程序调试)

2.C中的另一个函数srand()可以指定不同的数字(无符号整数参数)作为种子。但如果种子一样,伪随机数列也一样。一种方式是让用户输入种子,但还是不太理想。

3.最理想的是使用一个可变的数字,比如时间,作为随机数生成器的种子。时间的价值每时每刻都不一样。所以种子不一样,所以产生的随机数也不一样。

//C随机函数(VC程序)

#包含stdlib.h

#包含iostream.h

#包含时间. h

#定义最大100

void main()

{

srand((无符号)时间(空));//函数//srand()从当前时间开始生成一个随机种子。

for(int I=0;i10我)

coutrand()% MAXendl;//MAX为最大值,其随机域为0~MAX-1。

}

二、rand()的用法

Rand()不需要自变量,它会返回0到最大随机数之间的任意整数,最大随机数的大小通常是一个固定的大整数。这样,如果要生成从0到10的10个整数,可以表示为:

int N=rand()% 11;

这样,n的值就是一个从0到10的随机数。如果要生成1到10,情况是这样的:

int N=1 rand()% 10;

综上所述,可以表述为:

一个rand() % n

其中a是起始值,n是整数的范围。如果想要一个从0到1的小数,可以先得到一个从0到10的整数,然后把它们除以10得到10个随机小数。如果想得到一个从10到100的随机小数,需要得到10个从0到100的整数,然后除以100。其他情况取决于

诸如此类。

通常情况下,rand()每次运行时生成的随机数都与最后一个相同。这是为了方便程序的调试而特意设计的。要每次生成不同的随机数,可以使用srand(种子)函数将其随机化。不同的种子可以产生不同的随机数。

我们都说过了,还可以包含time.h的头文件,然后用srand(time(0))用当前时间随机化随机数发生器,保证每两次运行(只要两次运行间隔超过1秒)就能得到不同的随机数序列。

注意:rand()在0到RAND_MAX上产生一个随机数(32767),而32767不能被11整除。

因此int N=rand()% 11;得到的随机数从0到10不是均匀分布的,取9和10的概率比取0到8的概率少11/32767,约为1/2978;

所以,要取0~M的随机数,M小的话问题不大,但是M大的时候,比如M=30000,取0-2767的概率是取最后几个数的两倍,严重不符合随机分布!

三、按要求设置概率

比如设一个10%的概率问题,我们可以用rand()函数来实现。在if条件句判断中,由rand ()%获得的值是一个设定值,然后与另一个值做“==”运算。

例如:

if(1==rand())

{//达到10%的概率,在此编辑其余代码}

其他

{//90%的失败概率,其余代码在此编辑}

如有任何问题,请留言或与本站社区讨论。感谢阅读,希望能帮到你。感谢您对本站的支持!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • vs2015打包安装程序,vs2015程序打包,VS2022实现VC++打包生成安装文件图文详细历程
  • vc++6.0的快捷键,vc 快捷键
  • vc++6.0的快捷键,vc 快捷键,VC6.0常用快捷键大全
  • 绘制圆角矩形的方法,c++ 画矩形,C#画圆角矩形的方法
  • 懒汉式和饿汉式代码,单列模式懒汉和饿汉,C++单例模式的懒汉模式和饿汉模式详解
  • 好用的C++编译器,c++编译软件哪个好
  • semaphore c#,c++ semaphore
  • semaphore c#,c++ semaphore,C++中Semaphore内核对象用法实例
  • dev-c++使用教程,dev c++安装教程
  • dev-c++使用教程,dev c++安装教程,Dev C++ 安装及使用方法(图文教程)
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针,简单总结C++中指针常量与常量指针的区别
  • com组件初始化失败,c#开发com组件,C++中COM组件初始化方法实例分析
  • c++静态成员变量使用,c++静态成员函数和静态成员变量
  • c++静态成员变量使用,c++静态成员函数和静态成员变量,详解c++ 静态成员变量
  • 留言与评论(共有 条评论)
       
    验证码: