前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C/C++——生成随机数

C/C++——生成随机数

作者头像
felixzhao
发布2018-03-14 16:25:38
1.1K0
发布2018-03-14 16:25:38
举报
文章被收录于专栏:null的专栏

1、不指定范围的随机数

在C/C++中,产生随机数需要使用到函数srand()函数和rand()函数。在C语言中,srand()函数和rand()函数都是定义在

2、在指定范围内生成随机数

2.1、生成在指定区间start~end之间的随机整数:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int Random(int start, int end){
    int dis = end - start;
    return rand() % dis + start;
}

int main(){
    int a[10];
    int i = 0;
    srand((unsigned)time(NULL));
    for (i = 0; i < 10; i++){
            a[i] = Random(2, 7);
    }

    for (i = 0; i < 10; i++){
            printf("%d ", a[i]);
    }
    printf("\n");

    return 0;
}

2.2、生成0~1之间的随机数

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
    double a[10];
    int i = 0;
    srand((unsigned)time(NULL));
    for (i = 0; i < 10; i++){
            a[i] = rand() / (RAND_MAX + 1.0);
    }

    for (i = 0; i < 10; i++){
            printf("%f ", a[i]);
    }
    printf("\n");

    return 0;
}

2.3、生成指定区间start~end上的随机浮点数:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

double Random(int start, int end){
    int dis = end - start;
    printf("dis: %d\n", dis);
    return start + dis * (rand() / (RAND_MAX + 1.0));
}

int main(){
    double a[10];
    int i = 0;
    srand((unsigned)time(NULL));
    for (i = 0; i < 10; i++){
            a[i] = Random(2,4);
    }

    for (i = 0; i < 10; i++){
            printf("%lf ", a[i]);
    }
    printf("\n");

    return 0;
}

3、不使用内置随机数函数的生成方法

主要方法:生成一个很大的数,通过截断的方法生成随机数

代码语言:javascript
复制
#include <stdio.h>

int main(){
        unsigned long long next_random = 1;
        for (int i = 0; i < 30; i ++){
                next_random = next_random * (unsigned long long)25214903917 + 11;
                fprintf(stderr, "%f\n", (((next_random & 0xFFFF) / (float)65536) - 0.5));
        }
        return 0;
}      
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、不指定范围的随机数
  • 2、在指定范围内生成随机数
    • 3、不使用内置随机数函数的生成方法
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档