C语言 产生随机数

rand()函数

#include <stdlib.h>
int rand(void);

rand()是根据某个种子,以特定的算法,计算出一系列数的函数。返回的数在0和RAND_MAX之间。RAND_MAX定义在stdlib.h中,至少是32767。

然而,这生成的是伪随机数,因为种子在计算机开机后就设定好了,所以这一系列数都是可预测的,每次得出的数列都是相等的。想要得到真正的随机数,必须重新设定这个种子。

srand()函数

#include <stdlib.h>
void srand(unsigned int seed);

srand(seed)是C语言中,用于设定随机数种子的函数,通常用时间作为seed,每次运行的时间都不同,所以产生的随机数种子也不同。srand(time(NULL))

如何产生随机数

  1. 调用srand(time(NULL)),设置随机数种子
  2. 反复调用rand(), 产生随机数
#include <stdlib.h>
#include <stdio.h>
#include <time.h>           

void main( void )
{
  int i;
  srand((unsigned)time(NULL));
    for(i = 0; i < 10; i++) {
        printf("%d\n", rand());
    }
}

原文地址:https://www.cnblogs.com/shenlinken/p/9404570.html

时间: 2024-11-02 13:40:11

C语言 产生随机数的相关文章

C语言中随机数相关问题

用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand(unsigned int seed); //为rand设置"种子"的值 srand()就是给rand()提供种子seed,如果srand每次输入的数值是一样的,那么每次运行产生的随机数也是一样的.通常的做法是以这样一句代码: srand((unsigned)time(NULL)); 来取

C语言生产随机数的方法

尽管在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字的重复率很低,以至于它们看起来是随机的.实现这一功能的程序叫做伪随机数发生器.有关如何产生随机数的理论有许多,这里不讨论这些理论及相关的数学知识.因为讨论这一主题需要整整一本书的篇幅.这里要说的是,不管你用什么办法实现随机数发生器,你都必须给它提供一个被称为"种子(seed)"的初始值,而且这个值最好是随机的,或者至少是伪随机的."种子"的值通常是用快速计数寄存器或移位寄存器来生成的.本文中,笔者将

用c语言产生随机数的方法

用c语言产生随机数的方法 一. //************************************ 伪随机数 在C语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态分布,从而相当于产生了随机数,但这不是真正的随机数. rand(产生随机数)表头 #include<stdlib.h>定义函数 int rand(void)函数说明rand()会返

【编程开发】C语言中随机数rand使用注意事项

[编程开发]C语言中随机数rand使用注意事项 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:随机数在编程开发中非常重要,以C语言中的rand函数为例,使用时需要注意随机数的随机体现在哪里,比如是程序在不同的时刻执行时,相同位置的随机数是否需要一样,还是要每次执行生成的随机数也要不一样,等等,这些都是需要加以关注的地方. 经测试,发现,在不使用srand这个随机数种子的情况下:每次运行生成的随机数都是一样的.有的时候是需要这样子的,当然可以直接使

c语言产生随机数的方法

在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a). 可能大家都知道C语言中的随机函数random,可是random函数并不是ANSI C标准,

C语言产生随机数(伪)

C语言的获取随机数的函数为rand(), 可以获得一个非负整数的随机数.要调用rand需要引用头文件stdlib.h.要让随机数限定在一个范围,可以采用模除加加法的方式.要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式:rand()%(n-m+1)+m其原理为,对于任意数,0 <= rand()%(n-m+1) <= n-m (即rand()%(n-m+1)生成的随机数是在0到n-m之间的) 于是0+m <= rand()%(n-m+1)+m <= n-m+

c语言产生随机数

#include <stdio.h> #include <time.h>//time的头文件 #include <stdlib.h>//rand的头文件 int main() { srand((int)time(NULL));//设种子 for(int i=0;i<10;i++) { int num=rand()%100+1;//产生1-100之间的数 printf("%d ",num); } return 0; } ........ 这是两次

c语言 伪 随机数 小结

需求: 输出[x,y]之间的随机数 算法: rand()%(y-x+1)+x #include <stdio.h> #include <stdlib.h> #include <time.h> #include <sys/time.h> //交换函数 void swap(int *a, int *b){     int temp= 0;     temp = *a;     *a = *b;     *b = temp; } //求两个随机数[20,40]数组

各种语言产生随机数的方法

C/C++: 1 /* 2 c++中不能用random 3 rand()返回0--RAND_MAX之间均匀分布的伪随机整数, 4 rand()不接收参数,随机数生成器总以相同的种子开始,默认以1为种子 5 srand()可以指定不同的数为种子, 6 RAND_MAX等于32767 7 */ 8 const int MAX(100); 9 srand((unsigned)time(NULL));//一个以当前时间开始的随机种子,应该放在循环语句前面 10 for (int i = 0; i !=

C语言之随机数和字符串输入输出

一.随机数产生函数 1.需要加入头文件 #include<stdlib.h> 和 #include<time.h> 2.Rand是伪随机数产生器,每次调用rand产生的随机数是一样的. 3.如果调用rand之前先调用srand就可以出现任意的随机数. 4.只要能保证每次调用srand函数的时候,参数的值是不同的,那么rand函数就一定会产生不同的随机数. 5.实例: int main(void) { int t = (int)time(NULL); srand(t); //随机数种