【发布时间】:2018-05-02 14:42:50
【问题描述】:
我正在尝试在多维数组中生成坐标。
坐标中每个数字的范围是 -1 到 1。 似乎是比较两个随机数的方法。我遇到了麻烦,因为随机化它需要永远,坐标重复,有时不会一直填充。我试过uniq!这只会导致初始化在尝试提出不同的迭代时永远运行。
坐标看起来像这样。 (-1, 0, 1, 0, 0)
5 位数字给出位置。我可以把它们写出来,但我想在每次启动程序时生成坐标。然后将坐标分配给与键相关的哈希。 1 - 242。
我真的可以使用一些建议。
编辑添加代码。它确实开始迭代,但没有正确填写。只需写出一个包含所有可能组合的数组并在将其与密钥合并之前进行随机化。我不知道怎么做。
room_range = (1..241)
room_num = [*room_range]
p room_num
$rand_loc_cords = []
def Randy(x)
srand(x)
y = (rand(100) + 1) * 1500
z = (rand(200) + 1) * 1000
return z <=> y
end
def rand_loc
until $rand_loc_cords.length == 243 do
x = Time.new.to_i
$rand_loc_cords.push([Randy(x), Randy(x), Randy(x), Randy(x), Randy(x)])
$rand_loc_cords.uniq!
p $rand_loc_cords
end
#p $rand_loc_cords
end
rand_loc
【问题讨论】:
-
请告诉我们您尝试了什么。
-
用代码编辑
-
由于你不断地用相同的值重新播种随机数生成器,你显然会不断地得到相同的随机数。
-
是的,我希望因为时间会改变它会有所帮助,但我错了。
标签: arrays ruby multidimensional-array