周期的に自己記述的なリスト
次の条件が当てはまる場合、正の整数のリストは周期的に自己記述的です。
- は空ではありません。
- の最初と最後の要素は異なります。
- を等しい要素の実行に分割すると、各実行の要素は次の実行の長さに等しく、最後の実行の要素は最初の実行の長さに等しくなります。
例えば、検討。空ではなく、最初と最後の要素が異なります。私たちが実行にそれを破るとき、私たちが得る。
- 最初の実行は秒の実行であり、次の実行の長さはです。
- 第二のランは、実行される S、及び次のランの長さ、、である。
- 3回目は、実行される S、および次のランの長さは、である。
- 4番目の実行は秒の実行で、次の実行の長さはです。
- 最後に、最後の実行は、実行される S、および最初のランの長さは、であり、。
これは、が周期的に自己記述リストであることを意味します。
非例えば、リストの実行以降、周期的自己記述型でない Sは長さのランが続いている。リスト最後の実行はの実行されるので、また、周期的自己記述ない Sが、最初のランの長さを有しています。
タスク
この課題では、あなたの入力は整数。出力は、合計が等しい周期的自己記述リストの数になります。例えば、もたらすべき、周期的にので、その合計である自己記述リストである、、及び。最小のバイト数が優先され、他の標準的なコードゴルフ規則が適用されます。
ここからの入力の正しい出力値であるへ:
1 -> 0
2 -> 0
3 -> 0
4 -> 2
5 -> 0
6 -> 2
7 -> 0
8 -> 4
9 -> 0
10 -> 6
11 -> 6
12 -> 12
13 -> 0
14 -> 22
15 -> 10
16 -> 32
17 -> 16
18 -> 56
19 -> 30
20 -> 96
21 -> 56
22 -> 158
23 -> 112
24 -> 282
25 -> 198
26 -> 464
27 -> 364
28 -> 814
29 -> 644
30 -> 1382
31 -> 1192
32 -> 2368
33 -> 2080
34 -> 4078
35 -> 3844
36 -> 7036
37 -> 6694
38 -> 12136
39 -> 12070
40 -> 20940
41 -> 21362
42 -> 36278
43 -> 37892
44 -> 62634
45 -> 67154
46 -> 108678
47 -> 118866
48 -> 188280
49 -> 209784
50 -> 326878
4
予想外のひねり!説明の途中で、リストがCSDであるかどうかを判断するだけの面白くないタスクを期待していました。称賛。
—
スパー
定義に最初と最後の要素が同じリストが含まれておらず、リストが実際には明確な開始/終了のないサイクルである場合と同じように、同じグループとしてカウントされるのは少し残念です。
—
スパー
これはコードゴルフですので、リストが周期的に自己記述的であるかどうかを判断することはより興味深いと思います(ソリューションをより速く実行する)-すべてのリストとカウントを生成する以外の方法がない場合
—
user202729
多項式時間アルゴリズムがありますが、プログラムするのは非常に難しく、すべての可能なリストを生成および検証するソリューションほどゴルフではありません。
—
user202729
2を除く
—
ニトロドン
n,1,...,1
すべての偶数はとして取得でき、13を超えるすべての奇数は偶数に連結3,2,2,2,1,1
することで取得できます。13が不可能であることの証拠は、読者の練習問題として残されています。