13
逆順列インデックス
前書き リストの辞書式の順列n個の要素は、0から番号を付けることができ、N!-1.たとえば、3!= 6個の順列が(1,2,3)あろう(1,2,3)、(1,3,2)、(2,1,3)、(2,3,1)、(3,1,2)、(3,2,1)。 順列がリストに適用されると、その要素は順列の数字と同じ順序で並べられます。たとえば、yieldsに順列(2,3,1)を適用しl = (a,b,c)ます(l[2],l[3],l[1]) = (b,c,a)。 順列の逆は、この操作を逆にする順列として定義されます。つまり、順列を適用し、その逆(またはその逆)は配列を変更しません。たとえば、yの逆(2,3,1)は(3,1,2)、(b,c,a)yieldsに適用されるため(a,b,c)です。 また、順列自体に適用される順列の逆は、整数1… nを生成します。たとえば、yields に適用(3,1,2)し(2,3,1)ます(1,2,3)。 私たちは今、関数定義revind(Xをインデックスと順列の逆置換の指標として)のx。(興味がある場合、これはA056019です。) インデックスの順列ので、私は唯一の最後の変更のkリストの項目を場合に限っ 0≤ I < K!、我々は影響を与えずに、リストの先頭に任意の数の要素を追加することができますrevind(Iを)。したがって、リストの長さは結果に影響しません。 チャレンジ あなたのタスクはrevind(x)を実装することです。入力/引数として単一の非負整数xを取り、結果を単一の非負整数として出力/返す完全なプログラムまたは関数を作成します。 入力および出力は0インデックスまたは1インデックスの場合がありますが、これはそれらの間で一貫している必要があります。 インデックスによって順列を生成する、順列のインデックスを返す、または逆順列を見つける組み込み関数は禁止されています。(すべての順列または次の順列を生成するビルトインが許可されます。) 標準のコードゴルフ規則が適用されます。 例 以下の例は0から始まります。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 3628 2000 …
17
code-golf
combinatorics
permutations
code-golf
image-processing
brainfuck
encode
steganography
code-golf
ascii-art
code-golf
ascii-art
kolmogorov-complexity
code-golf
ascii-art
fibonacci
code-golf
string
code-golf
sorting
popularity-contest
statistics
code-golf
ascii-art
kolmogorov-complexity
code-golf
code-golf
ascii-art
tic-tac-toe
code-golf
string
code-challenge
classification
test-battery
binary-matrix
code-golf
math
arithmetic
code-golf
ascii-art
random
code-golf
string
code-golf
number
binary
bitwise
code-golf
number
arithmetic
code-golf
math
ascii-art
code-golf
string
ascii-art
code-golf
string
ascii-art
code-golf
string
code-golf
counting
code-golf
number
binary
bitwise
decision-problem
code-golf
array-manipulation
code-golf
tips
brain-flak
code-challenge
quine
source-layout
code-generation
code-golf
linear-algebra
matrix
abstract-algebra
binary-matrix
code-golf
string
palindrome
code-golf
puzzle-solver
sudoku
code-golf
ascii-art
code-golf
graphical-output
internet
code-golf
ascii-art
kolmogorov-complexity
code-golf
math
code-golf
clock