rand函数

c++如何生成随机数

久未见 提交于 2019-12-30 22:57:28
本文转载自: https://www.cnblogs.com/ql698214/p/5424937.html 作者:ql698214 转载请注明该声明。 一、使用rand()函数 头文件<stdlib.h> (1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。 例如: class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">#include<stdio.h> #include<stdlib.h> void main() { for(int i=0;i<10;i+) printf("%d/n",rand()); } (2) 如果你要随机生成一个在一定范围的数,你可以在宏定义中定义一个random(int number)函数,然后在main()里面直接调用random()函数 x = rand()%11; /*产生1

C语言,如何产生随机数

狂风中的少年 提交于 2019-12-30 11:35:01
1. 基本函数 在C语言中取随机数所需要的函数是: int rand(void); void srand (unsigned int n); rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件: #include <stdlib.h> 2. 使用方法 rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。 srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。 for (int i=0; i<10; i++) { printf("%d ", rand()%10); } 每次运行都将输出:1 7 4 0 9 4 8 8 2 4 srand(1); for (int i=0; i<10; i++) { printf("%d ", rand()%10); } 每次运行都将输出:1 7 4 0 9 4 8 8 2 4 例2的输出结果与例1是完全一样的。

随机生成指定长度字符字符串(C语言实现)

老子叫甜甜 提交于 2019-12-30 11:34:51
相关函数 srand(), rand() 头文件 #include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。 返回值 返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。 定义函数 void srand (unsigned int seed); 函数说明 srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。 随机生成指定长度字符字符串(C语言实现) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <time.h> void get_rand_str(char s[],int num) //如果是在一个程序的循环中不断调用这个函数,那么是没有效果的 /

c++ 随机函数用法

风流意气都作罢 提交于 2019-12-25 07:30:07
C++中rand()函数可以用来产生随机数,但是是属于伪随机数。 rand()函数用法:   在使用rand()函数的时候,首先需要包含头文件#include<stdlib.h>,用法是int rand(void),产生的随机数范围是0~65536,类型为unsigned int,不能超过范围。rand()函数不接受参数,默认以1为种子(即起始值)。 随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义。若要不同,此时需要使用函数srand()进行初始化。   srand()函数用来初始化随机数发生器,用法为void srand(unsigned int seed),参数seed必须是个整数,如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。   可以利用srand((unsigned int)(time(NULL))的方法,产生不同的随机数种子,因为每一次运行程序的时间是不同的。   产生随机数的用法 1) 给srand()提供一个种子,它是一个unsigned int类型; 2) 调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到RAND_MAX之间); 3) 根据需要多次调用rand(),从而不间断地得到新的随机数; 4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand(

在Objective-C中生成随机数

痴心易碎 提交于 2019-12-22 11:38:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我主要是Java头,我想要一种生成0到74之间的伪随机数的方法。在Java中我会使用这个方法: Random.nextInt(74) 我对种子或真正的随机性的讨论不感兴趣,只是你如何在Objective-C中完成相同的任务。 我搜索谷歌,似乎有很多不同的和相互矛盾的信息。 #1楼 最好使用 arc4random_uniform 。 但是,这不适用于iOS 4.3。 幸运的是,iOS将在运行时绑定此符号,而不是在编译时绑定(因此不要使用#if预处理器指令来检查它是否可用)。 确定 arc4random_uniform 是否可用的最佳方法是执行以下操作: #include <stdlib.h> int r = 0; if (arc4random_uniform != NULL) r = arc4random_uniform (74); else r = (arc4random() % 74); #2楼 和C一样,你会这样做 #include <time.h> #include <stdlib.h> ... srand(time(NULL)); int r = rand() % 74; (假设您的意思是包含0但不包括74,这是您的Java示例所做的) 编辑: 随意替换 rand() random() 或

C语言随机函数

我们两清 提交于 2019-12-21 20:36:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。 可能大家都知道C语言中的随机函数random,可是random函数并不是ANSI C标准,所以说,random函数不能在gcc,vc等编译器下编译通过。 rand()会返回一随机数值,范围在0至RAND_MAX 间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767)我运算的结果是一个不定的数,要看你定义的变量类型,int整形的话就是32767。 在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。具体见下面的例子。 一、 如何产生不可预见的随机序列呢 利用srand((unsigned int)(time(NULL))是一种方法

C/C++中如何产生伪随机数

时光总嘲笑我的痴心妄想 提交于 2019-12-21 03:02:02
  1. C语言中的伪随机数产生函数   本节主要参考自一 博文 及 cppreferrence .   我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。   1.1 rand()   功能:随机数发生器   用法:int rand(void)   所在头文件: stdlib.h   rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的。   rand()返回一随机数值的范围在0至RAND_MAX 间。RAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相同的。   用户未设定随机数种子时,系统默认的随机数种子为1。   rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。   1.2 srand()   功能:初始化随机数发生器   用法: void srand(unsigned int seed)

c++随机数生成

*爱你&永不变心* 提交于 2019-12-20 00:30:57
算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。) 我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。 1.rand() 功能:随机数发生器 用法:int rand(void) 所在头文件: stdlib.h rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的。 rand()返回一随机数值的范围在0至RAND_MAX 间。RAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相同的。 用户未设定随机数种子时,系统默认的随机数种子为1。 rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。 2.srand()

生成随机数据

泪湿孤枕 提交于 2019-12-19 01:01:36
生成随机数据 一.生成int型数据 简单地生成n个随机数据(数字大小在int范围内) #include <cstdio> #include <cstdlib> #include <cmath> int main() { int n=60; for(int i=1; i<=n; i++) printf("%d ",rand()); printf("\n"); return 0; } 每次运行该程序得到的随机数都是一样的,因为种子相同 改变种子,每次运行程序可以得到不同的随机数 得到种子需要一个函数srand(m); 参数m决定了种子,那么每次运行的时候我们需要改变m以便得到不同的种子,显然很麻烦,所以我们可以自动生成种子,就是使用一个time()函数,以当前时间来作为种子 #include <cstdio> #include <cstdlib> #include <cmath> #include <ctime> int main() { int n=60; srand((int)time(0)); for(int i=1; i<=n; i++) printf("%d ",rand()); printf("\n"); return 0; } 生成范围在[a,b]以内的随机数据 先说简单的,如果是要生成[0,b]以内的数据那么只要对b+1取模即可 #include <cstdio>

php如何实现验证码

允我心安 提交于 2019-12-17 16:49:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。好吧,其实是没有事情干,但是又不想浪费时间,所 以学习了下php实现验证码。正所谓,技多不压身。而且,也可以封装成一个函数,以后使用的时候也是很方便的,当然现在未封装。 现在来说说简单的纯数字验证码吧。 如果是初学者,建议按照我代码的注释 //数字 一步步来。最简单的方法,还是把整个代码复制走了。 新建一个captcha.php: php //10>设置session,必须处于脚本最顶部 session_start(); $image = imagecreatetruecolor(100, 30); //1>设置验证码图片大小的函数 //5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue); $bgcolor = imagecolorallocate($image,255,255,255); //#ffffff //6>区域填充 int imagefill(int im, int x, int y, int col) (x,y)