|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『楼 主』:
出给新手的加分题-随机取值
好久没有出过题了,今天来一出给新手的题,老手们还请略过了:
题目:
现有a-z和1-26的一一对应,现在要求用批处理从1-26和a-z 52个值
(全视为值)中随机取得10个不同的值,如1和a 26和z视为相同的值
要求:
代码高效、简洁、通用、并不生成临时文件
加分:
代码完全符合要求的加10分
|
批处理之家新域名:www.bathome.net |
|
2008-8-24 10:32 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
|
2008-8-24 14:29 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
3 楼』:
感叹。。人气不盛。。
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-24 14:58 |
|
|
dragonamd
中级用户
积分 209
发帖 100
注册 2008-8-1
状态 离线
|
『第
4 楼』:
难度太大,理解不够,。吃不消,本人并不是为了代码而来
|
|
2008-8-24 15:31 |
|
|
dragonamd
中级用户
积分 209
发帖 100
注册 2008-8-1
状态 离线
|
『第
5 楼』:
本人愚钝,真心拜师,喜欢收徒的来!
|
|
2008-8-24 15:33 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2008-8-24 16:26 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2008-8-24 16:46 |
|
|
holee
初级用户
积分 53
发帖 27
注册 2005-7-18
状态 离线
|
『第
8 楼』:
感觉难度比较高啊。。。唉。。继续我的蜗牛学习之路。。
|
|
2008-8-24 17:54 |
|
|
kghong
初级用户
积分 26
发帖 13
注册 2006-9-24
状态 离线
|
|
2008-8-24 19:18 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
|
2008-8-24 19:29 |
|
|
BC
中级用户
积分 338
发帖 175
注册 2007-10-21
状态 离线
|
『第
11 楼』:
我晕,没想到那么难...
[ Last edited by BC on 2008-8-25 at 08:32 AM ]
|
C:\
C:\Del BC |
|
2008-8-24 22:52 |
|
|
daker
初级用户
积分 34
发帖 17
注册 2007-5-23
状态 离线
|
『第
12 楼』:
@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 ]
|
|
2008-8-24 23:51 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
13 楼』:
楼主的意思是如果已经出现了3,就不能再出现3,不能出现c。
a-1 b-2 c-3。。。 都是一一对应的。
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-25 01:21 |
|
|
BC
中级用户
积分 338
发帖 175
注册 2007-10-21
状态 离线
|
『第
14 楼』:
@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
搞了个很偷懒的方法,而且也不是很符合题意,但小弟的能力就是那么多。。。
希望有高人指点...
|
C:\
C:\Del BC |
|
2008-8-25 08:53 |
|
|
qq152576450
新手上路
新手上路
积分 6
发帖 3
注册 2008-8-21 来自 川
状态 离线
|
『第
15 楼』:
@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
但不能判断是否重复....
望前辈指教
|
|
2008-8-25 10:15 |
|