C++生成-1到1的随机数
目录
- 一、方法一
- 1、主要函数
- 2、示例代码
- 二、方法二
- 1、方法概述
- 2、参考文献
- 3、示例代码
- 三、方法三
- 1、参考链接
- 2、示例代码
本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。
一、方法一
1、主要函数
rand()
函数是C++标准库中的一个伪随机数生成器,它返回一个在0到RAND_MAX
之间的整数,其中RAND_MAX
是一个常量,通常定义为32767。由于rand()
函数生成的随机数序列是固定的,因此在使用rand()
函数之前,通常需要调用srand()
函数初始化随机数种子。
srand()
函数接受一个无符号整数作为参数,用于初始化随机数种子。通常可以使用当前时间作为随机数种子,如下所示:
#include <cstdlib>
#include <ctime>int main() {srand(time(NULL)); // 使用当前时间作为随机数种子int x = rand(); // 生成一个随机数return 0;
}
上面的代码中,srand(time(NULL))
调用了srand()
函数初始化随机数种子。time(NULL)
返回当前时间,因此每次运行程序时,随机数种子都不同。这样就可以生成不同的随机数序列。
如果要生成一个指定范围内的随机整数,可以使用取模运算符(%)将rand()函数的返回值对范围大小取模。例如,要生成一个0到99之间的随机整数,可以这样写:
int x = rand() % 100;
上面的代码中,rand() % 100调用了rand()函数生成一个随机整数,并对100取模,得到一个0到99之间的随机整数。
如果要生成一个指定范围内的随机浮点数,可以这样写:
double x = (double)rand() / RAND_MAX * (max - min) + min;
其中,min
和max
分别表示随机数的最小值和最大值。上面的代码中,(double)rand() / RAND_MAX * (max - min) + min
调用了rand()
函数生成一个随机整数,并将其转换为浮点数。然后除以RAND_MAX
得到一个0到1之间的随机浮点数。最后乘以(max - min)
并加上min
得到一个在指定范围内的随机浮点数。
2、示例代码
std::nth_element()
二、方法二
1、方法概述
由于测量误差可以是正的,也可以是负的,为了使构造的测量误差更符合于实际,则必须在(-1,1)之间产生一组随机数。为此,把产生的(0,1)之间的随机数先扩大10倍或100倍,然后取整得到正整数z,把z值作为-1的指数,再与产生的(0,1)间的随机数相乘,这样就可以通过计算机得到(-1,1)之间的均匀分布的随机数值,再用产生的随机数乘上一个可能出现误差的限值,就构成了测点上可能出现的测量误差值来。
2、参考文献
[1]成枢. 地面沉降变形预计模型与监测技术研究[D].山东科技大学,2005.
3、示例代码
#include <iostream>
#include <ctime>using namespace std;int main()
{int a = 0, b = 2;//区间(a,b]srand((unsigned int)time(NULL)); // 随机数种子,保证每次运行产生不同的随机数序列for (int i = 0; i < 10; ++i){float r01 = rand() / float(RAND_MAX); // 生成0~1的随机数int z = r01 * 100;float d = pow(-1, z) * r01;cout << d << endl;}return 0;
}
三、方法三
1、参考链接
C++:生成-1到1之间的随机浮点数
2、示例代码
#include <iostream>
#include <ctime>using namespace std;int main()
{int a = 0, b = 2;//区间(a,b]srand((unsigned int)time(NULL));//随机数种子,保证每次运行产生不同的随机数序列for (int i = 0; i < 5; i++){int t; //随机整数1、2,用于控制随机浮点数的正负float d; //[-1,1]间的随机数t = rand() % (b - a) + a + 1; d = pow(-1, t)*rand() / float(RAND_MAX); //生成[-1,1]之间的随机浮点数cout << d;cout << endl;}return 0;
}
相关文章:
C++生成-1到1的随机数
目录 一、方法一1、主要函数2、示例代码 二、方法二1、方法概述2、参考文献3、示例代码 三、方法三1、参考链接2、示例代码 本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、方法一 1、主要函数…...
React-Hooks 和 React-Redux
注:Redux最新用法参考 个人React专栏 react 初级学习 Hooks基本介绍------------------------- Hooks:钩子、钓钩、钩住, Hook 就是一个特殊的函数,让你在函数组件中获取状态等 React 特性 ,是 React v16.8 中的新增功…...
虚拟机下载与Ubuntu安装
下载VMware 进入官网资源 -> 产品下载 -> Desktop & End-User Computing选择 VMware Workstation Pro 这一栏,点击右边的下载产品,跳到新页面选择版本(我选的是 16.0),然后点击下面对应系统的转至下载&…...
【小数点】C#使用Math.Round方法保留指定小数点位数,并且整数也同样保持统一的2位
2023年,第38周。给自己一个目标,然后坚持总会有收货,不信你试试! 在实际开发项目中,特别是涉及金额之类的字段,一般都会用到小数,有些是保留1、2、3小数点。 本篇文章主要简单讲讲,如…...
Android多种方法获取系统属性
这里使用获取rga版本为例 1,使用sh脚本方法 sh的编写 echo $(getprop vendor.rga_api.version) 其中,vendor.rga_api.version是关键字 相关方法也有两种,一种是从sh脚本读取流,一种是指令很少的,直接读取字符串化…...
密码学【一】
前言 在区块链的整个体系中大量使用了密码学算法,比如用于 PoW 的哈希算法,用于完整性验证的 Merkle Tree,用于交易签名与验证的数字签名算法,用于隐私保护的零知识证明等等。 可以说密码学是保证区块链安全的基石,而区…...
企业如何选择舆情优化处置公司?
随着互联网的发展成熟,网络上的信息量已经非常之巨大,网络上的海量信息有对企业有利的,其实也有一些企业经营不利的,让不利的信息下沉,让有利的信息排上搜索首页,这就是舆情优化的简单表述。 对于大中型企业…...
HBASE知识点
HBASE是什么? 高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库。利用HDFS作为其文件存储系统,利用MapReduce来处理HBase中的海量数据。利用Zookeeper作为其分布式协同服务。用于存储非结构化和半结构化的松散数据。 HBase数据模型 RowKey: 唯…...
Python新手入门
文章目录 概要python代码运行结果小结 概要 以下内容为python各种输出语句的语法! python代码 # 标准化输出 print("这是标准化输出!")# 格式化输出 print("这是第1种%s"%"格式化输出!") print("这是第…...
vite + react + typescript + uni-app + node 开发一个生态系统
简介 使用 vite react typescript uni-app node 来开发一个简易的生态系统案例,包含 APP,H5,微信小程序,控制台,服务端 开发 admin 技术栈:vite react typescript初始化控制台项目选择自定义预设…...
python pdf文件转图片
在Python中,有很多的第三方库可以用于PDF文件的转换,比如PyPDF2和pdf2image。 其中PyPDF2可以从PDF文件中提取每一页并将其保存为图像文件,需要安装Pillow库。 pdf2image则直接将PDF文件转换为PNG或JPEG图像文件,可以使用ImageM…...
牛客: BM7 链表中环的入口结点
牛客: BM7 链表中环的入口结点 文章目录 牛客: BM7 链表中环的入口结点题目描述题解思路题解代码 题目描述 题解思路 用一个哈希表存储链表节点,遍历链表,将节点加入哈希表,如果该节点在哈希表中出现过,意味着该节点是入口节点 题解代码 package mainfunc EntryNodeOfLoop(p…...
SpringMVC系列(七)之自定义注解
目录 一. Java注解简介 1.1 Java注解分类 1.2 JDK基本注解 Override Deprecated SuppressWarnings 1.3 JDK元注解 从 Java 7 开始,额外添加了 3 个注解: 1.4 自定义注解 如何自定义注解? 二. 自定义注解示例 枚举类: 示例一&…...
MongoDB的搭建 和crud操作
MongoDB docker 下载 docker run --restartalways -d --name mongo -v /docker/mongodb/data:/data/db -p 27017:27017 mongo:4.0.6使用navcat工具使用MongoDB Crud操作 jar包 <dependency><groupId>org.projectlombok</groupId><artifactId>lom…...
软件设计师考试学习1
前言 计算机组成原理及体系结构 数据的表示 进制的转换 原码反码补码移码 最高位是符号位,负数符号位为1 反码补码正数和原码一样,负数有区别 反码符号位不动,其他位置取反 补码在反码基础上加1 移码是将补码的符号为取反 在原码和反码中…...
【云计算】虚拟私有云 VPC
虚拟私有云 VPC 1.前言1.1 基本介绍1.2 VPC 的作用1.3 VPC 的适用人群 2.VPC 基本概念2.1 VPC 相关基本概念2.2 其他相关基本概念 3.VPC 通信场景3.1 VPC 内部互通3.2 VPC 间互通3.2.1 对等连接3.2.2 Transit Gateway 或者云联网 3.3 访问 Internet3.3.1 Internet 网关3.3.2 NA…...
@EventListener 监听事件 ,在同一个虚拟机中如何保证顺序执行
文章目录 前言EventListener 监听事件 ,在同一个虚拟机中如何保证顺序执行1. 设计原理2. 具体编码2.1. 编码事件监听器2.2. 制作一个生成序号方法2.3. 制作测试代码2.4. 测试结果 前言 如果您觉得有用的话,记得给博主点个赞,评论,…...
数据结构入门 — 树的概念与结构
本文属于数据结构专栏文章,适合数据结构入门者学习,涵盖数据结构基础的知识和内容体系,文章在介绍数据结构时会配合上动图演示,方便初学者在学习数据结构时理解和学习,了解数据结构系列专栏点击下方链接。 博客主页&am…...
linux驱动开发day6--(epoll实现IO多路复用、信号驱动IO、设备树以及节点和属性解析相关API使用)
一、IO多路复用--epoll实现 1.核心: 红黑树、一张表以及三个接口、 2.实现过程及API 1)创建epoll句柄/创建红黑树根节点 int epfdepoll_create(int size--无意义,>0即可)----------成功:返回根节点对应文件描述符…...
9月15日作业
Qt代码 #include "mywnd.h"//构造函数的定义 mywnd::mywnd(QWidget *parent): QWidget(parent) //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作 {//窗口设置this->resize(QSize(500, 433));this->setWindowTitle("Widget&quo…...
关于Java多线程的那些事
多线程 多线程1. 关于多线程的理解1.1 进程和线程1.2 并行和并发1.3 线程调度 2. 创建多线程的方式创建线程有哪几种方式?2.1 通过继承Thread类来创建并启动线程的步骤如下:2.2 通过实现Runnable接口来创建并启动线程的步骤如下:2.3 通过实现…...
信息化项目验收的依据、内容和验收测评报告
随着信息系统业务覆盖率的提高和深度整合创新的逐步提高,信息系统运行阶段的复杂性和资源比例逐渐增加。一方面,信息已成为业务创新、技术应用和运营服务的综合体,而不仅仅是技术平台建设。另一方面,信息采购是技术平台建设。另一…...
解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性
问题场景 IDEA执行mvn clean package -DskipTesttrue命令或者借助工具的Maven菜单进行打包操作,然后执行java -jar app.jar命令后,提示jar中没有主清单属性 D:\WorkSpace\demo\target>java -jar demo-SNAPSHOT.jar demo-SNAPSHOT.jar中没有主清单属性…...
Python--文件和异常
目录 1、读取文件 1.1 读取文件的全部内容 1.2 相对路径和绝对路径 1.3 访问文件中的各行 1.4 使用文件中的内容 1.5 包含100万位的大型文件 1.6 圆周率中的生日 2、写入文件 2.1 写入一行 2.2 写入多行 3、异常 3.1 处理ZeroDivisionError 异常 3.2 使用try-exce…...
IDEFICS 简介: 最先进视觉语言模型的开源复现
我们很高兴发布 IDEFICS ( Image-aware Decoder Enhanced la Flamingo with Ininterleaved Cross-attention S ) 这一开放视觉语言模型。IDEFICS 基于 Flamingo,Flamingo 作为最先进的视觉语言模型,最初由 DeepMind 开发,但目前尚未公开发布…...
玩转Mysql系列 - 第20篇:异常捕获及处理详解
这是Mysql系列第20篇。 环境:mysql5.7.25,cmd命令中进行演示。 代码中被[]包含的表示可选,|符号分开的表示可选其一。 需求背景 我们在写存储过程的时候,可能会出现下列一些情况: 插入的数据违反唯一约束ÿ…...
一些工具类
1、字符串处理工具类 1.1、StrUtils package com.study.java8.util;/*** Classname:StrUtils* Description:字符串工具类* Date:2023/9/9 9:37* Author:jsz15*/import org.apache.commons.lang.text.StrBuilder; import org.apa…...
20230916后台面经整理
1.面对抢优惠券这样的高负载场景,你从架构、负载均衡等方面说一下你的设计? 答了参考Nginx进行负载均衡,然后在每台服务器怎么怎么弄(架构每一层怎么设计) 参考https://toutiao.io/posts/6z3uu2m/preview,h…...
如何通过快解析测试接口内外网?本地内网ip让外网访问连接
接口调试测试是网络技术员经常工作内容之一。如在公司内部api项目webserver测试,在公司内办公室个人电脑是正常用内网IP访问连接测试的,但在外网电脑需要远程测试时需要怎么测试呢?这里提供一种内网地址让外网访问的通用方法:快解…...
用c++实现五子棋小游戏
五子棋是一款经典小游戏,今天我们就用c实现简单的五子棋小游戏 目录 用到的算法: 思路分析 定义变量 开始写代码 完整代码 结果图: 用到的算法: 合法移动的判断:isValidMove 函数通过检查指定位置是否在棋盘范…...
洛阳网站建设哪家权威/sem培训班学费哪个好
javascript是一种基于对象的语言,但它没有类的概念,所以又和实际面向对象的语言有区别,面向对象是javascript中的难点之一。现在就我所理解的总结一下,便于以后复习: 一、创建对象 1、创建自定义对象最简单的方式就是创…...
一个企业做网站推广的优势/百度导航官网
1.新建Gui工程,在主界面上添加一个标签label,并设置其显示内容为“0000-00-00 00:00:00 星期日”。2.在mainwindow.h中添加槽函数声明。private slots:void timerUpDate();3.在mainwindow.cpp中添加代码。添加#include 的头文件包含,这样就包…...
做电影网站技术/百度快速seo软件
第1关:使用K近邻算法进行分类 任务描述 本关任务:编写一个能使用K近邻算法进行简单的二分类的小程序。 相关知识 为了完成本关任务,你需要掌握: 什么是K近邻算法 在sklearn中如何使用K最近邻算法 什么是K最近邻算法 在许多机器学习相关的书籍当中,最开始被介绍的算法很…...
东营seo网站建设费用/营销策划与运营公司
当用户退出的时候,清除redis中token,其实很简单 我直接在oauth服务中新建一个接口 RestController RequestMapping("/authentication") public class UserController {AutowiredQualifier("consumerTokenServices")private Consume…...
html主页面模板/seo推广关键词公司
互动直播、线上会议、在线医疗和在线教育是实时音视频技术应用的重要场景,而这些场景对高可用、高可靠、低延时有着苛刻的要求,很多团队在音视频产品开发过程中会遇到各种各样的问题。例如:流畅性,如果在视频过程中频繁卡顿&#…...
三级分销网站建设报价方案/seo代做
这篇文章主要介绍了python批量提取图片信息并保存的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧程序运行环境code# -*- coding:utf-8 -*-# ----------------…...