TC官方合作论坛

标题: 如何获得一串随机不重复的数字 [打印本页]

作者: ht5124251    时间: 2015-6-15 17:48
标题: 如何获得一串随机不重复的数字


我想随机出一串 0~9  不重复的8位数字


比如
01245689     
02346789  
这样的

作者: 言术    时间: 2015-6-15 17:54
参考
http://bbs.tyuyan.com/thread-51521-1-1.html
作者: ht5124251    时间: 2015-6-15 18:03
言术 发表于 2015-6-15 17:54
参考
http://bbs.tyuyan.com/thread-51521-1-1.html

谢谢  看了  但是不懂怎么运用   能大致说明一下么  我小白一个 哈哈
作者: yy4363    时间: 2015-6-15 18:48
原帖:http://bbs.tyuyan.com/thread-51521-1-1.html



  1. ////只需要调用这个功能即可//
  2. //Min为随机数的最小值
  3. //Max为随机数的最大值
  4. //Num为随机数的位数、长度

  5. //按楼主的想法是 0-9 随机,不重复,取8位。

  6. 变量 随机串_数组 = 取不重复随机数(0,9,8)//原帖返回值数组
  7. //然后加工一下

  8.     变量 随机字符串
  9.     变量 数组_大小 = 数组大小(随机串_数组)
  10.     遍历(变量 i = 0; 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-6-15 22:39
给你个简单的

变量 随机字符串=随机数(0,9)&随机数(0,9)&随机数(0,9)&随机数(0,9)&随机数(0,9)&随机数(0,9)&随机数(0,9)&随机数(0,9)
调试输出("随机字符串:"&随机字符串)
作者: ht5124251    时间: 2015-6-16 11:36
小n 发表于 2015-6-15 22:02
支持任意字符串的字符单次分配
输出>>"结果:07248193,剩余:56"         

不行
作者: ht5124251    时间: 2015-6-16 11:44
小n 发表于 2015-6-15 22:02
支持任意字符串的字符单次分配
输出>>"结果:07248193,剩余:56"         

改成这样才能用
  1. 功能 楼主要的函数(长度,待分配字符串="0123456789")
  2.     长度=8
  3.     循环(真)
  4.         变量 待返回的结果=""
  5.         如果(长度<=字符串长度(待分配字符串))
  6.             遍历(变量 i = 0; i < 长度; i++)
  7.                 变量 随机位置=随机数(0,字符串长度(待分配字符串)-1)
  8.                 变量 本次分配的字符=字符串截取(待分配字符串,随机位置,随机位置+1)
  9.                 待返回的结果=待返回的结果&本次分配的字符
  10.                 待分配字符串=正则表达式替换(待分配字符串,本次分配的字符,"",真,假)
  11.             结束
  12.         结束
  13.         调试输出("结果:"&待返回的结果&",剩余:"&待分配字符串)
  14.         返回 待返回的结果
  15.     结束
  16. 结束
复制代码





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1