セグメント化された数のシーケンスまたは測定の素数(OEIS A002048)は、各メンバーがで、以前の連続した数の合計で作成できない最小の正の(ゼロより大きい)数であるような数のシーケンスですa(0) = 1
。
例
計算するにa(7)
は、最初にを計算しa(0->6) = [1, 2, 4, 5, 8, 10, 14]
ます。次に、ゼロから開始し、シーケンス内の1つ以上の連続した数字の合計ではない数字が見つかるまで数字を調べます。
1 = 1
2 = 2
3 = 1 + 2
4 = 4
5 = 5
6 = 2 + 4
7 = 1 + 2 + 4
8 = 8
9 = 4 + 5
10 = 10
11 = 2 + 4 + 5
12 = 1 + 2 + 4 + 5
13 = 5 + 8
14 = 14
15 = ????
連続するサブシーケンスを合計することで15を作成することはできず、シーケンス内の次の番号は15より小さい番号になる可能性があるためです。 a(7) = 15
仕事
あなたの仕事は、(標準的な方法を介して)数を取得し、(標準的な出力方法を介して)このシーケンスのn番目の用語を出力することです。これはコードゴルフであり、そのように得点されます。
テストケース
0 -> 1
1 -> 2
2 -> 4
3 -> 5
4 -> 8
5 -> 10
6 -> 14
7 -> 15
8 -> 16
9 -> 21
()
適切な機能を実現するには、さらに2バイト必要で、最後の行を囲む必要があると思います。部分的に適用されるの!!
は演算子セクションであり()
、関数にするために囲まなければなりません。それなしでは、欠落した引数を持つ関数(または厳密なHaskellの用語を使用するための「値」)になるだけのスニペットです。