Ruby中带有示例的Array.permutation()方法

Ruby Array.permutation()方法

在本文中,我们将研究Array.permutation()方法。你们都必须认为该方法必须执行与创建某些元素的排列相关的操作。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法并演示程序代码来理解它。

方法说明:

该方法是一个公共实例方法,为Ruby库中的Array类定义。该方法的工作方式是:从Array实例中获取元素,并根据方法中传递的数字进行排列,然后返回Array实例本身。此方法不能保证所产生元素的顺序。使用块或Array调用此方法,并通过.to_a方法将结果转换为Array实例。

如果您不提供任何块,则枚举器本身将返回。

语法:

    permutation(n) { |c| block }

Argument(s) 需要:

此方法仅需要一个参数。此参数确定Array实例元素可能的排列数量。

范例1:

=begin
Ruby program to demonstrate permutation method
=end

a = [1, 2, 3]
puts "Array permutation method"

print a.permutation(1).to_a  
puts ""
print a.permutation(2).to_a
puts ""  
print a.permutation(3).to_a

输出结果

Array permutation method
[[1], [2], [3]]
[[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]]
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

说明:

在上面的代码中,您可以观察到此方法用于创建数组元素的排列。根据在方法内部传递的参数创建排列。可以进行N个组合,并且n可以是Array实例的长度乘以方法中传递的整数。

范例2:

=begin
Ruby program to demonstrate permutation method
=end

a = ["Sucharu","Shalini"]
puts "Array permutation method"

print a.permutation(1).to_a  
puts ""
print a.permutation(2).to_a
puts ""  
print a.permutation(3).to_a

输出结果

Array permutation method
[["Sucharu"], ["Shalini"]]
[["Sucharu", "Shalini"], ["Shalini", "Sucharu"]]
[]

说明:

在上面的示例中,您可以观察到该方法也适用于String Array实例。此方法在进行元素排列后返回元素。对于String Array,该方法将返回“ nil”,或者可以说,如果Array的长度小于调用时在方法中传递的整数参数,则无法进行置换。