![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 14:57 |
共 47,811 主题排行 / 349,896 发帖 / 今日 1 篇 / 48,254 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 出给新手的加分题-随机取值 |
| 可打印版本 2,068 / 24 |
| 第1楼 bat-zw | 发表于 2008-08-24 10:32 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
出给新手的加分题-随机取值 好久没有出过题了,今天来一出给新手的题,老手们还请略过了:
题目: 现有a-z和1-26的一一对应,现在要求用批处理从1-26和a-z 52个值 (全视为值)中随机取得10个不同的值,如1和a 26和z视为相同的值 要求: 代码高效、简洁、通用、并不生成临时文件 加分: 代码完全符合要求的加10分 |
|
| 第2楼 bat-zw | 发表于 2008-08-24 14:29 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
看来现在是要代码的多,真的抱着学习目的来的少,唉。。。
|
|
| 第3楼 pusofalse | 发表于 2008-08-24 14:58 |
| 银牌会员 发帖 646 积分 1,604 | |
|
感叹。。人气不盛。。
|
|
| 第4楼 dragonamd | 发表于 2008-08-24 15:31 |
| 中级用户 发帖 100 积分 209 | |
|
难度太大,理解不够,。吃不消,本人并不是为了代码而来
|
|
| 第5楼 dragonamd | 发表于 2008-08-24 15:33 |
| 中级用户 发帖 100 积分 209 | |
|
本人愚钝,真心拜师,喜欢收徒的来!
|
|
| 第6楼 523066680 | 发表于 2008-08-24 16:26 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
真不好决策呢……虽然很想搬上来 但我算不算老手啊
|
|
| 第7楼 523066680 | 发表于 2008-08-24 16:46 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
我再加一水贴,哎没办法 有一部分人都往bathome过渡哦
|
|
| 第8楼 holee | 发表于 2008-08-24 17:54 |
| 初级用户 发帖 27 积分 53 | |
|
感觉难度比较高啊。。。唉。。继续我的蜗牛学习之路。。
|
|
| 第9楼 kghong | 发表于 2008-08-24 19:18 |
| 初级用户 发帖 13 积分 26 | |
|
dos盲.有难度呀.慢慢来
|
|
| 第10楼 bat-zw | 发表于 2008-08-24 19:29 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
提示:多在这个一一对应上做文章
|
|
| 第11楼 BC | 发表于 2008-08-24 22:52 |
| 中级用户 发帖 175 积分 338 | |
|
我晕,没想到那么难...
[ Last edited by BC on 2008-8-25 at 08:32 AM ] |
|
| 第12楼 daker | 发表于 2008-08-24 23:51 |
| 初级用户 发帖 17 积分 34 | |
|
@echo off
setlocal EnableDelayedExpansion set nu=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 set n=0 :_loop if %n% geq 10 (goto _end) set /a n=%n%+1 set /a unx=%random%%%26+1 for /f "tokens=%unx% delims= " %%i in ('echo %nu%')do echo %n% %%i %unx% goto _loop :_end 是这个样子??? 还是set nu= a-z + 1-26 set unx=%random%%%52+1 ???? [ Last edited by daker on 2008-8-25 at 12:06 AM ] |
|
| 第13楼 pusofalse | 发表于 2008-08-25 01:21 |
| 银牌会员 发帖 646 积分 1,604 | |
|
楼主的意思是如果已经出现了3,就不能再出现3,不能出现c。
a-1 b-2 c-3。。。 都是一一对应的。 |
|
| 第14楼 BC | 发表于 2008-08-25 08:53 |
| 中级用户 发帖 175 积分 338 | |
|
@echo off
setlocal enabledelayedexpansion set num=1234567890 set wor=abcdefghijklmnopqrstuvwxyz :a1 set /a var1=%random%%%26+1 set /a var2=%random%%%9+1 if %var1% equ %var2% (goto :a1) if %var1% lss 1 ( goto :a1 ) set key1=!wor:~%var1%,9! set key2=!num:~%var2%,1! echo %key1%%key2% pause 搞了个很偷懒的方法,而且也不是很符合题意,但小弟的能力就是那么多。。。 希望有高人指点... |
|
| 第15楼 qq152576450 | 发表于 2008-08-25 10:15 |
| 新手上路 发帖 3 积分 6 来自 川 | |
|
@echo off
Setlocal Enabledelayedexpansion set _w=0abcdefghijklmnopqrstuvwxyz set _p=0 for /l %%i in (1 1 26) do (set w%%i=!_w:~%%i,1! set _w%%i=%%i) :xz set /a _p+=1 if %_p%==11 goto show set /a xzx=%random%%%2 set /a xzp=%random%%%26+1 if %xzx%==0 set show%_p%=%xzp% if %xzx%==1 set show%_p%=!w%xzp%! goto xz :show for /l %%i in (1,1,10) do set /p =!show%%i! <nul pause>nul 但不能判断是否重复.... 望前辈指教 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |