TC官方合作论坛

 找回密码
 立即注册
查看: 1602|回复: 4

[其他] 求教一下~~ 一组数 随机 选择问题

[复制链接]
发表于 2014-3-16 07:37:29 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
求教一下~~ 一组数 随机 选择问题  比方 说 我有 0到 9  十个数, 第一次从其中随机选择 出一个 , 然后 第二次 从剩下的9个数里在随机选择出一个 , 第三次 从剩下的8个数里再随机选择出来一个,以此类推,10次选择把这10个数都随机选完,请教下 ,各位大神有没有什么好的思路~~~ 再这里拜谢了~~
回复

使用道具 举报

发表于 2014-3-16 08:16:32 | 显示全部楼层
0~10随机数,将选择过的数存放在一个数组中,然后进行对比,如果重复就重新选择,知道选择完毕
回复 支持 反对

使用道具 举报

发表于 2014-3-16 08:22:35 | 显示全部楼层
  1. 数字,位置,数字数,已选择=0
  2. 功能 开始_点击()
  3.     循环(数字[位置]=="")
  4.         位置=辅助.随机数(0,8)
  5.         如果(数字数==已选择)
  6.             辅助.消息框("没有可选择的数字了!")
  7.             跳出
  8.         如果结束
  9.     循环结束
  10.     已选择=已选择+1
  11.     辅助.消息框(数字[位置])
  12.     调试输出(数字[位置]&已选择&数字数)
  13.     数字[位置]=""
  14.    
  15. 功能结束

  16. 功能 初始化()
  17.     字符串.分割("1,2,3,4,5,6,7,8,9",",",数字)
  18.     数组空间.大小(数字,数字数)
  19. 功能结束
复制代码

我只想到了这样子。
回复 支持 反对

使用道具 举报

发表于 2014-3-16 10:01:04 | 显示全部楼层
变量 数组盒子="0|1|2|3|4|5|6|7|8|9|"//定义10个数字 0 - 9

//功能 随机数选取(随机)//使用传参随机数
功能 随机数选取()//不使用传参随机数
    成员,大小
    成功=字符串.分割(数组盒子,"|",成员)
    如果(成功)
        数组空间.大小(成员,大小)
        随机=辅助.随机数(0,9)//如果使用随机数是传参过来把这句去掉
        辅助.消息框("选择随机数:"&随机)
        遍历(ai=0;ai<大小;ai++)
            如果(成员[ai]==随机)
                调试输出("删除数组盒子内成员:  "&成员[ai]&" !")
                数组盒子=字符串.修剪(数组盒子,成员[ai]&"|")                 
                调试输出("新的数组盒子:"&数组盒子)
                跳出
            如果结束
        遍历结束
    如果结束
功能结束
回复 支持 反对

使用道具 举报

发表于 2014-3-17 04:16:23 | 显示全部楼层
  1. 功能 开始_点击()
  2.     线程.开启("测试.随机选择","")
  3. 功能结束


  4. 功能 随机选择()
  5.     号码池=数组[]
  6.     号码池=数组空间.重定义(号码池,假,34)
  7.     for(i=1;i<=33;i++)
  8.         号码池[i]=i
  9.     endfor
  10.     //初始化号码池
  11.    
  12.     选号数=6
  13.     //假如要选6个号
  14.    
  15.     已选号码=数组[]
  16.     已选号码=数组空间.重定义(已选号码,假,选号数+1)
  17.     //初始化已选号码
  18.    
  19.     已选数=0
  20.     最后内容
  21.    
  22. 选号:
  23.    
  24.     如果(已选数>=选号数)
  25.         for(n=1;n<=6;n++)
  26.             最后内容=最后内容&已选号码[n]&" "
  27.         endfor
  28.         辅助.消息框(最后内容)
  29.     如果结束
  30.     //判断是否已选完毕
  31.    
  32.     随机号码=辅助.随机数(1,33)
  33.     for(n=1;n<=6;n++)
  34.         如果(已选号码[n]==随机号码)//如果随机号在已选号码中能找到,则重新选号
  35.             跳转 选号
  36.         如果结束
  37.     endfor
  38.    
  39.     for(n=1;n<=6;n++)
  40.         如果(已选号码[n]==null)
  41.             已选号码[n]=随机号码
  42.             已选数++
  43.             跳转 选号
  44.         如果结束
  45.     endfor
  46.     //将选号按照选号顺序依次放入已选号码数组中
  47.    
  48.    
  49.    
  50. 功能结束
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-18 16:11 , Processed in 0.033681 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表