标题: 如何输出3位不重复的数字
[打印本页]
作者: diangongban
时间: 2007-7-27 19:22
标题: 如何输出3位不重复的数字
各位老师,我想把0到9这10个数取任意3个数的不重复排列后保存到一个.txt文件。
[
Last edited by bjsh on 2007-7-31 at 12:36 AM ]
作者: wudixin96
时间: 2007-7-27 21:05
呵呵,弄个简陋的
@echo off
set /a a=%random%%%10
:bb
set /a b=%random%%%10
if %b%==%a% goto bb
:cc
set /a c=%random%%%10
if %c%==%a% (goto cc) else (if %c%==%b% goto cc)
echo %a% %b% %c%
pause
作者: wudixin96
时间: 2007-7-27 21:10
抱歉,没看懂楼主的意思,见笑了
楼主的意思是排列组合问题。
但我现在已经全忘光了,不好意思。
[
Last edited by wudixin96 on 2007-7-28 at 10:02 AM ]
作者: diangongban
时间: 2007-7-28 08:57
谢谢wudixin96老师的回复,也是我没有表达清楚。
我的意思是0123456789这10个数取3个数3位数的全排列,比如:123 132 321。。。。213 231 。。。一直到9不重复。将这些3位数保存到一个.txt里。
就是彩票排列3
[
Last edited by diangongban on 2007-7-28 at 09:17 AM ]
作者: ccwan
时间: 2007-7-28 10:46
你是否要这种效果?
@echo off
for /l %%i in (0 1 9) do (
for /l %%j in (0 1 9) do (
for /l %%k in (0 1 9) do (
if not %%i==%%j if not %%j==%%k if not %%k==%%i echo %%i%%j%%k>>1.txt
)
)
)
start 1.txt
要是认为123和213是一种组合,不允许出现的话,可以这样
@echo off
for /l %%i in (0 1 9) do (
for /l %%j in (%%i 1 9) do (
for /l %%k in (%%j 1 9) do (
if not %%i==%%j if not %%j==%%k if not %%k==%%i echo %%i%%j%%k>>1.txt
)
)
)
start 1.txt
作者: diangongban
时间: 2007-7-28 15:03
谢谢ccwan
有点意思了,少了001 110 022 220。。。111 222 。。。。就是就是彩票排列3的所有组合。
[
Last edited by diangongban on 2007-7-28 at 03:05 PM ]
作者: wudixin96
时间: 2007-7-28 15:06
什么?楼主的意思不是从0~9十位数中随机取得3个数字(不重复)吗,再
组成一个三位数。
001等,有重复啊。
作者: ccwan
时间: 2007-7-28 15:22
晕死!要重复干嘛说不重复排列呢?
@echo off
for /l %%i in (0 1 9) do (
for /l %%j in (0 1 9) do (
for /l %%k in (0 1 9) do (
echo %%i%%j%%k>>1.txt
)
)
)
start 1.txt
作者: diangongban
时间: 2007-7-29 09:50
谢谢ccwan
问题解决