取不重复随机数,懒人要怎么写啊

[复制链接]
查看4059 | 回复13 | 2021-11-15 21:01:40 | 显示全部楼层 |阅读模式
local 数字={5,8,8,6,9,0,7,7,4,2}


比如这个数组,里面有重复的数字8和7,怎么取不重复的,


回复

使用道具 举报

qq9451045 | 2021-11-15 22:57:07 | 显示全部楼层
金牌会员

安卓脚本,苹果脚本
脚本定制接单;自动化操作;手动能完成的都能做;
Q: 9451045
回复

使用道具 举报

zj1997 | 2021-11-16 00:00:57 | 显示全部楼层
本帖最后由 zj1997 于 2021-11-16 09:06 编辑

用for循环,依次判断当前值和剩余值对比,不重复就取出
回复

使用道具 举报

zj1997 | 2021-11-16 00:03:18 | 显示全部楼层
本帖最后由 zj1997 于 2021-11-16 11:16 编辑

临时写的,大概是正常的吧,没测试,重复的也要取一个值的话,把被对比的数值改到取出的值里面。原理差不多就是这样
  1. local 数字={5,6,8,7,5,7,9,2,3}
  2. local 取出值={}
  3. for i=1,#数字 do
  4.         local 是否重复=false
  5.         local 当前值=数字[i]
  6.         for n=1,#数字 do
  7.                 if n~=i then
  8.                         local 对比值=数字[n]
  9.                         if 当前值==对比值 then
  10.                                 是否重复=true
  11.                         end
  12.                 end
  13.         end
  14.         if 是否重复==false then
  15.                 取出值[(#取出值+1)]=当前值
  16.         end
  17. end
  18. print(取出值)
复制代码




回复

使用道具 举报

a4361510 | 2021-11-16 09:23:11 | 显示全部楼层
用for循环,依次判断当前值和剩余值对比,不重复就取出
回复

使用道具 举报

fojiao1992 | 2021-11-16 15:15:02 | 显示全部楼层
zj1997 发表于 2021-11-16 00:03
临时写的,大概是正常的吧,没测试,重复的也要取一个值的话,把被对比的数值改到取出的值里面。原理差不多 ...

牛比。如果不用真假变量能实现吗
回复

使用道具 举报

fojiao1992 | 2021-11-16 16:10:54 | 显示全部楼层
zj1997 发表于 2021-11-16 00:03
临时写的,大概是正常的吧,没测试,重复的也要取一个值的话,把被对比的数值改到取出的值里面。原理差不多 ...

if n~=i then   这里为什么是n不等于i 什么意思啊。为什么这样写,大佬救我
回复

使用道具 举报

zj1997 | 2021-11-16 17:02:02 | 显示全部楼层
fojiao1992 发表于 2021-11-16 16:10
if n~=i then   这里为什么是n不等于i 什么意思啊。为什么这样写,大佬救我

i获取当前值用作对比的,n是被对比的值,i~=n就是不和自身对比,i~=n和n~=i都是一样的
回复

使用道具 举报

zj1997 | 2021-11-16 17:04:05 | 显示全部楼层
如果经常需要用到的话,可以封装成函数
回复

使用道具 举报

Aitlo | 2021-11-16 17:06:47 | 显示全部楼层
本帖最后由 Aitlo 于 2021-11-16 17:22 编辑
  1. local 数字={5,8,8,6,9,0,7,7,4,2}
  2. newTab = {}
  3. randomTab = {}
  4. for k,v in pairs(数字)do
  5.         newTab[v] =v
  6. end
  7. for k,v in pairs(newTab)do
  8. table.insert(randomTab,v)
  9. end
  10. print("随机表内元素个数:",#randomTab)
  11. print("随机取一个元素:",rnd(1,#randomTab))
复制代码


回复

使用道具 举报

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

本版积分规则

9

主题

57

帖子

1639

积分

金牌会员

Rank: 6Rank: 6

积分
1639
QQ