精华内容
下载资源
问答
  • c语言随机数函数
    千次阅读
    2020-10-11 08:18:47

    rand()简介

    1 使用该函数首先应在开头包含头文件<stdlib.h>

    	#include<stdlib.h>   
    	//(C++建议使用#include<cstdlib>)
    

    2 在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。

    rand()函数没有输入参数,直接通过表达式rand()来引用;例如可以用下面的语句来打印两个随机数:

    	printf("Random numbers are: %i %i\n",rand(),rand
    更多相关内容
  • c语言随机数函数示例

    2020-12-26 10:21:31
    void srand( unsigned int seed );head file is <stdlib>RemarksThe srand function sets the starting point for generating a series of pseudorandom integers. To reinitialize the generator, use 1 as the ...
  • 深入解读C语言随机数函数和如何实现随机数

    多人点赞 热门讨论 2022-07-23 11:26:31
    深入解读C语言随机数函数,和如何用随机数函数产生随机数

    一、rand()函数和srand()函数解读

            ANSIC库提供了rand()函数生成随机数,rand()函数的功能是返回一个范围在0和RAND_MAX(32767)之间的伪随机整数。接下来我们将随机数函数程序编写出来,rand()函数开始于一个“种子”数字,该函数使用该种子生成新的数,这个新数又成为新的种子,新种子可用于生成更新的种子,以此类推。所以随机数函数必须记录它上一次被调用时所使用的种子。这里就需要一个静态变量next。静态变量next的初始值是1,其值在每次调用rand0()函数时都会被修改(通过魔术公式)。该函数是用于返回一个0~32767之间的值。

    下面是可移植版本ANSI的随机数函数程序:

     驱动程序,测试是否生成随机数:

    执行结果如下:

     再次运行程序时,输出如下:

     发现这两次的输出完全相同,这说明了rand()函数是“伪随机”的。因为每次主程序运行的时候,都开始于相同的种子1,所以最后输出的随机数是相同的。这时就需要引入另一个函数srand1()重置种子来解决问题。

    下面是包含rand1()和srand1()函数的文件程序:

     执行程序:


     执行结果:

     可以看出当我们用srand1函数重置种子后,最后两个随机数输出的结果不一样,得到了新的结果。

    二、如何在程序中生成随机数

    自动重置种子: 

           我们刚刚探讨过了rand()函数和srand()函数,所以在程序中要生成随机数需要调用srand()函数重置种子,这就需要给srand()函数传入一直变化的参数,达到真正的生成“随机数”,这就需要用到我们C里的可变的量(时钟系统),可以用来初始化种子的值

           ANSI C有一个time()函数返回系统时间(时间戳,是此刻时间与电脑出生日期的差值,单位为毫秒),返回值是一个可进行运算的类型,而且其值随着时间变化而变化。time()返回值的类型名是time_t,具体类型与系统有关。不过我们可以使用强制转换:

    执行结果:

     

     三、总结

    在C语言库中rand()函数是用来产生随机数的,开始于一个"种子数字",但是因为种子的起点都是1,所以需要用srand()函数来重置起点,但是需要传给srand()函数一个变化的参数,所以这里我们又引入了time()函数,可以用来返回随着时间变化的数值(时间戳),最后就可以用rand()函数产生随机数了。

    三个函数的类型、参数和函数名                                               头文件

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

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

    time_t time(time_t* timer);                                               #include <time.h>

            


     

    展开全文
  • 有一次用random函数生成随机数,发现每次生成的随机数都一样,于是决定学习为什么会一样。 1.rand()函数 (1)头文件为:#include<stdlib.h> (2)随机数范围: 假如你想要产生一个10-100之间的随机数那么 ...

    有一次用random函数生成随机数,发现每次生成的随机数都一样,于是决定学习为什么会一样。
    1.rand()函数
    (1)头文件为:#include<stdlib.h>
    (2)随机数范围:
    假如你想要产生一个10-100之间的随机数那么
    int a=rand%91+1
    (2)产生随机数时,在调用前都会查询是否调用了srand给种子设置了初值,如果没有调用,那么系统会自动给种子赋初值,并且后面种子值保持不变。
    也就是说,如果没有srand函数,而直接调用rand函数,那么每次产生的随机数值相同。
    例如下面这中情况:

    #include<stdio.h>
    #include<stdlib.h>
    int main(){
    	int a;
    	a=rand();
    	printf("%d",a);
    	return 0;
    }
    

    2.srand函数
    多数情况下,我们希望产生的随机数是不同的,所以需要srand函数来初始化种子,让种子值每次不同,这样一来rand产生的随机数也将不同。
    srand((unsigned)time(NULL));是用时间的不同来作为种子产生的依据,时间每时每刻不同,于是种子也会不同,因此随机数不同。
    3.随机数排序(使用冒泡排序)

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #define MAX 20
    void maopao(int array[],int len){//从小到大 
    	int i;
    	int r;//表示第几趟
    	int temp;
    	for(r=0;r<len;r++){
    		for(i=0;i<len-1;i++){
    			if(array[i]>array[i+1]){
    				temp=array[i];
    				array[i]=array[i+1];
    				array[i+1]=temp;
    			}
    		}
    	} 
    	printf("\n排序后为:\n"); 
    	for(i=0;i<len;i++)
    		printf("%d,",array[i]);
    }
    int main(){
    	srand((unsigned)time(NULL));
    	int i,n;
    	int a[MAX];
    	printf("请输入你需要几个数据(不要超过20个):\n");
    	scanf("%d",&n);
    	for(i=0;i<n;i++){
    		a[i]=rand()%101+1;//1-100之间的数 
    	}
    	printf("这%d个数分别为:",n);
    	for(i=0;i<n;i++)
    		printf("%d,",a[i]);
    	maopao(a,n);
    	return 0;
    }
    

    a

    展开全文
  • C语言产生随机数函数

    千次阅读 2022-04-19 21:39:47
    ---生成一个随机数:rand() --- 头文件包含:<stdlib.h> --- 返回值:Rand返回一个随机数 ---备注:rand函数返回一个范围从0到RAND_MAX的伪随机整数。在调用rand之前,使用srand函数为伪随机数生成器播种...

    --- 生成一个随机数:rand() 

    --- 头文件包含:<stdlib.h>

    --- 返回值:Rand返回一个随机数

    ---备注:rand函数返回一个范围从0到RAND_MAX的伪随机整数。在调用rand之前,使用srand函数为伪随机数生成器播种。

    --- 设置一个随机的起点。srand()

    --- 头文件包含:<stdlib.h>

    --- 返回值:没有返回值

    --- 备注:srand函数设置生成随机整数的起始点。要重新初始化生成器,请使用1作为种子参数。任何其他值都会将生成器设置为一个随机的起始点。生成的随机数。在调用rand前,先用srand设定随机数的起点0~32767

    做一个简单的实例:简单书写一个猜数字游!

    主函数部分:

    #include<stdio.h>
    int main()
    {
        srand((unsigned int)time(NULL));   // - time()    ->头文件:<time.h>
        int select = 0;
        do
        {
            Menu();
            printf("请选择=>\n");
            scanf("%d",&select);
            switch (select)
            {
            case 1:
                //printf("玩游戏\n");
                Game();            // - 包含猜数字的整个逻辑的函数
                break;
            case 2:
                printf("游戏退出\n");
                break;
            default :
                printf("输入错误,请重新输入\n");
                break;
            }

        } while (select);
        return 0;
    }

    函数部分:

    void Menu()
    {
        printf("**********************************************\n");
        printf("*************     1-> 猜数字       ***********\n");
        printf("*************     0->  退出        ***********\n");
        printf("**********************************************\n");
    }
    void Game()
    {
        int ret = rand()%100+1;        // - 生成随机数 : 0~32767   ->  取模100计算成1~100数值
        //printf("%d\n",ret);
        int input = 0;
        int guess = 0;
        printf("开始进行猜数字\n");
        while (1)
        {
            scanf("%d", &input);
            if (input > ret)
            {
                printf("猜大了\n");
                guess++;
            }
            else if (input < ret)
            {
                printf("猜小了\n");
                guess++;
            }
            else
            {
                printf("恭喜您猜对了\n");
                printf("您猜错了{%d}次\n",guess);
                break;
            }
        }
    }

    展开全文
  • C语言随机数

    2021-05-24 01:49:08
    C语言函数库中包含了一个产生随机数函数: int rand( void );函数返回的是一个界于0~32767之间的伪随机数,包括0和32767。注意,这里产生的是伪随机数,不是真正意义上的随机数,看下面的程序:#include ...
  • C语言——随机数函数

    2020-12-21 19:44:18
    ANSI C库提供了rand()函数生成随机数。生成随机数有多种算法,ANSC I允许C实现针对特定机器使用最佳算法,在不同系统中生成相同的随机数。实际上,rand()生成的是伪随机数,即可预测接下来要生成的数字,但数字...
  • c语言产生随机数函数

    万次阅读 多人点赞 2020-03-21 15:38:17
    c语言产生随机数函数 rand()函数和srand()函数 在头文件 stdlib.h中 rand()函数返回一个从0~32767之间的随机整数,为了生成区间 [m,n] 之间的整数,可以用公式 rand()%(n-m+1)+m。 例区间:[100,200],随机整数的...
  • C语言中生成随机数函数

    千次阅读 多人点赞 2021-10-17 14:36:37
    文章目录前言一、产生随机数二、具体分析1.rand函数(1)范围(2)对应头文件2.sand函数3.整合总结 前言 本文主要详细介绍如何在C语言中生成随机数。 一、产生随机数 我们先看一个示例:产生一个随机数并在屏幕上...
  • C语言随机数函数( rand() )的使用方法

    万次阅读 多人点赞 2018-04-25 19:49:18
    在程序设计中,难免会使用到随机值函数,其原理与语法大多类似,接下来以C语言为例介绍其随机值函数 rand() 用法。 原理 引用百度百科,首先,需要包含头文件: #include &amp;lt;stdlib.h&amp;gt; ...
  • C语言---随机数函数

    2021-03-24 15:19:24
    常用c函数 drand48 (产生一个正的浮点型随机数) erand48 (产生一个正的浮点型随机数) initstate (建立随机数状态数组) jrand48 (产生一个长整型数随机数) lcong48 (设置48位运算的随机数种子) lrand48 (产生一个正的...
  • C语言中,我们一般使用 头文件中的 rand() 函数来生成随机数,它的用法为:int rand (void);void 表示不需要传递参数。C语言中还有一个 random() 函数可以获取随机数,但是 random() 不是标准函数,不能在 VC/VS ...
  • C语言随机数生成

    2021-05-24 03:54:48
    C语言/C++产生随机数要用到的是rand()函数,srand()函数C语言/C++里没有自带的random(int number)函数。先从程序上去认识吧。#include #include #include #define random(x) (rand()%x)main(){int length, i;int ...
  • C语言随机数的生成【详解】

    万次阅读 多人点赞 2020-06-10 13:39:48
    (rand 函数 srand 函数)(生成范围随机数公式)(随机数实例:选择排序等)
  • 匿名用户1级2013-11-24 回答rand()函数可以用来产生随机数e799bee5baa6e79fa5e98193e4b893e5b19e31333332643334,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个...
  • rand-C语言随机数范围

    千次阅读 2021-11-16 15:23:27
    rand() C语言随机数范围 1.简介 rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。 rand()会返回一个范围在0到RAND_MAX(至少...
  • C语言随机数使用方法

    千次阅读 2021-05-27 04:49:00
    一、使用随机数所需要的头文件和函数:头文件:cstdlib(C++ 的 standard libraray) ctime函数: rand() srand(int seed); time(NuLL);二、随机数的的理解:随机数不是真的随机数,它是通过公式(有很多)计算出来的。...
  • C语言产生随机数是一个常见的编程功能任务,当然这个也不难,调用两三个函数就出来了,但是你知道这些函数具体是起到怎样的作用,并且是它们是如何产生随机数的吗?几个概念随机数:数学上产生的都是伪随机数,真正...
  • C语言生成随机数的方法

    千次阅读 2022-03-25 17:56:12
    以上就是今天要讲C语言生成随机数的内容,包含rand、srand和time函数的使用,希望对刚刚阅读本篇博客的你有所帮助。
  • C语言随机数的使用

    千次阅读 2021-03-10 10:32:03
    头文件中的 rand() 函数来生成随机数,它的用法为: int rand (void); 【示例】13~63 范围内随机数 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int a; srand(...
  • 1.介绍 rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。RAND_MAX用来指明 rand() 所能返回的...但在C语言中rand()函数生产的随机数并不是真正意义上的随机,所以这个随机数也被人们叫做伪随机数。我们在使...
  • 下面的取模操作正好体现了这一点(生产的随机数范围0~32767*/ int myrand(void) { //next的递归公式(知道前一个next就知道响铃next的取值,进而全序列的值都可以知道) next = next * 1103515245 + 12345; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,063
精华内容 11,225
关键字:

c语言随机数函数