Ruby 如何创建多个变量之和的序列数组并标记唯一范围?

Ruby 如何创建多个变量之和的序列数组并标记唯一范围?,ruby,arrays,range,Ruby,Arrays,Range,我在这个网站上的第一个问题。。。在他身后是第二个) 有没有可能在ruby中创建几个数字之和的序列数组 有一种观点: n1 = 3 n2 = 8 n3 = 2 n1 + n2 + n3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]` 第二个问题:是否可以跟踪创建数组中每个变量的范围 from previous example n1 = [1, 2, 3] or (1..3) n2 = [4, 5, 6, 7, 8, 9, 10, 11] or (

我在这个网站上的第一个问题。。。在他身后是第二个)
有没有可能在ruby中创建几个数字之和的序列数组

有一种观点:

n1 = 3
n2 = 8
n3 = 2
n1 + n2 + n3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]`
第二个问题:是否可以跟踪创建数组中每个变量的范围

from previous example


n1 = [1, 2, 3] or (1..3)
n2 = [4, 5, 6, 7, 8, 9, 10, 11] or (4..11)
n3 = [12, 13] or (12..13)
我的意思是,我需要根据值跟踪第一个问题中创建的数组的“片段”​​为数组中的n1、n2、n3求和或采用标签的变量的集合,这些变量必须是唯一的范围

示意图

                 n1 = 3            n2 = 8          n3 = 2
                |-----|  |----------------------|  |----|

n1 + n2 + n3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
                |_____|  |______________________|  |____|
                   n1              n2                n3
生命的例子。 假设我们需要预订一次短途旅行。这辆公共汽车有30个座位。 欢迎大家预订任何数量的座位。座位必须是唯一的。客户可以购买多个。 在我们的例子中,一名游客“n1”在公共汽车上买了3张票,从第一个座位到第三个座位。 第二位游客“n2”从第四位到第十一位买了八个座位(他不能坐在前三个座位上,因为这是游客“n1”独有的)

也许我在考虑坏模式,但我还没有实践

ps:是的,我是一个noob,我还有很多问题)
感谢您的回答

欢迎来到Stack Overflow!以下是对您的问题的快速回答:

a) 是的,你可以:

numbers = [3,8,2]
sum_of_those_numbers = numbers.inject(&:+)
sequential_array = (1..sum_of_those_numbers).to_a
b) 如果数组包含从最小到最大的数字,则其范围将是第一个和最后一个元素:

n1 = [4, 5, 6, 7, 8, 9, 10, 11]
puts n1.first
puts n1.last
range = (n1.min..n1.max)
即使您的数组不包含从最小到最大的数字,您也可以使用n1.min查找数组中的最小数字,使用n1.max查找最大数字


有些事情你可能不太清楚,尤其是inject方法,我建议你在谷歌上搜索并阅读2-3篇关于这个主题的文章,因为所有这些都有不同的解释,你可能无法立即理解。祝你好运

我想知道答案。第一个非常有用)谢谢你,如果你觉得有用的话,请随意选择这个作为最佳答案。