随机数C语言代码_c语言二维数组定义与赋值

Դ澎湃新闻

ߣ搜索引擎优化

14

2021-11-06 13:30:11

随机数的使用,是不少在学C语言过程中进行一些小功能开发的同学的一个技术问题,今天我们为大家讲解如何在C语言中使用随机数。

通常最常用的方法是利用rand函数随机生成伪随机数,完成随机数的生成。注意这里的伪随机数不是假的!只是计算机根据自己的理论生成的随机数,不是“完美”的随机数,所以可以接受。

函数原型为:int rand(void);需要包含stdlib头文件,可以生成一个从0到RAND_MAX的数字,其中rand _ max是一个宏,作者在VC6下将其视为0x7fff。我建议你自己在电脑上做实验!

你可以在自己的电脑上测试。如果您发现任何新问题或有其他乐趣,请告诉我们!我们的QQ群号是496926338。群内有大量的项目开发视频和新手教学视频。

此时,您可能会遇到以下问题:

Q1:为什么每次生成的数字都一样?

A1:每次rand函数生成的数字都与所谓的“种子”有关。在使用RAND函数之前,您需要使用srand函数来播种(参见后面的内容)。如果没有调用,系统会默认为1,导致每次随机数相同。

Q2:为什么最大值是0x7fff?

A1:这可能取决于编译器环境。这里的作者是VC6,rand函数中定义的最大值是0x7fff,如下图所示:

随机数c语言代码(c语言二维数组定义和赋值)

问题3:如果我想生成一个特定范围内的数字,该如何写?

A3:多使用%余数运算符。例如:

生成10以内的数字,参考rand()

生成1到10之间的数字,参见rand() 1。

具体来说,要生成A和B之间的数字,可以参考RAND ()% (B-A 1) A。

更多的时候,我们希望每次运行产生的数字不同,所以需要配合srand函数来解决这个问题。具体原因可以参考rand函数和srand函数的实现细节来理解。代码如下:

随机数c语言代码(c语言二维数组定义和赋值)

然后如何使用srand函数,先看函数原型:

void srand(无符号种子);在使用rand函数之前,只需调用Srand函数传入一个种子。然而,事实上,当一个数字传入时,它经常随时产生。目前看来,只有使用系统时间作为种子才是最合适的智能写入方式,所以这里的srand的参数往往通过在时间(NULL)参数中作为种子来获取当前的系统时间产生不同的结果!

并注意同类型,srand((无符号)time(NULL));记得加上time.h的头文件!

测试代码如下:

随机数c语言代码(c语言二维数组定义和赋值)

你可以在自己的电脑上测试。如果您发现任何新问题或有其他乐趣,请告诉我们!

佭ϴý Ѷ Media8ý

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部