当前位置: 首页 > news >正文

c语言随机数

写得我自己都看不好了:大家都比较喜欢吃快餐,只需要尽快告诉读者怎么用起来就行了。不想听啰啰嗦嗦说一堆,然后例程还特别麻烦

so:

 1、基本

int seed = time(0);//#include <ctime>

srand(seed);

int myRandom = rand(); 

 

//就这三行就得到了一个 随机数,其他的 都不属于随机数的范畴,举个随机数的例子还要看数组,这说明这个 笔记做的是在不咋好。

2、然后是生成指定范围的数字:

如何生成一个随机数i,使得0<=i<20?

如何生成一个随机数i,使得 10<=i<20?

如何生成一个随机数i,使得 10<=i<=50?

int seed = time(0);

srand(seed);

int i1 = rand()%20;

int i2 = rand()%10+10;

int i3 = rand()%10+40;

 

3、解释原因

这个有点儿坑,每次结果都是一样的,说好的随机根本不随机。其实 随机数本身也是通过计算得到的,每一次都是通过随机数种子计算得到的。如果随机数种子不同那么计算出来的随机数就不同,而产生随机数种子的函数同样在 stdlib.h 里面,函数是:srand().

【此部分代码在function1()里面】

我们需要给随机数种子每次以不同的值,然后就能得到不同的随机数了,但是还有一个弊端。种子怎么才能得到不同的值。那我们知道时间每时每刻都不相同,所以如果能用时间给到随机数种子里面,那么每次得到的结果必然是不相同的。

得到

 

这个结果就比较好了。

 

下面源代码。

 

 

#include <iostream>
#include <stdlib.h>
#include <time.h>
/**
    rand() 来自 stdlib.h 文件 
*/
void function1(void);
void function2(void);
//int[] makeArray(int array[]);//怎么返回int类型的数组? 
void display(int array[]); 
int main() {
    function1();
    function2();
    return 0;
}
void function2(void){
    int array[10];
    int randomseed = (int) time(NULL);//包含在time.h里面 
    //返回当前时间,是time类型需要强制类型转换成int类型。
    srand(randomseed);
    for(int i=0;i<10;i++){
        array[i]=rand();
    }
    display(array);
}
void function1(void){
    //我们利用 rand() 来产生随机数:
    int array[10];
    for(int i=0;i<10;i++){
        array[i]=rand();
    }
    display(array);
}

void display(int array[]){
    for(int i=0;i<10;i++){
        printf("array[i]=%d ",array[i]);
        if((i+1)%5==0){
            printf("\n");
        }     
    }
}
    

 

 

转载于:https://www.cnblogs.com/letben/p/5210120.html

相关文章:

  • 混合使用Azure LB和ILB访问相同web服务(3)
  • git服务器修改ssh端口后配置方法
  • POJ 1005 I Think I Need a Houseboat
  • compileDebugJavaWithJavac
  • OSI七层与TCP/IP四层模型
  • 3-9-模拟银行排队过程-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版...
  • 《从零开始学Swift》学习笔记(Day 24)——枚举(Day 24)——枚举
  • 日志管理
  • 初探验证码识别
  • HttpClient4.5教程-基础 1.1
  • Spring的IoC容器(转)BeanFactory
  • 最短路问题------分别用深搜和广搜去解题
  • linux ps 查看耗cpu高的线程
  • LVS-NAT 模式配置
  • 堆内存与栈内存
  • [译]前端离线指南(上)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【刷算法】求1+2+3+...+n
  • 08.Android之View事件问题
  • eclipse(luna)创建web工程
  • gitlab-ci配置详解(一)
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java反射-动态类加载和重新加载
  • Js基础知识(一) - 变量
  • linux学习笔记
  • markdown编辑器简评
  • php的插入排序,通过双层for循环
  • Protobuf3语言指南
  • React 快速上手 - 07 前端路由 react-router
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Spring声明式事务管理之一:五大属性分析
  • spring学习第二天
  • Vim Clutch | 面向脚踏板编程……
  • Vue 2.3、2.4 知识点小结
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 百度小程序遇到的问题
  • 初识MongoDB分片
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 记一次删除Git记录中的大文件的过程
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端路由实现-history
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 全栈开发——Linux
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 我的业余项目总结
  • 一个完整Java Web项目背后的密码
  • 智能合约Solidity教程-事件和日志(一)
  • FaaS 的简单实践
  • MPAndroidChart 教程:Y轴 YAxis
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #《AI中文版》V3 第 1 章 概述
  • #laravel 通过手动安装依赖PHPExcel#
  • (¥1011)-(一千零一拾一元整)输出
  • (2020)Java后端开发----(面试题和笔试题)