Ruby:如何制作数组加法求逆的方法
我正在尝试创建一个方法,当您将一个数组传递给它时,将创建一个新数组,该数组是它的加法逆(例如:[1,2,3,4]=>(加法逆)[-1,-2,-3,-4]。我尝试了包括Enumerable和Puting.each。我还去掉了.map,然后留下了未定义的方法“x”。我多次使用代码,并研究了几个站点,了解如何在数组中的每个元素传递到方法时对其进行操作。我最近遇到的是:Ruby:如何制作数组加法求逆的方法,ruby,Ruby,我正在尝试创建一个方法,当您将一个数组传递给它时,将创建一个新数组,该数组是它的加法逆(例如:[1,2,3,4]=>(加法逆)[-1,-2,-3,-4]。我尝试了包括Enumerable和Puting.each。我还去掉了.map,然后留下了未定义的方法“x”。我多次使用代码,并研究了几个站点,了解如何在数组中的每个元素传递到方法时对其进行操作。我最近遇到的是: def add_inv (x) arr_new = x.map {|e| -e} puts arr_new end a
def add_inv (x)
arr_new = x.map {|e| -e}
puts arr_new
end
add_inv([5,-7,8,3])
输出:
-5
7
-8
-3
我正在寻找数组形式的输出。
期望输出:[-5,7,-8,-3]
提前感谢您的积极反馈和批评。
(Ruby新手)
编辑:12:29-2020年4月13日
在进一步使用下面的代码和一些建议的同时,我能够使用下面的代码操纵数组,并将继续研究一个方法,该方法允许您将数组作为参数传递,然后将其转换为逆数组。下面是给我所需输出的代码(但仍然不是方法)
输出:[-5,7,-8,-3]
一旦我弄明白如何使用某个方法执行此操作,将立即更新。对不起,第一次误解了您的问题,这里的问题是
放置
处理不同的数组,当您尝试显示它们时,您可以使用p
或打印
来执行您想要的操作,下面是示例
def add_inv_with_puts(x)
puts x.map {|e| -e}
end
add_inv_with_puts([5,-7,8,3])
def add_inv_with_p(x)
p x.map {|e| -e}
end
add_inv_with_p([5,-7,8,3])
def add_inv_with_print(x)
print x.map {|e| -e}
end
add_inv_with_print([5,-7,8,3])
抱歉,第一次误解了您的问题,这里的问题是当您尝试显示不同的数组时,
put
处理不同的数组,然后您可以使用p
或print
执行您想要的操作,下面是示例
def add_inv_with_puts(x)
puts x.map {|e| -e}
end
add_inv_with_puts([5,-7,8,3])
def add_inv_with_p(x)
p x.map {|e| -e}
end
add_inv_with_p([5,-7,8,3])
def add_inv_with_print(x)
print x.map {|e| -e}
end
add_inv_with_print([5,-7,8,3])
在根据其他人发布的内容对代码进行了更多的修改之后,我能够得到一个适用于任何数组的方法
def add_inv (x)
#b = Array.new (not needed)
b = x.map{|v| -v}
p b
end
add_inv([1,2,3,4])
add_inv([5,-7,8,3])
输出:
[-1, -2, -3, -4]
[5,7,-8,-3]
感谢您提供的信息,并向正确的方向推进。在根据其他人发布的内容对代码进行了更多的修改之后,我能够得到一种适用于任何数组的方法
def add_inv (x)
#b = Array.new (not needed)
b = x.map{|v| -v}
p b
end
add_inv([1,2,3,4])
add_inv([5,-7,8,3])
输出:
[-1, -2, -3, -4]
[5,7,-8,-3]
感谢您提供的信息,并向正确的方向推进。您能添加所需的输出吗?什么是“数组的加法逆”?数组和串联不会形成一个环,因此我不认为类似于“数组的加法逆”的东西甚至存在!直观地说,数组
a
的加法逆i
将是数组,当与a
连接时,该数组将产生空数组。这显然是不可能的。您要找的是x
函数。矩阵形式是什么意思?数组的矩阵形式是什么?我添加了编辑根据我收到的评论回复到原始帖子。请随意回顾并回复新信息。再次感谢您的帮助。您可以添加所需的输出吗?什么是“数组的加法逆”?数组和串联不会形成一个环,因此我不认为类似于“数组的加法逆”的东西甚至存在!直观地说,数组a
的加法逆i
将是数组,当与a
连接时,该数组将产生空数组。这显然是不可能的。您要找的是x
函数。矩阵形式是什么意思?数组的矩阵形式是什么?我添加了编辑根据我收到的评论,转到原来的帖子。请随意查看并回复新信息。再次感谢您的帮助。.map{v |-v}
有什么问题吗?(在v
周围没有括号)当我最初查找这个问题时,我也找到了这个答案,但我不太确定是谁来解释这个问题,并将其转换成一个我可以反复使用的方法。上面的内容似乎需要在你想要使用的任何数组上写出来。我想做更多我最初发布的内容,创建一个r任意数组。@axiac没有区别,我只是误解了这个问题,我的朋友,谢谢!我已经在文档中添加了所有这三个示例。非常有用。.map{v|v}
有什么问题吗?(在v
周围没有括号)当我最初查找这个问题时,我也找到了这个答案,但我不太确定是谁来解释这个问题,并将其转换成一个我可以反复使用的方法。上面的内容似乎需要在你想要使用的任何数组上写出来。我想做更多我最初发布的内容,创建一个r任意数组。@axiac没有区别,我只是误解了这个问题,我的朋友谢谢!我已经将这三个示例都添加到文档中了。非常有用。方法的第一行是无用的:您分配b
,但是您在下一行重新分配它,而从未对b
执行任何操作,因此您可以直接删除它第一行。谢谢。最初我认为我需要声明b将是一个数组。谢谢你的更正,这是有意义的。你方法的第一行是无用的:你分配b
,但是你在下一行重新分配它,而从来没有对b
,所以你可以删除第一行。谢谢你。最初我认为我需要声明b将是一个数组。谢谢你的更正,这很有意义。