Project1

标题: 数组的一个问题 [打印本页]

作者: z2z4    时间: 2015-9-4 15:40
标题: 数组的一个问题
本帖最后由 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
作者: 翻滚牛宝宝    时间: 2015-9-4 16:05
本帖最后由 翻滚牛宝宝 于 2015-9-4 16:38 编辑

这样就可以了……
RUBY 代码复制
  1. a=[1,2,3,4,5,6,7,8].shuffle
  2. for i in 1..8
  3.   b=a[i]
  4. p b
  5. end

shuffle是打乱数组内顺序 你把数组顺序打乱了 再按顺序读取就是随机了
你要是想要8个数的话 a.shuffle 就是了
作者: 喵呜喵5    时间: 2015-9-4 16:17
直接rand呗
  1. for i in 1..8
  2.     a = rand(8) + 1
  3.     p a
  4. end
复制代码

作者: 翻滚牛宝宝    时间: 2015-9-4 16:55
翻滚牛宝宝 发表于 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:28
不用e f 直接rand(20 ) rand(30)
作者: VIPArcher    时间: 2015-9-4 17:37
本帖最后由 VIPArcher 于 2015-9-4 17:38 编辑


http://tieba.github.io/common/howtoask.html
作者: 墨凌羽    时间: 2015-9-4 18:43
本帖最后由 墨凌羽 于 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再打开】

测试代码
RUBY 代码复制
  1. File.open("test.txt","w") do |f|
  2.   table = []
  3.   #随机1000*8次
  4.   1000.times do |x|
  5.     list = []
  6.     for i in 1..8
  7.       list.push(rand(8) + 1)
  8.     end
  9.     f.write("第#{x+1}次:#{list}\n")
  10.     table.push(list)
  11.   end
  12.   #统计各个数字出现次数
  13.   count = [0,0,0,0,0,0,0,0,0]
  14.   table.each do |i|
  15.     i.each do |n|
  16.       case n
  17.       when 1
  18.         count[1] += 1
  19.       when 2
  20.         count[2] += 1
  21.       when 3
  22.         count[3] += 1
  23.       when 4
  24.         count[4] += 1
  25.       when 5
  26.         count[5] += 1
  27.       when 6
  28.         count[6] += 1
  29.       when 7
  30.         count[7] += 1
  31.       when 8
  32.         count[8] += 1
  33.       end
  34.     end
  35.     count[0] += 8
  36.   end
  37.   p count[0],count[1]/count[0]
  38.   f.write("统计:\n")
  39.   f.write("1出现次数:#{count[1]}\n")
  40.   f.write("2出现次数:#{count[2]}\n")
  41.   f.write("3出现次数:#{count[3]}\n")
  42.   f.write("4出现次数:#{count[4]}\n")
  43.   f.write("5出现次数:#{count[5]}\n")
  44.   f.write("6出现次数:#{count[6]}\n")
  45.   f.write("7出现次数:#{count[7]}\n")
  46.   f.write("8出现次数:#{count[8]}\n")
  47. end





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1