![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 05:19 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]从随机数字串中找出有多少对一样的数子。 |
| 可打印版本 1,805 / 18 |
| 第1楼 clian76 | 发表于 2009-01-08 00:20 |
| 中级用户 发帖 162 积分 363 | |
|
[已结]从随机数字串中找出有多少对一样的数子。 给出一串随机数字,要求找出里面有几对一样的数字。比如:
14204 有1对(两个4) 08448 有2对(4和8) 93997 有1对 10257 有0对 998 有1对 208 有0对 4293 有0对 。。。。。。 最好是不产生临时文件。谢谢!!! 问题已完美解决,非常感谢各位高手!!! [ Last edited by clian76 on 2009-1-10 at 02:44 ] |
|
| 第2楼 dikex | 发表于 2009-01-08 01:14 |
| 高级用户 发帖 366 积分 788 | |
|
如果有三个或以上怎么办?
如: 1110 11110 |
|
| 第3楼 netbenton | 发表于 2009-01-08 02:35 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
@echo off
for /f "skip=15" %%i in (%~n0%~x0) do ( setlocal enabledelayedexpansion set ru=0 set v=%%i for /l %%i in (1,1,20) do (if defined v (call set "a=!v:~0,1!"&call set "v=!v:~1!"&set /a num!a!+=1)) for /l %%i in (0,1,9) do (set /a ru=num%%i/2+ru) echo %%i 有 [!ru!] 对数 endlocal ) pause goto :eof 给出一串随机数字,要求找出里面有几对一样的数字。比如: 14204 有1对(两个4) 08448 有2对(4和8) 93997 有1对 10257 有0对 998 有1对 208 有0对 4293 有0对 |
|
| 第4楼 clian76 | 发表于 2009-01-08 13:01 |
| 中级用户 发帖 162 积分 363 | |
Originally posted by dikex at 2009-1-8 01:14 AM: 1110 1对 11110 2对 不知道批处理能不能做到这样,如果没办法就让它把全部可能的对子对比出来也行。谢谢! |
|
| 第5楼 clian76 | 发表于 2009-01-08 13:08 |
| 中级用户 发帖 162 积分 363 | |
Originally posted by netbenton at 2009-1-8 02:35 AM: 谢谢netbenton老师的解答!几句高深的代码已完美做到,非常感谢!! |
|
| 第6楼 netbenton | 发表于 2009-01-08 14:37 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
三人行必有我师焉!
共学共勉吧 |
|
| 第7楼 linee | 发表于 2009-01-08 14:39 |
| 初级用户 发帖 49 积分 94 | |
| 第8楼 clian76 | 发表于 2009-01-08 16:56 |
| 中级用户 发帖 162 积分 363 | |
Originally posted by linee at 2009-1-8 02:39 PM: |
|
| 第9楼 clian76 | 发表于 2009-01-08 17:22 |
| 中级用户 发帖 162 积分 363 | |
Originally posted by linee at 2009-1-8 02:39 PM: |
|
| 第10楼 linee | 发表于 2009-01-08 18:33 |
| 初级用户 发帖 49 积分 94 | |
Originally posted by clian76 at 2009-1-8 17:22: 这里感觉还是用if goto简单点,用for不好实现吧。 |
|
| 第11楼 clian76 | 发表于 2009-01-08 18:43 |
| 中级用户 发帖 162 积分 363 | |
Originally posted by linee at 2009-1-8 06:33 PM: 这里我想打出多组随机数字串,想把开始转换成用: FOR /F %%I IN ('echo %random%^&echo.%random%^&echo.%random%') do ( 再让程序把这三组随机数字串的对子数和对子数值显示出来。 我试了几个小时一直没有成功,希望高手再次出招,也好学习。谢谢! |
|
| 第12楼 linee | 发表于 2009-01-08 21:06 |
| 初级用户 发帖 49 积分 94 | |
Originally posted by clian76 at 2009-1-8 18:43: 这样试试, |
|
| 第13楼 clian76 | 发表于 2009-01-08 23:17 |
| 中级用户 发帖 162 积分 363 | |
Originally posted by linee at 2009-1-8 09:06 PM: |
|
| 第14楼 netbenton | 发表于 2009-01-09 00:10 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
改进一下 @echo off
for /f "skip=16" %%i in (%~n0%~x0) do ( setlocal enabledelayedexpansion set ru=0 set v=%%i set /p=%%i <nul for /l %%i in (1,1,20) do (if defined v (call set "a=!v:~0,1!"&call set "v=!v:~1!"&set /a num!a!+=1)) for /l %%i in (0,1,9) do (set /a var=num%%i/2&set /a ru=var+ru&if !num%%i! gtr 1 set /p=!var!对%%i <nul) echo 共有 !ru! 对 endlocal ) pause goto :eof 增加了var变量用于分别显示各数出现频率 给出一串随机数字,要求找出里面有几对一样的数字。比如: 14204 1对4 共有 1 对 08448 1对4 1对8 共有 2 对 939979 2对9 共有 2 对 10257 共有 0 对 998 1对9 共有 1 对 208 共有 0 对 4293 共有 0 对 [ Last edited by netbenton on 2009-1-9 at 14:38 ] |
|
| 第15楼 netbenton | 发表于 2009-01-09 00:47 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
Originally posted by clian76 at 2009-1-8 23:17: ***把 setlocal enabledelayedexpansion 也拿到外面就可以了 只是在for里面要注意变量的必要的初始化*** ***附: 这样也可以产生随机, 我也是刚发现!*** @echo off setlocal enabledelayedexpansion for /f "skip=20" %%i in (%~n0%~x0) do ( set ru=0&set a= for /l %%i in (0,1,9) do set num%%i=0 call set number=%%%i set v=!number! set nu=( for /l %%i in (1,1,20) do (if defined v (call set "a=!v:~0,1!"&call set "v=!v:~1!"&set /a num!a!+=1)) for /l %%i in (0,1,9) do (set /a ru=num%%i/2+ru&if !num%%i! gtr 1 set nu=!nu!和%%i) set nu=!nu!)&set nu=!nu:(和=(!&set nu=!nu:()=! echo !number! 有 !ru! 对 !nu! ) pause endlocal goto :eof %random% %random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random% %random%%random%%random%%random% %random%%random%%random%%random% [ Last edited by netbenton on 2009-1-9 at 14:24 ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |