Linux C语言生成随机数

本文主要介绍2个函数:rand()和srand();

1.rand()函数

    是产生随机数的一个随机函数:

#include <stdlib.h>

int rand(void);

return value: 

    为一个随机数值,范围咋0至RAND_MAX之间(定义在stdlib.h,如下)

    /* The largest number rand will return (same as INT_MAX).  */

    #define RAND_MAX        2147483647


/*******************************************
*  @FileName    :       rand.c
*  @Description :       产生1到255的随机数
*  @Editor      :       tobiu
*  @Date        :       2018-04-06 13:38
********************************************/

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    int i = 0;
    printf("[%d %s %s] rand : ",__LINE__,__FUNCTION__,__FILE__);
    for(i=0;i<10;i++)
    {   
        printf("%d ",rand()%254+1);//%254对数取余就会生成0-254的数值,+1数值就会加1,最终生成的范围是:1-255.
    }   
    printf("\n");

    return 0;
}

    结果:

    

    随机数每次生成一样的,原因:未设置seed。在调用该函数之前,必须先利用srand()设好随机数种子。如果未设置随机数种子,rand()在调用时会自动设随机数种子为1,导致生成的随机数每次运行的结果是相同的;

2.srand()函数

    随机数发生器的初始化函数。

#include <stdlib.h>

void srand(unsined int seed);

    seed必须是个整数,通常可以利用geypid或time(NULL)的返回值当做seed。如果每次seed都设相同值,那么rand所产生的随机数值都是一样的。

/*******************************************
*  @FileName    :       rand.c
*  @Description :       产生1到255的随机数
*  @Editor      :       tobiu
*  @Date        :       2018-04-06 13:38
********************************************/

#include<stdio.h>
#include<stdlib.h>
#include <time.h>

int main(void)
{
    int i = 0;
    srand((unsigned int)time(NULL)); 
    printf("[%d %s %s] rand : ",__LINE__,__FUNCTION__,__FILE__);
    for(i=0;i<10;i++)
    {   
        printf("%d ",rand()%254+1);
    }   
    printf("\n");

    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值