社区首页 >问答首页 >如何在一个范围内生成一个随机数,这个随机数可以是正数,也可以是负数。

如何在一个范围内生成一个随机数,这个随机数可以是正数,也可以是负数。
EN

Ask Ubuntu用户
提问于 2021-02-23 07:24:29
回答 2查看 953关注 0票数 -2

这个问题与bash、像Ubuntu一样的Linux、/dev/随机和/dev/urandom有关。

如何在bash上通过/dev/urandom在一个范围内生成一个可以是正数或负数的随机数?

已知如下:

下面是一个未搜索的解决方案的示例,它可以在bash上的一个范围内完成,通过没有搜索的函数“随机”,并且只在一个正的范围内。

代码语言:javascript
代码运行次数:0
复制
min=1
max=1000
rnd_count=$(( RANDOM % ( max - min + 1 ) + min ))
echo $rnd_count

一个部分的解决办法是通过在正的范围上随机产生一个随机数或在正的范围上产生一个随机数,如何在正和负的范围上产生随机数,这是我所不知道的。也不是纯粹的巴什。一个纯粹的bash解决方案是需要的。

echo "$(od -An -N4 -tu4 /dev/urandom) % 15 + 1" | bc

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2021-02-23 09:19:13

我能想到的最简单、最干净的方法就是你的问题中已经有了什么:

代码语言:javascript
代码运行次数:0
复制
min=-100; max=1; rnd_count=$(( RANDOM % ( $max - $min + 1 ) + $min )); echo $rnd_count

您可以轻松地将其转换为一个函数:

代码语言:javascript
代码运行次数:0
复制
getRand(){
    min="${1:-1}"   ## min is the first parameter, or 1 if no parameter is given           
    max="${2:-100}" ## max is the second parameter, or 100 if no parameter is given
    rnd_count=$((RANDOM % ( $max - $min + 1 ) + $min )); ## get a random value using /dev/urandom
    echo "$rnd_count"
}

如果您将这些行粘贴到您的终端中,或者将它们添加到您的~/.bashrc文件中并打开一个新的终端,那么现在可以这样做:

代码语言:javascript
代码运行次数:0
复制
$ getRand -5 5
-3

这给出了-55之间的随机数。

票数 2
EN

Ask Ubuntu用户

发布于 2021-06-28 15:08:31

你可以按以下方式做:

代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

get_rnd_num_eq_dis(){ # max Zahlenbereich 0 - 32767
    min="${1:-1}"   ## min is the first parameter, or 1 if no parameter is given           
    max="${2:-100}" ## max is the second parameter, or 100 if no parameter is given
     srnd="$((0x$(dd if=/dev/urandom of=/dev/stdout bs=4 count=1 status=none | xxd -p)))" # SRANDOM Nachbau

    rnd_count=$(( srnd % ( max - min + 1 ) + min ));
    
    echo "$rnd_count"
}

ug=-1000 # untere Grenze
og=1000 # obere Grenze 

var="$(get_rnd_num_eq_dis $ug $og)" # Call the function
echo "$var" # output

sleep 2
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1318689

复制
相关文章
Linux在windows上共享目录
一、linux安装samba yum -y install samba 二、备份配置文件 cp /etc/samba/smb.conf /etc/samba/smb.conf.backup 三、添加访
静谧星空TEL
2021/04/27
4.4K0
Linux在windows上共享目录
在Windows系统上的Linux容器
ghplvh
2018/01/09
4.9K0
在 Linux or windows 上后台运行服务
  此时可以访问 http://ip:8000 验证服务是否成功启动了(详细操作见另一篇文章-Python 一行搭建文件服务器)
