combinat[rankcomb] - 組み合わせの辞書式順序のランクを計算
combinat[unrankcomb] - 辞書式順序のランクを使用した組み合わせの計算
|
使い方
|
|
rankcomb( s, n )
unrankcomb( r, n, k )
|
|
パラメータ
|
|
s
|
-
|
set(posint); n について 1 から n の正の整数
|
n
|
-
|
posint; 組み合わせの要素が選択される集合のサイズ
|
k
|
-
|
posint; 組み合わせのサイズ
|
r
|
-
|
posint; 組み合わせのランク
|
|
|
|
|
説明
|
|
•
|
正の整数 n について 1から n の整数の組み合わせ (サブセット) s において、コマンド rankcomb( 's', 'n' ) は s の辞書式順序のランクを計算します。つまり、s が k 個の要素を含み、{1,2,...,n} の k 個のサブセットが辞書式にリストされている場合、この順番のリストで与えられたサブセットの位置を出力します。
|
•
|
ランク r (ここで r は最大で binomial(n,k)) の場合、コマンド unrankcomb( 'r', 'n', 'k' ) は {1,2,...,n} の k 個のサブセットの辞書式順序のリストで r 番目の位置で発生する {1,2,...,n} のk 個のサブセットを計算します。
|
•
|
コマンド rank および unrank は互いに反転関係にあり、rankcomb( unrankcomb( r, k, n ), n ) = r および unrankcomb( rankcomb( s, n ), nops( s ), n ) = s を満たします。
|
|
|
互換性
|
|
•
|
combinat[rankcomb] コマンドは Maple 16 で導入されました。
|
|
|
スレッド安全性
|
|
•
|
Maple 16 から、combinat[rankcomb] コマンドはスレッドセーフになりました。
|
|
|
例
|
|
>
|
rankcomb( { 2, 3, 4 }, 5 );
|
| (1) |
>
|
rankcomb( { 2, 3, 4 }, 9 );
|
| (2) |
>
|
unrankcomb( 29, 9, 3 );
|
| (3) |
|
|