在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引用
机器学习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] 举报,一经查实,本站将立刻删除。