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篇关于这个主题的文章,因为所有这些都有不同的解释,你可能无法立即理解。祝你好运 我想知道答案。第一个非常有用)谢谢你,如果你觉得有用的话,请随意选择这个作为最佳答案。