Biorąc pod uwagę liczbę całkowitą n
, wypisz pierwsze n
pochylone liczby binarne, indeksowane 0 lub 1. Nazywa się to tak, ponieważ są generowane:
Pisz pod sobą liczby binarne (wyrównane do prawej):
........0
........1
.......10
.......11
......100
......101
......110
......111
.....1000
.........
Następnie musisz poprowadzić każdą przekątną od lewej dolnej do prawej górnej, tak aby każda ostatnia cyfra była ostatnią cyfrą przekątnej. Oto czwarta przekątna (zero-indeksowana) oznaczona x
„s”, która jest 100
:
........0
........1
.......10
.......11
......10x
......1x1
......x10
......111
.....1000
.........
Ukośne nachylenie w górę to:
0
11
110
101
100
1111
1010
.......
Następnie przelicz na dziesiętne, podając 0, 3, 6, 5, 4, 15, 10, ...
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach.
code-golf
sequence
base-conversion
binary
mbomb007
źródło
źródło
n
lub pierwsząn+1
liczbę?Odpowiedzi:
Galaretka, 11 bajtów
Wypróbuj online!
Wyjaśnienie
Transpozycja jest najprostszym sposobem na uzupełnienie tablicy dla wbudowanych przekątnych do działania. Następnie dodaje się rewersy, aby uzyskać wszystko we właściwej kolejności.
źródło
JavaScript (ES6), 53 bajty
0-indeksowane. Nie często używam funkcji rekurencyjnej jako parametru
map
.źródło
Mathematica, 46 bajtów
Nienazwana funkcja przyjmująca nieujemną liczbę całkowitą
#
jako dane wejściowe i zwracająca sekwencję 0 indeksów do#
th. Konstruuje pochyłe liczby binarne za pomocąBitAnd
(bitowego "i") z odpowiednimi potęgami 2.źródło
Python3,
6361 bajtówKorzysta z formuły z OEIS.
-2 bajty dzięki Luisowi Mendo !
i+1
->i
źródło
Sum_{ k >= 1 such that n + k == 0 mod 2^k } 2^k
do tej prostszej formuły bitowej?PHP, 68 bajtów
pobiera dane z argumentu wiersza poleceń, drukuje liczby oddzielone podkreślnikami. Uruchom z
-r
.źródło
MATL ,
1817 bajtówWypróbuj online!
Wykorzystuje to wzór z OEIS:
Kod:
źródło
Perl 6 ,
5943 bajtówKorzysta z formuły ze strony OESIS.
Aktualizacja: zmieniono na formułę bitową i opartą na odpowiedzi Python TuukkaX .
Perl 6 , 67 bajtów
Naiwne rozwiązanie.
Konwertuje liczby, które są częścią przekątnej na bazę 2, pobiera poprawną cyfrę każdej z nich i konwertuje wynik z powrotem na bazę 10.
źródło
Galaretka , 15 bajtów
Byłoby to krócej niż druga odpowiedź Jelly, gdybyśmy musieli wydrukować tylko n- ty termin.
Wypróbuj online!
źródło
R, 66 bajtów
Funkcja bez nazwy, która używa
bin
funkcji zmiscFuncs
pakietu do obliczania długościn
reprezentowanej w postaci binarnej, a następnie przy użyciu jednej z formuł OEIS.źródło