Board logo

标题: [数值计算] 如何生成6个不重复的1至3位数字 [打印本页]

作者: sjminh    时间: 2009-2-3 16:38     标题: 如何生成6个不重复的1至3位数字

本帖最后由 pcl_test 于 2016-10-3 23:46 编辑

关于数字筛选和排序
现在有一串数字,怎样才能找到重复的数字并删除,然后对它们进行排序(急急急!!!)
作者: Batcher    时间: 2009-2-3 19:09

举个例子说明一下自己的问题?
作者: sjminh    时间: 2009-2-4 00:56

随机产生一串数字(6个),删掉重复的然后再补上新的数字,最后按从小到大的顺序排列起来
作者: Batcher    时间: 2009-2-4 10:07     标题: 回复 3楼 的帖子

按照什么规则“补上新的数字”?
作者: sjminh    时间: 2009-2-4 16:36

当然还是用产生随机数的方法,希望有人快快做出解答,先解答一部分也行,谢了
作者: Batcher    时间: 2009-2-4 16:53     标题: 回复 5楼 的帖子

你的最终目的是产生一个不包含重复数字的6位随机数,是这样么?
作者: sjminh    时间: 2009-2-4 17:32

我这样解释吧:
比如随机产生了:234,567,345,123,345,456六个数字(位数不一定是三位的),请注意是随机产生的
现在要将345删掉一个,并再随机加上一个数字如678
最后排成123,234,345,456,567,678的样子

[ 本帖最后由 sjminh 于 2009-2-4 17:59 编辑 ]
作者: Batcher    时间: 2009-2-4 17:53     标题: 回复 7楼 的帖子

生产的六个数字都是三位?或者位数不定?
作者: sjminh    时间: 2009-2-4 18:12

位数不一定是三位的,有可能可能是一位或二位
作者: 随风    时间: 2009-2-9 16:55

楼主的意识其实就是产生6个不重复的随机数,再排序输出。。
  1. @echo off&Setlocal EnableDelayedExpansion
  2. for /l %%a in (1 1 6) do call :loop
  3. for %%a in (%var%) do (
  4.    set "num=0000000000%%a"
  5.    set "..!num:~-10!=%%a"
  6. )
  7. for /f "tokens=2 delims==" %%a in ('set ..') do echo %%a
  8. pause
  9. :loop
  10. set /a w=!random!
  11. if defined .!w! goto loop
  12. set .!w!=a
  13. set var=%var% !w!
  14. goto :eof
复制代码

[ 本帖最后由 随风 于 2009-2-9 16:56 编辑 ]




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2