本文简要介绍ruby语言中 Array.repeated_combination
的用法。
用法
repeated_combination(n) {|combination| ... } → self
repeated_combination(n) → new_enumerator
使用 self
的元素的长度 n
的每个重复组合调用块;每个组合都是一个数组;返回 self
。组合的顺序是不确定的。
当给出一个块和一个正整数参数 n
时,调用带有每个 n
-tuple 重复组合 self
元素的块。组合数为 (n+1)(n+2)/2
。
n
= 1:
a = [0, 1, 2]
a.repeated_combination(1) {|combination| p combination }
输出:
[0]
[1]
[2]
n
= 2:
a.repeated_combination(2) {|combination| p combination }
输出:
[0, 0]
[0, 1]
[0, 2]
[1, 1]
[1, 2]
[2, 2]
如果n
为零,则使用空数组调用块一次。
如果n
为负数,则不调用该块:
a.repeated_combination(-1) {|combination| fail 'Cannot happen' }
如果没有给出块,则返回一个新的枚举器:
a = [0, 1, 2]
a.repeated_combination(2) # => #<Enumerator: [0, 1, 2]:combination(2)>
使用枚举器,可以方便地显示 n
的某些值的组合和计数:
e = a.repeated_combination(0)
e.size # => 1
e.to_a # => [[]]
e = a.repeated_combination(1)
e.size # => 3
e.to_a # => [[0], [1], [2]]
e = a.repeated_combination(2)
e.size # => 6
e.to_a # => [[0, 0], [0, 1], [0, 2], [1, 1], [1, 2], [2, 2]]
相关用法
- Ruby Array.repeated_combination()用法及代码示例
- Ruby Array.repeated_permutation()用法及代码示例
- Ruby Array.repeated_permutation用法及代码示例
- Ruby Array.replace()用法及代码示例
- Ruby Array.replace用法及代码示例
- Ruby Array.reject!用法及代码示例
- Ruby Array.reject用法及代码示例
- Ruby Array.reverse用法及代码示例
- Ruby Array.reverse!用法及代码示例
- Ruby Array.reverse_each用法及代码示例
- Ruby Array.rassoc(obj)用法及代码示例
- Ruby Array.rotate()用法及代码示例
- Ruby Array.rindex用法及代码示例
- Ruby Array.rotate!用法及代码示例
- Ruby Array.rassoc用法及代码示例
- Ruby Array.rrindex()用法及代码示例
- Ruby Array.rotate用法及代码示例
- Ruby Array.rassoc()用法及代码示例
- Ruby Array.push用法及代码示例
- Ruby Array.hash用法及代码示例
- Ruby Array.to_a用法及代码示例
- Ruby Array.to_h用法及代码示例
- Ruby Array.to_s用法及代码示例
- Ruby Array.array + other_array用法及代码示例
- Ruby Array.take()用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Array.repeated_combination。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。