names=combination
visibility=public
kind=defined

--- combination(n) {|c| block }    -> Array
--- combination(n)                 -> Enumerator

サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。

得られる組み合わせの順序は保証されません。ブロックなしで呼び出されると、組み合わせ
を生成する [[c:Enumerator]] オブジェクトを返します。

@param n 生成される配列のサイズを整数で指定します。
         整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
         黙の型変換を試みます。

@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
                 指定した場合に発生します。

例:

    a = [1, 2, 3, 4]
    a.combination(1).to_a  #=> [[1],[2],[3],[4]]
    a.combination(2).to_a  #=> [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
    a.combination(3).to_a  #=> [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]
    a.combination(4).to_a  #=> [[1,2,3,4]]
    a.combination(0).to_a  #=> [[]]: one combination of length 0
    a.combination(5).to_a  #=> []  : no combinations of length 5

@see [[m:Array#permutation]], [[m:Array#repeated_combination]]

