セーケレスのシーケンス


9

定義

  • a(1) = 1
  • a(2) = 2
  • a(n)でのk>a(n-1)3項算術の進行を回避する最小数a(1), a(2), ..., a(n-1), kです。
  • 換言すれば、a(n)最小数でk>a(n-1)存在しないようにxyここで0<x<y<n及びa(y)-a(x) = k-a(y)

うまくいった例

の場合n=5

我々は持っています a(1), a(2), a(3), a(4) = 1, 2, 4, 5

の場合a(5)=62, 4, 6算術的な進行を形成します。

の場合a(5)=71, 4, 7算術的な進行を形成します。

の場合a(5)=82, 5, 8算術的な進行を形成します。

の場合a(5)=91, 5, 9算術的な進行を形成します。

の場合a(5)=10、算術の進行は見つかりません。

したがってa(5)=10

仕事

与えられたn、出力a(n)

スペック

  • n 正の整数になります。
  • 1インデックスの代わりに0インデックスを使用nできます0。その場合、0インデックスを使用している場合は、回答にそれを明記してください。

得点

私たちは3項算術の進行を回避しようとしているため、3は小さい数なので、バイト数の観点から、コードはできるだけ小さく(つまり、短く)する必要があります。

テストケース

テストケースは1インデックスです。0インデックスを使用できますが、使用する場合は回答でそれを指定してください。

1     1
2     2
3     4
4     5
5     10
6     11
7     13
8     14
9     28
10    29
11    31
12    32
13    37
14    38
15    40
16    41
17    82
18    83
19    85
20    86
10000 1679657

参考文献


2
関連。(私があなたの挑戦を正しく理解した場合。)
マーティンエンダー

@MartinEnderあなたは私の挑戦を正しく理解しました。
Leaky Nun

回答:



6

Haskell、37 36 32バイト

0ベースのインデックスを使用して、OEISエントリで指定された式を使用します。4バイトをありがとう@nimi!

a 0=1;a m=3*a(div m 2)-2+mod m 2

3

Python 3、28バイト

lambda n:int(bin(n)[2:],3)+1

引数を介して入力を取り、結果を返す無名関数。これはゼロインデックスです。

使い方

lambda n    Anonymous function with input zero-indexed term index n
bin(n)      Convert n to a binary string..
...[2:]     ...remove `0b` from beginning...
int(...,3)  ...convert from base-3 to decimal...
...+1       ...increment...
:...        and return

イデオーネでお試しください



2

ルビー、 28 24バイト

デニスと同じ方法を使用し、0ベースのインデックスを使用します。

->n{n.to_s(2).to_i(3)+1}

repl.itのテストケースを実行します。https://repl.it/Cif8/1



0

Java 8、52 46バイト

0インデックス付き。

i->Integer.valueOf(Integer.toString(i,2),3)+1;

必要はありませんが、return後でセミコロンが必要です
Leaky Nun

セミコロンは言うこの答えは数えられません。どちらの方法でも変更できますが、セミコロンを数えるのはコンセンサスですか?
ジャスティン

ええ、それは彼らが私に言ったことです。コンセンサスがそのようなものかどうかはわかりません。
Leaky Nun

了解しました。ノーリターンとセミコロンは、とにかく以前より短くなっています:)
Justin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.