Geben Sie bei einer Ganzzahl n
die ersten n
geneigten Binärzahlen aus, entweder 0- oder 1-indiziert. Sie werden so genannt, weil sie so erzeugt werden:
Zahlen in Binärschrift untereinander schreiben (rechtsbündig):
........0
........1
.......10
.......11
......100
......101
......110
......111
.....1000
.........
Dann müssen Sie jede Diagonale von links unten nach rechts oben nehmen, sodass jede letzte Ziffer die letzte Ziffer einer Diagonale ist. Hier ist die vierte Diagonale (mit Nullindex), die mit x
's markiert ist 100
:
........0
........1
.......10
.......11
......10x
......1x1
......x10
......111
.....1000
.........
Die aufwärts geneigten Diagonalen in der Reihenfolge sind:
0
11
110
101
100
1111
1010
.......
Dann konvertieren Sie in eine Dezimalzahl und geben 0, 3, 6, 5, 4, 15, 10, ...
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
code-golf
sequence
base-conversion
binary
mbomb007
quelle
quelle
n
oder die ersten+1
Zahl ausgeben darf ?Antworten:
Jelly, 11 Bytes
Probieren Sie es online!
Erläuterung
Die Transponierung ist der einfachste Weg, das Array mit den eingebauten Diagonalen zu füllen. Dann werden die Umkehrungen hinzugefügt, um alles in der richtigen Reihenfolge zu erhalten.
quelle
JavaScript (ES6), 53 Byte
0-indiziert. Es kommt nicht oft vor, dass ich eine rekursive Funktion als Parameter benutze
map
.quelle
Mathematica, 46 Bytes
Unbenannte Funktion, die eine nichtnegative Ganzzahl
#
als Eingabe verwendet und die 0-Index-Sequenz bis zum#
dritten Ausdruck zurückgibt. Konstruiert die abfallenden Binärzahlen unter Verwendung vonBitAnd
(bitweise "und") mit entsprechenden Potenzen von 2.quelle
Python3,
6361 BytesVerwendet die Formel von OEIS.
-2 Bytes dank Luis Mendo !
i+1
->i
quelle
Sum_{ k >= 1 such that n + k == 0 mod 2^k } 2^k
zu dieser einfacheren bitweisen Formel gekommen sind?PHP, 68 Bytes
Nimmt Eingaben vom Befehlszeilenargument entgegen und gibt durch Unterstriche getrennte Zahlen aus. Laufen Sie mit
-r
.quelle
MATL ,
1817 BytesProbieren Sie es online!
Dies verwendet die Formel von OEIS:
Code:
quelle
Perl 6 ,
5943 BytesVerwendet die Formel von der OESIS-Seite.
Update: Von TuukkaXs Python-Antwort auf die bitweise und basierte Formel umgestellt .
Perl 6 , 67 Bytes
Naive Lösung.
Konvertiert die Zahlen, die Teil der Diagonale sind, zur Basis 2, nimmt die richtige Ziffer von jeder und konvertiert das Ergebnis zurück zur Basis 10.
quelle
Gelee , 15 Bytes
Dies wäre kürzer als die andere Jelly-Antwort, wenn wir nur den n- ten Term drucken müssten .
Probieren Sie es online!
quelle
R, 66 Bytes
Unbenannte Funktion, die die
bin
Funktion aus demmiscFuncs
Paket verwendet, um die Länge dern
Binärdarstellung zu berechnen und dann eine der OEIS-Formeln zu verwenden.quelle