各位也都发表啦,我的也放出来啦 偶的还是原来的样子- @echo off&setlocal enabledelayedexpansion
- set /a a=0,act=0
- for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
- set /a a+=1
- set n!a!=%%a)
- :act
- set /a act+=1
- :act-1
- set /a n=%random%%%27
- if %n% equ 0 set n=1
- if not defined _%n% (
- if %random:~-1% lss 5 (set number%act%=%n%) else (set number%act%=!n%n%!)
- set _%n%=exist
- ) else (goto :act-1)
- echo !number%act%!
- if %act% lss 10 goto :act
- pause
复制代码 再小小修改代码,测试获得字母Z的频数,用来测试前面的代码随机性是否良好- @echo off&setlocal enabledelayedexpansion
- set /a a=0,act=0
- for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
- set /a a+=1
- set n!a!=%%a)
- set test=0
- :act
- set /a act+=1
- set /a n=%random%%%27
- if %n% equ 0 set n=1
- if %random:~-1% lss 5 (set number%act%=%n%) else (set number%act%=!n%n%!)
- if !number%act%! equ z (set /a test+=1)
- if %act% lss 520 goto :act
- echo,520次 有%test%次出现z
- pause
复制代码
----------------
本楼第一段代码出现概率不平衡问题,请参照11楼和13楼的说法
[ 本帖最后由 523066680 于 2008-8-25 20:58 编辑 ] |