网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月26日漏签0天
lua吧 关注:11,641贴子:21,999
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 12回复贴,共1页
<<返回lua吧
>0< 加载中...

lua生成1-100内的,n个不相同随机数,有什么好的方法吗,求大神

  • 只看楼主
  • 收藏

  • 回复
  • ly08252436
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如题


  • 梦里张扬
  • 富有美誉
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
n个不相同就是1-100洛
   --只要凑足十五字就好、刚刚好十五个


2025-12-26 15:38:29
广告
不感兴趣
开通SVIP免广告
  • 青天白日地上紅
  • 富有美誉
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
n = 0
function ()
local n = n + 1
while n < 100 do
math.random(100)
end
end
如果需要不同的,可能要用到table


  • 780605883
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
可以看成是全排列的问题,最简单的方法 :
local N = 100
local array = {}
for i = 1 , N do
array[i] = i
end
for i = 1 , N do
local j = math.random(N - i + 1) + i - 1;
array[i],array[j] = array[j],array[i]
end
for i = 1 , N do
print(array[i])
end
可以分析出这个程序可以产生N!种排列,所以应该算得上是随机的


  • 静看花开花落
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
索引随机 array[100]赋值1-100,循环{每次随机r=0~(n-1) 去取出array[r] set array[r]=array[n-1],n--}直到n=0


  • niceqiaodan24
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
local n =100
math.randomseed(os.time())
for i=1,n do
print(math.random(i))
end
不知道这样可不可以


  • www93814
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把100个数交换100次顺序就可以了啊


  • wykddd1
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
math.randomseed(os.time())
local t ={}
local n = 50
for i= 1,100 do
table.insert(t,i)
end
for i = 1,n do
local nNum = math.random(1,#t)
print(t[nNum])
table.remove(t,nNum)
end


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 12回复贴,共1页
<<返回lua吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示