gpt4 book ai didi

ruby - 如何创建几个变量总和的顺序数组并标记唯一范围?

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:25 25 4
gpt4 key购买 nike

我在这个网站上的第一个问题......第二个问题在他之后)
是否有可能以某种方式在 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”在公共(public)汽车上买了 3 张票,从第一到第三个座位。第二个游客“n2”从第四个到第十一个买了八个座位(他不能坐前三个,因为它们是游客“n1”所独有的)。

也许我在想不好的模型,但我还没有实践。

ps: 是的,我是菜鸟,我还有很多问题)谢谢解答

最佳答案

欢迎来到 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篇文章,因为它们都有不同的解释,你可能无法立即理解。祝你好运!

关于ruby - 如何创建几个变量总和的顺序数组并标记唯一范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25982162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com