我是胖虎啊
2022/06/27
3.2K0
在 Linux or windows 上后台运行服务
在Windows上搭建Go开发环境
在Windows上搭建Go开发环境
乐百川
2018/01/09
1.5K0
在Windows上搭建Go开发环境
BML CodeLab重磅更新:在Windows上可原生Linux AI开发
自从微软发布 WSL2(Windows Subsystem for Linux 2)之后,机器学习开发者、数据科学家就可以在 Windows 上做原生 Linux 开发了。
用户1386409
2021/03/09
1.2K0
BML CodeLab重磅更新:在Windows上可原生Linux AI开发
Linux的GUI程序在Windows上使用
一,在linux机上安装xorg-x11-xauth 如果没装,启动GUI程序会提示Canno open display。 方法: yum install xorg-x11-xauth 二、打开linux服务器的sshd的X11转发功能: vi /etc/ssh/sshd_config 配置: X11Forwarding yes 三、在Windows客户端上安装X11 Server程序 Xming是运行于Windows下的X 服务器,下载Xming:http://sourceforge.net/pro
韩伟
2018/03/05
4.5K0
Linux的GUI程序在Windows上使用
快速在 Windows 上搭建 Jekyll 开发环境
发布于 2018-03-04 05:30 更新于 2018-08-12 06:50
walterlv
2018/09/18
1.1K0
快速在 Windows 上搭建 Jekyll 开发环境
在 Windows 上使用 Python 进行 web 开发
我们建议在生成 web 应用程序时在 WSL 上安装 Python。 Python web 开发的许多教程和说明都是针对 Linux 用户编写的, 并使用基于 Linux 的打包和安装工具。 大多数 web 应用还部署在 Linux 上, 因此, 这将确保你的开发环境与生产环境之间的一致性。
葡萄城控件
2019/08/03
6.9K0
Flutter在Windows上搭建Android开发环境
Flutter 是谷歌基于 Dart 语言开发的一款开源、 免费、跨平台的移动端UI 框架,可以让我们快速的在 Android 和iOS 上构建高质量 App,它最大的特点就是跨平台、 以及高性能。
越陌度阡
2020/12/16
1.5K0
Flutter在Windows上搭建Android开发环境
windows上开发linux程序完美环境搭建
然后启动安装centos即可,注意安装过程中,需要把网络配置固定IP,避免每次启动虚拟机IP飘走。
mingjie
2022/05/12
2.2K0
windows上开发linux程序完美环境搭建
怎样在Linux上开发vue项目
将node.js的node可执行可执行文件与npm链接所在目录添加到环境变量,在文件/etc/profile文件末尾添加以下内容
极客开发者
2022/01/18
2.1K0
怎样在Linux上开发vue项目
WampServer – 在 Windows 上轻松搭建 PHP 开发环境
WampServer 是一个 Windows 上的 Apache + PHP + MySQL 开发环境。作为一名 WordPress 主题开发者,我一直使用 WampServer 搭建本地 PHP 开发环境。 WampServer 的安装流程十分简单,一路 Next 就行。
慕白
2018/08/03
1.3K0
WampServer – 在 Windows 上轻松搭建 PHP 开发环境
Linux上搭建Git服务,客户端在Windows
服务器 CentOS Linux release 7.4.1708 (Core) + git(version 1.8.3.1) 客户端 Windows7 + git(Git-2.9.3.2-64-bit.exe)
飞狗
2018/12/18
3K0
如何使用Homebrew在Linux和Windows上安装软件
长期以来,Homebrew软件一直是Mac用户的便捷工具,但仅适用于Mac用户。 该应用程序增加了Linux风格的软件包管理,使用户可以轻松安装命令行实用程序。 现在,在2.0.0及更高版本中,该应用程序不再是Mac专有的。
用户8704998
2021/06/08
3.8K0
在Windows 10上安装TensorFlow及PyCharm开发环境[通俗易懂]
有时候在查看官方文档时,常常看到很多的分支,所以作为开发者我们都喜欢把最佳实践总结出来。下面一起来看看如何在Windows 10上安装一个TensorFlow和PyCharm开发环境。
全栈程序员站长
2022/09/27
1.6K0
在Windows 10上安装TensorFlow及PyCharm开发环境[通俗易懂]
在 Windows 上安装 Composer
(2) 选中PHP安装目录下的php.exe,PHP的安装路径在环境变量 Path 中,则会自动选中,否则需要手动选中
很酷的站长
2023/02/17
2.1K0
在 Windows 上安装 Composer
MongoDB - 在Windows上安装
1 下载MongoDB社区版, 下载链接 http://www.mongodb.org/downloads?_ga=1.129742796.1997610832.1481940266 2 安装Mong
我思故我在
2018/05/11
2.3K0
在Windows上安装Jenkins
apache-tomcat/bin目录下的startup.bat在windows上启动。
清菡
2020/12/02
2.4K0
在Windows上安装Jenkins
在 Windows 玩 Linux!
之前了解过一些适用于linux的Windows子系统,最近又听人提起,于是在自己的Windows 10专业版上安装了一个Ubuntu。运行起来还真方便,以后在windows上开发Linux程序就不需要安装桌面虚拟化应用了。下面讲下具体的步骤。
Rookie
2020/04/23
4.2K0
在 Windows 玩 Linux!
怒删虚拟机,FPGA开发新宠-几步在Windows上安装桌面化Linux
Linux上运行Vivado这类EDA工具要比Window上快很多,大概就是优化的问题,所以选择Linux上开发是一个比较好的选择(主要是免费)。国内习惯了Win系统,所以用Linux比较少,那么有没有既可以在Windows上做一些文档之类的编写办公,同时在Linux上做FPGA开发呢?
碎碎思
2023/02/14
2.1K0
怒删虚拟机,FPGA开发新宠-几步在Windows上安装桌面化Linux

相似问题

如何在gatling模拟中运行多个空手道特征文件?

126

如何在Python中将参数传递给类?

11

如何在Gatling脚本中将变量传递给.get方法

10

如何在laravel中将数组传递给特征?

16

如何在Gatling中将地图列表传递给pebble模板?

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文