Ruby:如何制作数组加法求逆的方法

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

我正在尝试创建一个方法,当您将一个数组传递给它时,将创建一个新数组,该数组是它的加法逆(例如:[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

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将是一个数组。谢谢你的更正,这很有意义。