一共有80个数 从80个数中随机抽取20个数 帮我写一行bat的代码
时间: 2023-09-13 10:05:20 浏览: 221
### 回答1:
以下是一个随机从1到80中抽取20个数字的批处理代码:
```
@echo off
setlocal enabledelayedexpansion
set count=0
set "numbers="
:loop
if !count! equ 20 goto :done
set /a "num=%random% %% 80 + 1"
if "!numbers:,%num%,=!" neq "%numbers%" goto :loop
set "numbers=%numbers%,%num%"
set /a "count+=1"
goto :loop
:done
echo %numbers:~1%
```
这个代码使用了一个循环来不断生成随机数,直到生成了20个不同的数字。请注意,由于我们是使用 %random% 命令来生成随机数的,所以每次运行该代码时生成的数字序列都会不同。
### 回答2:
以下是一个简单的批处理脚本示例,用于从80个数中随机抽取20个数并输出到屏幕上。
```batch
@echo off
setlocal
rem 定义可供抽取的80个数,以空格分隔
set numbers=1 2 3 4 5 6 7 8 9 ... 80
rem 清空结果变量
set result=
rem 随机抽取20个数,并将结果存储到result变量中
for /L %%i in (1,1,20) do call :random_pick
rem 输出结果变量的内容
echo 抽取的20个数为:%result%
exit /b
:random_pick
rem 随机抽取一个数
setlocal enabledelayedexpansion
set /a index=!random! %% 80
rem 检查抽取的数是否已经在结果中,避免重复抽取
if "!result: %numbers: = %" neq "!result!" (
endlocal
goto :random_pick
)
rem 将抽取的数追加到结果中
endlocal
set result=%result% %numbers:~%index%,1%
exit /b
```
说明:
1. 将80个数按照空格分隔,保存到`numbers`变量中。
2. 通过循环抽取20个数,并将结果存储到`result`变量中。
3. 使用`enabledelayedexpansion`来启用延迟变量扩展,在循环中使用`!random!`获取随机数。
4. 使用一个子过程`random_pick`来随机抽取数,避免抽取重复的数。
5. 最后,输出抽取的20个数。
请注意,此代码仅作为示例,并未对输入进行验证和错误处理。实际使用时可能需要进行相应的修改。
### 回答3:
可以使用以下代码实现从80个数中随机抽取20个数:
```bat
@echo off
setlocal enabledelayedexpansion
set count=1
set numbers=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
:loop
if %count%==21 (
goto end
) else (
set /a "random_index = !RANDOM! %% 80"
for %%i in (!numbers!) do (
if !random_index!==!count! (
set "selected=!selected! %%i"
set "numbers=!numbers:%%i=!"
set /a "count+=1"
)
set /a "count+=1"
)
goto loop
)
:end
echo The selected numbers are:%selected%
exit /b
```
这段代码首先定义了一个包含80个数的变量`numbers`,然后进入循环,随机生成一个0到79的索引值`random_index`,在循环中判断`random_index`是否等于当前计数值`count`,如果相等则将对应的数加入到`selected`变量中,同时移除`numbers`变量中的该数,然后计数值加1。最后在循环结束时,输出所选中的20个数。
阅读全文