TC官方合作论坛

 找回密码
 立即注册
查看: 317|回复: 4
打印 上一主题 下一主题

[已解决] 功能 取不重复随机数(Min, Max, Num)

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-29 05:30:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x

  1. 功能 取不重复随机数(Min, Max, Num)
  2.     变量 结果 = 数组()
  3.     如果(Max > Min && Num <= (Max - Min))
  4.         变量 标识 = 数组()
  5.         遍历(变量 i = 0; i < Num; i++)
  6.             循环(真)
  7.                 变量 n = 随机数(Min, Max)
  8.                 如果(标识[n] != 1)
  9.                     结果[i] = n
  10.                     标识[n] = 1
  11.                     跳出
  12.                 结束
  13.             结束
  14.         结束
  15.         返回 结果
  16.     否则
  17.         返回 -1
  18.     结束
  19. 结束
复制代码


请问这源码怎么改取不重复随机数演示的效果,个人小白理解不了,调试没反应
回复

使用道具 举报

板凳
发表于 2015-10-29 08:52:16 | 只看该作者
这样试下看就明白了吧
  1. 功能 按钮0_点击()
  2.     变量 最大 = 15//------待取随机数最大值
  3.     变量 最小 = 3//-------待取随机数最小值
  4.     变量 个数 = 9//-------待取随机数个数
  5.     变量 数据 = 取不重复随机数(最小,最大,个数)
  6.     如果(数据==-1)
  7.         消息框("最大数与最小数设置不当,或所取个数超出范围")
  8.     否则
  9.         变量 数字串 = 数据[0]
  10.         遍历(变量 i = 1; i < 个数; i++)
  11.             数字串 = 数字串&","&数据[i]
  12.         结束
  13.         消息框("结果:"&数字串)
  14.     结束
  15. 结束

  16. 功能 取不重复随机数(Min, Max, Num)
  17.     变量 结果 = 数组()
  18.     如果(Max > Min && Num <= (Max - Min))
  19.         变量 标识 = 数组()
  20.         遍历(变量 i = 0; i < Num; i++)
  21.             循环(真)
  22.                 变量 n = 随机数(Min, Max)
  23.                 如果(标识[n] != 1)
  24.                     结果[i] = n
  25.                     标识[n] = 1
  26.                     跳出
  27.                 结束
  28.             结束
  29.         结束
  30.         返回 结果
  31.     否则
  32.         返回 -1
  33.     结束
  34. 结束
复制代码
回复 支持 反对

使用道具 举报

沙发
发表于 2015-10-29 08:29:13 | 只看该作者
有源码...好像是言术大哥分享过!!
回复 支持 反对

使用道具 举报

地板
发表于 2015-10-29 09:10:15 | 只看该作者
这个是 忆辰辅助 共享的
原帖:
http://bbs.tyuyan.net/forum.php? ... F%E6%9C%BA%E6%95%B0

  1. 功能 取不重复随机数(最小值, 最大值, 生成个数)
  2.     变量 结果 = 数组()
  3.     如果(最大值 > 最小值 && 生成个数 <= (最大值 - 最小值))
  4.         变量 标识 = 数组()
  5.         遍历(变量 i = 0; i < 生成个数; i++)
  6.             循环(真)
  7.                 变量 n = 随机数(最小值, 最大值)
  8.                 如果(标识[n] != 1) //最后n生成还是6的话,标识[6]已经为1了,跳过,重新生成
  9.                     结果[i] = n  //先看这里,假如n是6
  10.                     标识[n] = 1  //然后把另一个数组 标识[6] 赋值为1
  11.                     跳出
  12.                 结束
  13.             结束
  14.         结束
  15.         返回 结果
  16.     否则
  17.         返回 -1
  18.     结束
  19. 结束

  20. 功能 测试()
  21.     变量 返回数组=取不重复随机数(0,9,5)
  22.     遍历(变量 i = 0; i < 5; i++)
  23.         调试输出(返回数组[i])
  24.     结束
  25. 结束
复制代码
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-10-29 09:27:00 | 只看该作者
感谢各位大神指教, 指教的人多, 只能采纳先回复的了, 抱歉.
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

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

GMT+8, 2025-9-21 14:08 , Processed in 0.196102 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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