如何生成一个位于[-1, 1]之间的随机浮点数

2024-06-15 18:08

本文主要是介绍如何生成一个位于[-1, 1]之间的随机浮点数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天在博客的评论区被一个网友问到了该如何生成一个位于[-1, 1]之间的浮点数。开始看到这个问题我有点儿懵了。很久没写过代码的我感觉一时间想不起来以前类似问题的处理方式了。后来逐渐地回想起来,故这里来记录一下。阅读本篇之前推荐阅读np.random.random()和 np.random.random_sample()是一致的(超链接点击跳转)。

解决思路
首先numpy模块中的np.random.random()np.random.random_sample()函数生成的均是位于半开半闭区间[0, 1)之间的浮点数。因此如果我们先对该函数的结果乘以2,就可以得到位于半开半闭区间[0, 2)之间的浮点数。 然后再向左平移一个单位就可以得到位于半开半闭区间[-1, 1)之间的浮点数了。请看如下代码:

import numpy as nparray = -1 + 2 * np.random.random((3, 3))
print(array)
"""
[[ 0.11504118 -0.90703551  0.89904515][-0.01701258  0.36016338 -0.28436574][ 0.15276044 -0.83398664 -0.45870966]]
"""

可以看到所有地输出结果均符合我们预先的假设。那么这里可能有一些比较较真的人就会说,你这个是半开半闭区间,而我要的是[-1, 1],你这个函数取不到1啊。那我不得不回答是的,然而在使用随机数的时候,随机数上限只是一个点,比如这里的1,在你的程序运行的过程中能随机取到这个点的概率极小,因此对你的模拟结果并不会造成很大的影响,因此,这个问题在某种意义上可以被忽略。这也是numpy的开发人员在取随机浮点数时只设计了半开半闭区间的原因。相反,如果要随机取某一个区间上的整数,那么两端均是闭合区间就会被考虑。实际中也可以通过numpy.random.random_integers()函数实现。

如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~

这篇关于如何生成一个位于[-1, 1]之间的随机浮点数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064187

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点