当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Array.repeated_permutation用法及代码示例


本文简要介绍ruby语言中 Array.repeated_permutation 的用法。

用法

repeated_permutation(n) {|permutation| ... } → self
repeated_permutation(n) → new_enumerator

self 的元素的长度 n 的每个重复排列调用块;每个排列都是一个数组;返回 self 。排列的顺序是不确定的。

当给出一个块和一个正整数参数 n 时,调用带有每个 n -tuple 重复排列 self 元素的块。排列的数量是 self.size**n

n = 1:

a = [0, 1, 2]
a.repeated_permutation(1) {|permutation| p permutation }

输出:

[0]
[1]
[2]

n = 2:

a.repeated_permutation(2) {|permutation| p permutation }

输出:

[0, 0]
[0, 1]
[0, 2]
[1, 0]
[1, 1]
[1, 2]
[2, 0]
[2, 1]
[2, 2]

如果n 为零,则使用空数组调用块一次。

如果n 为负数,则不调用该块:

a.repeated_permutation(-1) {|permutation| fail 'Cannot happen' }

如果没有给出块,则返回一个新的枚举器:

a = [0, 1, 2]
a.repeated_permutation(2) # => #<Enumerator: [0, 1, 2]:permutation(2)>

使用枚举器,可以方便地显示 n 的某些值的排列和计数:

e = a.repeated_permutation(0)
e.size # => 1
e.to_a # => [[]]
e = a.repeated_permutation(1)
e.size # => 3
e.to_a # => [[0], [1], [2]]
e = a.repeated_permutation(2)
e.size # => 9
e.to_a # => [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Array.repeated_permutation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。