灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1379回复:0

批处理随机取值练习代码

楼主#
更多 发布于:2013-06-02 16:46
掌握利用random进行随机取值技巧,需要的朋友可以参考下。

 
出题目的:
掌握利用random进行随机取值技巧
解题要求:
代码通用、高效
尽量简洁
尽量不生成临时文件
加分规则:
1 思路独特基准分5分
2 代码高效、通用基准分4分
3 技巧高超基准分3分
4 代码简洁基准分2分
5 完美代码加分15分
题目如下:
  已知有1-26与a-z的一一对应,如1对应a 10对应j 26对应z,要求用批处理
从1-26 a-z这52个值中(全视为值)随机抽取10个互不相同的值并显示出来,
注意如同1和a 24和x 26和z这样的取值均视为相同不合要求。
解题限制:
暂无限制。
答案:
batman:
复制代码 代码如下:

@echo off&setlocal enabledelayedexpansion 
for %%i 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 n+=1,a=!random!%%2 if !a! equ 0 ( set "_!random!!random!!random!=%%i" 
) else ( set "_!random!!random!!random!=!n!" ) ) 
for /f "tokens=2 delims==" %%i in ('set _') do ( set /a n-=1 
if !n! equ 15 pause>nul&goto :eof 
set /p=%%i <nul
)

喜欢0 评分0
游客

返回顶部