【Batch批处理】利用random生成任意区间的随机整数
文章目录
- 简单介绍
- 使用方法详解
- 常规使用
- 生成0开始任意长度整数
- 生成任意区间整数
- 使用场景
- 总结
随机数的使用还是很普遍的,尤其是和游戏相关的时候。如何利用Batch批处理来生成任意区间的随机整数,这一节我们一起来看看。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
简单介绍
和shell命令一样,默认情况下的批处理运算都只是支持到整数而已,并且都是向靠近0取整。例如
c:\Batch\test>set /a a=2/3
0
c:\Batch\test>set /a a=5/3
1
c:\Batch\test>set /a a=-5/3
-1
%random%
这个环境变量会返回一个区间在[0,32768)
的整数,注意右边是开集。例如
c:\Batch\test>echo %random%
19531
c:\Batch\test>echo %random%
8501
c:\Batch\test>echo %random%
10888
使用方法详解
常规使用
直接打印出%random%
即可
生成0开始任意长度整数
假设想生成区间为[0,m)
的整数,那么可以用%random%*m/32768
来实现,例如想要生成[0,100)的随机整数,直到生成的数小于35为止
:: random number less than 35
@echo off
:rand
set /a rnd=%random%*100/32768
echo %rnd%
if %rnd% gtr 34 goto :rand
echo Finally!!
exit /b
执行上面这个脚本的结果如下,循环3次以后得到小于35的结果,退出循环
c:\Batch\test>random100.bat
71
92
32
Finally!!
需要注意的是生成负数的时候,如果m是负数,那么得到的区间为(m,0]
。如果要实现右边开集需要用到下面的方法。
生成任意区间整数
在上面的基础上只需要进行一个偏移就能达到目地了。例如生成区间[m,n)
的整数,可以用%random%*(n-m)/32768+m
来实现,例如生成[-100,100)
的整数,如果是负数就退出
::random less than 0
@echo off
:rand
set /a rnd=%random%*200/32768-100
echo %rnd%
if %rnd% geq 0 goto :rand
echo Finally!!
exit /b
执行上面这个脚本的结果如下,循环了6次以后终于生成了一个负数
c:\Batch\test>random_100.bat
18
32
28
30
30
-32
Finally!!
使用场景
通常随机数都和循环一起出现,满足特定条件再退出循环,这在游戏设计当中是个相当常见的操作。
总结
Batch批处理的随机数只能支持到整数,如果想要生成随机浮点数需要借助外部脚本的帮助了。同时在涉及到负数的时候要注意,直接乘以负数和由偏移生成的负数在区间的闭合上是不一样的。
【Batch批处理】利用random生成任意区间的随机整数相关推荐
- numpy 生成任意shape的随机整数
import numpy as np# 生成 [0,40) 之间的随机整数,shape为(20,2):2个维度,每个维度20个数据 np.random.randint(0, 40, size=(20, ...
- java 生成随机数(利用Random生成任意范围的随机数)
目录 一.为什么需要这种方法? 二.方法思路 1.头尾相减 2.尾巴+1 3.最终的结果加上初始的首个数字 代码 运行结果 一.为什么需要这种方法? Random函数只能限制生成随机数的区间的末尾是多 ...
- python从random生成列表_详解Python利用random生成一个列表内的随机数
详解Python利用random生成一个列表内的随机数 首先,需要导入random模块: import random 随机取1-33之间的1个随机数,可能重复: random.choice(range ...
- python 利用random生成验证码与MD5码加密过程
python 利用random生成随机数 #!usr/bin/env python #_*_ coding:utf-8 _*_import randomprint('随机整成range(1,5)之间的 ...
- 利用random生成1-100里面的随机数,使用程序猜出这个数是多少
利用random生成1-100里面的随机数,使用程序猜出这个数是多少 Random r = new Random(); int number = r.nextInt(100)+1; Scanner s ...
- javascript生成指定范围的随机整数
JavaScript有提供一个生成值区间在(0, 1)的随机小数的函数. Math.random(); // 0.10529863457509858 如果你和喜欢的人一起执行这个函数,之后生成的随机小 ...
- javascript取随机数_js随机数生成方法和实例,生成[n,m]的随机整数,获取1-10之间的随机数...
随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者像js-task1中一样随机选择一个盒子,随机一个颜色等等.这个时候我们就要知道用js应该如何获取一个随机数. 一.js随机数知 ...
- matlab生成任意区间的随机数
使用matlab中的rand函数生成任意区间的随机数公式 r = a + (b-a)*rand(m,n) 其中[a,b]是范围,[m,n]是生成的数据形状.比如我想生成[-5,5]之内10个随机数 a ...
- python随机生成数字列表_详解Python利用random生成一个列表内的随机数
首先,需要导入random模块: import random 随机取1-33之间的1个随机数,可能重复: random.choice(range(1,34)) print得到一系列随机数,执行一次得到 ...
最新文章
- socket通信——通过Udp传输方式,将一段文字数据发送出去
- day11-元组与字典
- R语言基础入门(9)之因子类型
- 实时媒体AI,打破内容创作天花板,加速视频创新
- Java基本数据类型字节长度
- Fujitsu(富士通)扫描仪——fi-6130z 无感安装设置
- 苹果bundle id是什么?
- shell学习(一)简单示例help用法
- 赢在互联网的起跑线上
- 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写
- 师傅带徒弟学:Python游戏开发引擎cocos2d-python-关东升-专题视频课程
- 手机设备唤醒计算机,手机微信实现网络唤醒电脑(WOL),远程开机,WakeOnLan – 全栈笔记...
- 如何对磁盘分区进行写保护
- 编写一个制造各种车辆的程序。包含三个类,具体要求如下: (1)基类Vehicle,包含轮子数和汽车自身重量两个属性,一个两参数的构造方法,一个显示汽车信息的方法; (2)小轿车类Car,增加载客数属性
- android createbitmap设置背景色,Android createBitmap截取实现移动的游戏背景
- 微商招代理赚钱方法:软文写成小说
- python多功能文本编辑器_Python GUI文本编辑器
- 任何收获都不是偶然
日复一日的付出和努力
一点一滴的进步,
- Protege 使用教程(详细讲解 入门简单易懂)
- A morphable model for the synthesis of 3D faces 学习笔记(未完)
热门文章
- 西门子1200与200SMART寻址的区别
- M4V转换器用户指南-如何无损转换M4V视频!
- 存储交换机和普通交换机
- 码神之路项目总结说明
- Shell命令、Dos命令和批处理命令
- springboot启动报错Parameter 0 of method a in com.* required a bean of type 'java.lang.String' that could
- 【Elsevier投稿】解决投稿系统latex编译不出来的问题!!!
- Java学习分享---数组排序方法
- 深度学习论文精读[9]:PSPNet
- 动态SQL,单表查询