区间不重复随机数 windows批处理脚本

如1 到10之间产生两个不重复随机数::random 10 2 

关闭自动打印
@echo off
:延迟变量,使变量顺序加载 
setlocal enabledelayedexpansion
:获取第一个参数
set total=%1
:获取第二个参数
set count=%2


echo 1到%total%之间随机数

:初始化数组1到total 
for /l %%a in (1,1,!total!) do (set number%%a=%%a)

:初始化随机数循环结束值 
set /a low = !total!-!count! + 1
:循环
for /l %%a in (!total!,-1,!low!) do (
  set /a index=!total! - %%a +1
  set /a rand=!random! %% %%a + 1
  set /a new!index!=number!rand!,TempNum=number!rand!
  set /a number!rand!=number%%a,number%%a=TempNum
)

:随机数(从小到大)
for /l %%j in (1 1 !count!) do (
    for /l %%k in (1 1 !count!) do (
        if !new%%k! gtr !new%%j! (
            set /a tmp=!new%%j!
            set /a new%%j=!new%%k!
            set /a new%%k=!tmp!
        )
    )
)

:循环打印每一个随机数
echo 运行结果:
for /l %%a in (1,1,!count!) do echo,!new%%a!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值