生成指定范围内的随机数函数(C语言实现)_lnjoy的博客-程序员ITS301

技术标签: 算法  c语言学习  

C语言stdlib库中的rand()函数,用于返回一个随机数。

但是如果不指定随机数种子的话,种子总是会被设置为一个固定的值,导致每次得到的随机数序列都是相同的。

因此可以使用time(0)获取当前时间,并作为随机数种子,使得随机数种子总是不同,因此随机数序列也不相同。

 

使用rand()返回值与rand最大值的比值,与区间大小相乘,得到目标区间中相对应的随机数。

 

代码如下:

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

int RandInRange(int range_min, int range_max)  //得到区间[min,max)中的随机数
{
	return ((double)rand() / (RAND_MAX)) * (range_max - range_min) + range_min;
}


int main(void)
{
	srand((unsigned)time(0));  //使用当前时间作为随机数种子
	for (int i = 0; i < 10; i++) {
		printf_s("%d\n", RandInRange(1,50));
	}

	return 0;
}

 

如果不使用时间作为种子的话,总是会输出如下结果:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43531895/article/details/103321866

智能推荐

win10+Python3.7+dlib19.14实现64点人脸建模_Sakura小神晶的博客-程序员ITS301_pytho 人脸64点

毕业设计是AR相机实现三维人脸建模,在稍微了解了一下以后,发现用Python+dlib来实现人脸特征点采样是比较方便的,于是激情满满动手做起来。然而,win10环境下Python添加dlib库真的是十分不友好,弄了两天才算是弄好了。先记录一下,自己这段时间也不算是白花了o(╥﹏╥)o本来想用anaconda来给Python加载dlib,但在尝试之后没有成功。(难道是Python3.7开始不支持p...

解决xshell评估过期的问题_玩转测试开发的博客-程序员ITS301_xshell评估过期

**简介:**xshell是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议,可以在Windows界面下用xshell来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的,但是我们有时候会遇到评估期过期的问题。解决办法:1、登录网站:https://www.netsarang.com/zh/all-downloads/2、选择下载 - 家庭学校免费3、针对必选项,勾选自己所需软件,填写自己的邮箱和姓名4、到填写

树莓派入坑笔记_萍水相逢敌泛泛之交的博客-程序员ITS301

一、安装树莓派官方操作系统Raspbian-stretch步骤:准备好SD卡(大小一般16GB及以上)准备SD卡的读卡器准备树莓派的镜像:链接:https://pan.baidu.com/s/1eI3P8-Kbq1nMZDVOXw9xNA提取码:64tqSD卡格式化工具SD FormatterSD卡镜像(操作系统)烧录软件:Win32DiskImager或balena-etcher1.格式化软件:SDFormatter官网连接SDFormatter或者我的网盘链接:https:..

Android性能优化---Trace工具分析代码(application)执行时间_文艺范的世界的博客-程序员ITS301_tracerecoord application

前言:我们的App项目一般都会有application类,而且我们一把都会在这个类中做很多程序的初始化操作,比如:推送初始化,网络请求Okhttp等等,这些一般我们都会写在这个类中,但是如果我们在这个类中执行较多的初始化操作时,无形之中就加重了App启动时间,让我们的App启动时间延长,那我们就要分析这里面哪一个耗时最长呢?今天我们来做个分析。1、添加代码:首先在application的o...

mysql恢复数据 binlog_Mysql 通过binlog日志恢复数据_乐知网孙敏的博客-程序员ITS301

Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据1,登录mysql查看binlog日志的状态,输入show variables like ‘%log_bin%’;查看binlog为off关闭状态2,开启mysql binlog日志,进入...

ubuntu python3 pip报错SyntaxError: invalid syntax_海棠茶语的博客-程序员ITS301

经历python3执行python脚本import cv2报错,发现原因是指定的python2.7目录下的cv2,后来为了在安装python3版本的opencv,安装了pip3,结果安装opencv报错,然后升级了pip3,然后pip的所有指令都不能用了。。。一直报错Traceback (most recent call last): File "/usr/bin/pip3", line 11, in &lt;module&gt; sys.exit(main()) File "/home

随便推点

springboot2.0 kafka 收发消息_yy1209357299的博客-程序员ITS301

pom依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.kafka&lt;/groupId&gt; &lt;artifactId&gt;spring-kafka&lt;/artifactId&gt;&lt;/dependency&gt;application.propertiestopic=testspring.kafka.bootstrap-servers=kafka--ip:9092spring.kafka.c.

vim 显示行号 (Linux)_Warren_0611的博客-程序员ITS301_vim 显示行号

Vim 是软件开发人员和Linux系统管理员使用的文本编译器。默认情况下Vim 是不显示行号的,不过不影响使用Vim,这里只简单说一个设置行号的方法。1、进入这个 /etc/vim 系统文件夹2、使用命令 sudo vim vimrc 打开vimrc,在文件末尾添加 set number3、命令模式下 :wq 保存退出就可以了4、就有行号了...

主成分分析(PCA)和线性判别分析(LDA)原理简介_kuweicai的博客-程序员ITS301_pca和lda

本文整理自下面的博客,对PCA和LDA的原理进行介绍,并对比了其不同点。1).主成分分析(PCA)原理详解2).线性判别分析LDA与主成分分析PCA3). PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别4).什么时候使用PCA和LDA?5).PCA的数学原理6).Dimensionality Reduction——LDA线性判别分析原理篇7).主成分分析...

pg预热插件pg_prewarm_Hehuyi_In的博客-程序员ITS301_pg_prewarm

PostgreSQL内核中引入了一个很有意思的插件,pg_prewarm。可以用于在系统重启时,手动加载经常访问的表到操作系统的cache或PG的shared buffer,从而减少检查系统重启对应用的影响。这个插件通过以下patch加入PG内核https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=c32afe53c...

抽象方法、接口、继承、多态、图形计算器_谭小瞎的博客-程序员ITS301

//抽象方法------------------------------abstract Person.class.php <?php //抽象类和抽象方法abstract class Person{ public $name; //定义抽象方法 abstract function say(); function walk(){ }}

shell脚本编程Makefile的编写,让你的代码编译链接更加快速_CAccept的博客-程序员ITS301

文章目录为什么要使用MakefileMakefile的编写Make 工作原理Makefile的规则:为什么要使用Makefile简单来说,当我们写一个稍微大一些项目的时候,如果我们要执行一个程序那得编译很多个文件并且还得链接起来,如果没有Makefile我们就得一个一个编译一个一个链接那真的是又臭又长(而且还会经常写错),而Makefile就能够很好的解决这个问题,所以说掌握好Makefile的编写是很有必要的Makefile的编写程序的编译和链接使用C、C++编写可执行程序,首先要把源

推荐文章

热门文章

相关标签