本文簡要介紹ruby語言中 Array.permutation
的用法。
用法
permutation {|element| ... } → self
permutation(n) {|element| ... } → self
permutation → new_enumerator
permutation(n) → new_enumerator
當使用塊調用時,產生 self
元素的所有排列;返回 self
。排列的順序是不確定的。
當給出一個塊和一個 in-range 正整數參數 n
( 0 < n <= self.size
) 時,調用具有所有 n
-tuple 排列的 self
的塊。
例子:
a = [0, 1, 2]
a.permutation(2) {|permutation| p permutation }
輸出:
[0, 1]
[0, 2]
[1, 0]
[1, 2]
[2, 0]
[2, 1]
另一個例子:
a = [0, 1, 2]
a.permutation(3) {|permutation| p permutation }
輸出:
[0, 1, 2]
[0, 2, 1]
[1, 0, 2]
[1, 2, 0]
[2, 0, 1]
[2, 1, 0]
當n
為零時,使用新的空數組調用塊一次:
a = [0, 1, 2]
a.permutation(0) {|permutation| p permutation }
輸出:
[]
當 n
超出範圍(負數或大於 self.size
)時,不調用該塊:
a = [0, 1, 2]
a.permutation(-1) {|permutation| fail 'Cannot happen' }
a.permutation(4) {|permutation| fail 'Cannot happen' }
當給出一個塊但沒有參數時,行為與 a.permutation(a.size)
相同:
a = [0, 1, 2]
a.permutation {|permutation| p permutation }
輸出:
[0, 1, 2]
[0, 2, 1]
[1, 0, 2]
[1, 2, 0]
[2, 0, 1]
[2, 1, 0]
如果沒有給出塊,則返回一個新的枚舉器:
a = [0, 1, 2]
a.permutation # => #<Enumerator: [0, 1, 2]:permutation>
a.permutation(2) # => #<Enumerator: [0, 1, 2]:permutation(2)>
相關用法
- Ruby Array.permutation()用法及代碼示例
- Ruby Array.push用法及代碼示例
- Ruby Array.pack()用法及代碼示例
- Ruby Array.pack用法及代碼示例
- Ruby Array.product()用法及代碼示例
- Ruby Array.prepend用法及代碼示例
- Ruby Array.pop用法及代碼示例
- Ruby Array.product用法及代碼示例
- Ruby Array.hash用法及代碼示例
- Ruby Array.to_a用法及代碼示例
- Ruby Array.to_h用法及代碼示例
- Ruby Array.to_s用法及代碼示例
- Ruby Array.array + other_array用法及代碼示例
- Ruby Array.take()用法及代碼示例
- Ruby Array.reject!用法及代碼示例
- Ruby Array.flatten!用法及代碼示例
- Ruby Array.reject用法及代碼示例
- Ruby Array.repeated_permutation()用法及代碼示例
- Ruby Array.index()用法及代碼示例
- Ruby Array.rassoc(obj)用法及代碼示例
- Ruby Array.values_at()用法及代碼示例
- Ruby Array.each用法及代碼示例
- Ruby Array.fetch用法及代碼示例
- Ruby Array.flatten用法及代碼示例
- Ruby Array.sort用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Array.permutation。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。