查看: 2744|回复: 6

[已经解决] 数组的一个问题

[复制链接]
梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
回帖
1111
发表于 2015-9-4 15:40:57 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 z2z4 于 2015-9-4 17:05 编辑

就是这个属性数组

for i in 1..8

  i 在循环 8次的时候  这个 a 的属性 如何 让他 随机数值
比如 [1,2,3,5,6,7,4,5]  这8个数值 如何 让他随机 我弄了半天都不行

   for a in rand(5)  这样写 好像不行  有高人 可以指点吗

    params = [a] * i

  end
end


难不成 只有这样写?

     e = rand(20)   f = rand(30)
      
     a = [e,f,3,4,5,6,7,8].shuffle
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
梦石
0
星屑
1314
在线时间
904 小时
注册时间
2014-12-4
回帖
349
发表于 2015-9-4 16:05:22 | 显示全部楼层
本帖最后由 翻滚牛宝宝 于 2015-9-4 16:38 编辑

这样就可以了……[pre lang="ruby"]a=[1,2,3,4,5,6,7,8].shuffle
for i in 1..8
  b=a
p b
end
[/pre]
shuffle是打乱数组内顺序 你把数组顺序打乱了 再按顺序读取就是随机了
你要是想要8个数的话 a.shuffle 就是了

点评

没看懂你写的什么鬼……  发表于 2015-9-4 17:06
e = rand(20) a = [e,2,3,4,5,6,7,8].shuffle 难不成 要这样写 才可以?  发表于 2015-9-4 17:05
a = [1,2,3,4,5,6,7,8].shuffle 我如何 在这个里面 增大数字 不知道怎么用变量加  发表于 2015-9-4 16:50
a.shuffle 这个可以是可以 数字的范围太小了  发表于 2015-9-4 16:48
这个 不是装备上的属性 格式 你这样写 肯定会出错的 属性有8位数字的  发表于 2015-9-4 16:40
回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-9-4 16:17:06 | 显示全部楼层
直接rand呗
  1. for i in 1..8
  2.     a = rand(8) + 1
  3.     p a
  4. end
复制代码

点评

没用 8个数值 全是一致的 没法 截图  发表于 2015-9-4 16:20
回复

使用道具 举报

梦石
0
星屑
1314
在线时间
904 小时
注册时间
2014-12-4
回帖
349
发表于 2015-9-4 16:55:03 | 显示全部楼层
翻滚牛宝宝 发表于 2015-9-4 16:05
这样就可以了……a=[1,2,3,4,5,6,7,8].shuffle
for i in 1..8
  b=a

你搜一下数组 就知道怎么用了

点评

我自己 已经想出另外一个 方法了 搞定  发表于 2015-9-4 17:22
回复

使用道具 举报

梦石
0
星屑
1314
在线时间
904 小时
注册时间
2014-12-4
回帖
349
发表于 2015-9-4 17:28:37 | 显示全部楼层
不用e f 直接rand(20 ) rand(30)
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-9-4 17:37:13 | 显示全部楼层
本帖最后由 VIPArcher 于 2015-9-4 17:38 编辑


http://tieba.github.io/common/howtoask.html
回复

使用道具 举报

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
回帖
1057
发表于 2015-9-4 18:43:06 | 显示全部楼层
本帖最后由 墨凌羽 于 2015-9-4 12:48 编辑
喵呜喵5 发表于 2015-9-4 10:17
直接rand呗


@楼主 3楼错哪里了来来来我们谈谈
一下是将3楼代码运行1000次后的输出结果。我对生成的1~8的每个数字出现的次数做了统计,结果如下
统计:
1出现次数:7933
2出现次数:8010
3出现次数:8070
4出现次数:8010
5出现次数:8041
6出现次数:7939
7出现次数:7813
8出现次数:8184

可以看出每个数字出现的次数很均匀。完全符合随机的要求
虽然说8个数字为同一个的概率只有(1/8)^8这么小 但偏偏被你撞上也不能怪谁。俗话说点背不能怪社会不是?就这样认为3楼脚本有问题是不是太过不厚道?

竟然说我家喵呜喵5的脚本有问题 分分钟打脸!

测试结果文件: test.rar (288.15 KB, 下载次数: 37) 【将后缀改成txt再打开】

测试代码[pre lang="ruby" line="1"]File.open("test.txt","w") do |f|
  table = []
  #随机1000*8次
  1000.times do |x|
    list = []
    for i in 1..8
      list.push(rand(8) + 1)
    end
    f.write("第#{x+1}次:#{list}\n")
    table.push(list)
  end
  #统计各个数字出现次数
  count = [0,0,0,0,0,0,0,0,0]
  table.each do |i|
    i.each do |n|
      case n
      when 1
        count[1] += 1
      when 2
        count[2] += 1
      when 3
        count[3] += 1
      when 4
        count[4] += 1
      when 5
        count[5] += 1
      when 6
        count[6] += 1
      when 7
        count[7] += 1
      when 8
        count[8] += 1
      end
    end
    count[0] += 8
  end
  p count[0],count[1]/count[0]
  f.write("统计:\n")
  f.write("1出现次数:#{count[1]}\n")
  f.write("2出现次数:#{count[2]}\n")
  f.write("3出现次数:#{count[3]}\n")
  f.write("4出现次数:#{count[4]}\n")
  f.write("5出现次数:#{count[5]}\n")
  f.write("6出现次数:#{count[6]}\n")
  f.write("7出现次数:#{count[7]}\n")
  f.write("8出现次数:#{count[8]}\n")
end[/pre]

点评

你够了,他要的是shuffle  发表于 2015-9-4 23:08
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部