[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
已知行数和字符数 是否可以再简化点 个人感觉 乱序排列的SET效率并不很理想
两个边字的问题 可以放入的吧 因乱序后还是可以对应的哦

TOP

已知的  我直接40个  ECHO

TOP

前面回复直接 40 个ECHO 其实和17楼900612兄一样思路
  1. @echo off&setlocal enabledelayedexpansion
  2. if "%1"=="" (
  3.    set N=0
  4.    for /f "skip=15 useback" %%i in ("%~0") do set str!n!=%%i&set/a n+=1
  5.    for /f "tokens=2-4" %%a in ('%0 $^|sort') do (
  6.        set /a "N=L/8,M=L%%8,X=%%b-N,Y=%%c-M,L+=1"
  7.        for %%j in (!N!) do (
  8.            set _%%j=!_%%j! !X!:!Y!
  9.            if !M! equ 7 (echo !#%%j!%%a) else set #%%j=!#%%j!%%a
  10.        )
  11.    )
  12.        for /l %%i in (0 1 4) do echo!_%%i!
  13.        pause&exit
  14. ) else for /l %%i in (0 1 4) do for /l %%j in (0 1 7) do echo !random!!random! !str%%i:~%%j,1! %%i %%j
  15.   exit
  16. 我们去北大踢球吧
  17. 快上那边等着信号
  18. 你不能离开大门口
  19. 生与死就在一瞬间
  20. 青春已从身边溜走
复制代码

TOP

本帖最后由 terse 于 2011-4-22 17:51 编辑

变量太多影响效率  练手了
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in ('"find /c /v "" < %0"') do set/a n=%%i-5
  3. for /f "skip=%n% useback" %%i in ("%~0") do set str=!str!%%i
  4. for /l %%i in (0 1 39) do set i=10%%i&set var=!var!#!i:~-2!&set #!i:~-2!=%%i
  5. for /l %%i in (40 -1 1) do (
  6.     set /a "R=!random!%%%%i*3,N=(40-%%i)/8,M=(40-%%i)%%8"
  7.     for /f "tokens=1-3" %%a in ("!R! !N! !M!") do (
  8.         for %%j in ("!var:~%%a,3!") do for %%k in (!%%~j!) do (
  9.             set "var=!var:%%~j=!"
  10.             set /a "AN=%%k/8-%%b,AM=%%k%%8-%%c"
  11.             if %%c equ 7 (echo !#b!!str:~%%k,1!&set #b=) else set #b=!#b!!str:~%%k,1!
  12.             set _%%b=!_%%b! !AN!:!AM!
  13.         )
  14.     )
  15. )
  16. for /l %%i in (0 1 4) do echo!_%%i!
  17. pause&exit
  18. 我们去北大踢球吧
  19. 快上那边等着信号
  20. 你不能离开大门口
  21. 生与死就在一瞬间
  22. 青春已从身边溜走
复制代码

TOP

若给定文本中不存在重字 还是一个FOR里处理就好了 过多CALL 效率有问题
当然 作为另一思路则别论

TOP

29# zm900612
zm900612兄简化后的代码 可以再减少个FOR  两个并一个既可

TOP

返回列表