微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用批次重新排列号码

在Windows命令行上,是否可以随机重新排列数字?

例如,我在batch file中有以下逻辑,它随机地从s中select数字。 这是允许重复的项目。 我想有这些项目不重复。

@echo off set i= set s=12345678 set m=0 :loop set /an=%random% %% 8 call set i=%i%%%s:~%n%,1%% set /am=m+1 if not %m%==8 goto loop: echo %i% pause

实际产量:83254646

所需的输出将如下所示:83254176

linux随机function

CryptGenRandom熵

让linux来缓冲/ dev / random

Windows相当于/ dev / random

随机string在linux系统时间

谢谢Joel

在srandom_r的Segfault

是否需要调用每个线程或每个进程的srand()C函数来播种随机数?

未定义的OpenComL 1.0.2的CreateCompatibleBitmap @ 12引用

Bash脚本启动进程,等待随机,终止进程,重启

机器学习algorithm可以检测数字序列的随机性吗?

以下随机从源字符串中选择一个数字,然后从源中删除该数字。 它避免了相对较慢的GOTO,并执行最小的迭代次数

@echo off setlocal enableDelayedExpansion set "s=12345678" set "i=" for /l %%N in (8 -1 1) do ( set /a "n1=!random! %% %%N,n2=n1+1" for /f "tokens=1,2" %%A in ("!n1! !n2!") do ( set "i=!i!!s:~%%A,1!" set "s=!s:~0,%%A!!s:~%%B!" ) ) echo !i! pause

这是IMO更快(更好的delayed expansion ,我知道但不喜欢在这里):

@ECHO OFF &SETLOCAL for /l %%a in (1 1 8) do call set "$%%random%%%%a=%%a" for /f "tokens=2delims==" %%a in ('set "$"') do <nul set/p"=%%a" echo(

@ECHO OFF &SETLOCAL for /l %%a in (1 1 8) do call set "$%%random%%%%a=%%a" for /f "tokens=2delims==" %%a in ('set "$"') do call set "line=%%line%%%%a" echo(%line%

你可以把这个数字放在一个关联数组中:

@ECHO OFF &SETLOCAL set "i=" set "s=12345678" :loop set /an=%random% %% 8 if not defined $%n% ( call set "i=%i%%%s:~%n%,1%%" set "$%n%=1" ) else ( goto:loop ) set /a m+=1 if not %m%==8 goto:loop echo %i%

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