C语言获取随机数
来源:互联网 发布:淘宝心选在哪里显示 编辑:程序博客网 时间:2024/06/06 03:55
可能大家在编程的时候需要电脑来获取一些随机的反应,这个时候我们可以使用随机数,比较常见的是 rand() 函数,它可以随机的产生 0 ~ rand_max 的随机数。rand_max 是一个很大的数字,具体关系到IDE和数据类型,我们一般的需要不可能超出它的范围。
下面是一个实例:
编译后再运行几次,你会发现产生的随机数是相同的。实际上,rand() 函数产生的随机数是伪随机数,是根据一个数按照某个公式推算出来的,这个数我们称之为“种子”,但是这个种子在系统启动之后就是一个定值,我们需要用 srand() 来进行播种,即在int a前加一句:
这样,我们就能得到不同的随机数,其实C语言中还有一个 random() 函数可以获取随机数,但是 random() 函数不是ANSI C标准,不能在VC等编译器通过,所以比较少用。
那如何产生一定范围的随机数呢?我们可以利用取模的方法:如果要规定上下限:分析:取模即取余,rand()%51+13我们可以看成2部分:rand()%51是产生0~50的随机数,后面+13保证a最小只能是13,最大就是50+13=63。
最后给出产生 13~63 范围内随机数的完整代码:
下面是一个实例:
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- int a=rand();
- printf("%d\n",a);
- return 0;
- }
编译后再运行几次,你会发现产生的随机数是相同的。实际上,rand() 函数产生的随机数是伪随机数,是根据一个数按照某个公式推算出来的,这个数我们称之为“种子”,但是这个种子在系统启动之后就是一个定值,我们需要用 srand() 来进行播种,即在int a前加一句:
- srand((unsigned)time(NULL)); //这里利用时间进行播种,需要time.h
这样,我们就能得到不同的随机数,其实C语言中还有一个 random() 函数可以获取随机数,但是 random() 函数不是ANSI C标准,不能在VC等编译器通过,所以比较少用。
那如何产生一定范围的随机数呢?我们可以利用取模的方法:
- int a=rand()%10; //产生0~9的随机数,注意10会被整除
- int a=rand()%51+13; //产生13~63的随机数
最后给出产生 13~63 范围内随机数的完整代码:
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- int a;
- srand((unsigned)time(NULL));
- a=rand()%51+13;
- printf("%d\n",a);
- return 0;
- }
0 0
- C 语言随机数获取
- C语言获取随机数
- C语言获取随机数
- C语言真正获取随机数
- C语言真正获取随机数
- 72 C语言获取随机数
- oc获取随机数(主要是c语言的随机数)
- c语言实现的两种获取随机数的算法
- C语言rand()获取随机数和windows下的CryptGenRandom
- C语言之获取32字节随机数的字符串
- C 获取随机数
- C 语言中的随机数
- C语言随机数内幕
- C语言产生随机数
- c语言随机数
- 随机数生成器C语言
- C 语言随机数函数
- C语言产生随机数
- HTTP POST请求报文格式分析与Java实现文件上传
- Android中自定义MultipartEntity实现文件上传以及使用Volley库实现文件上传
- 【华为OJ】【039-无线OSS-高精度整数加法】
- could not instantiate class [xxx] from tuple
- 【华为OJ】【040-输入n个整数,输出其中最小的k个】
- C语言获取随机数
- Android 解决ListView 和 ScrollView 共存冲突的问题
- 在C语言头文件中“”与<>有什么区别?
- C语言函数的递归调用
- 第7周 C语言及程序设计提高例程-25 指针作函数参数
- android 之将自己的自定义组件打包成JAR包
- C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈
- <读书笔记>软件调试之道 :问题的核心-诊断
- C语言空指针NULL以及void指针