Diberikan bilangan bulat n
, menampilkan n
angka biner miring pertama , 0 atau 1 diindeks. Mereka disebut ini karena bagaimana mereka dihasilkan:
Tulis angka dalam biner satu sama lain (dibenarkan-kanan):
........0
........1
.......10
.......11
......100
......101
......110
......111
.....1000
.........
Kemudian, Anda harus mengambil setiap diagonal dari kiri bawah ke kanan atas, sehingga setiap digit akhir adalah digit akhir dari diagonal. Inilah diagonal keempat (diindeks nol) yang ditandai dengan x
's, yaitu 100
:
........0
........1
.......10
.......11
......10x
......1x1
......x10
......111
.....1000
.........
Diagonal miring ke atas dalam urutan adalah:
0
11
110
101
100
1111
1010
.......
Kemudian, konversikan ke desimal, memberi 0, 3, 6, 5, 4, 15, 10, ...
Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
code-golf
sequence
base-conversion
binary
mbomb007
sumber
sumber
n
ataun+1
angka pertama ?Jawaban:
Jelly, 11 byte
Cobalah online!
Penjelasan
Transpos adalah cara paling sederhana untuk mengisi array agar diagonal-builtagon berfungsi. Kemudian pembalikan ditambahkan untuk mendapatkan semuanya dalam urutan yang benar.
sumber
JavaScript (ES6), 53 byte
Diindeks 0. Tidak sering saya bisa menggunakan fungsi rekursif sebagai parameter
map
.sumber
Mathematica, 46 byte
Fungsi yang tidak disebutkan namanya mengambil integer nonnegatif
#
sebagai input dan mengembalikan urutan 0-indeks hingga#
istilah th. Membangun angka biner miring menggunakanBitAnd
(bitwise "dan") dengan kekuatan 2 yang sesuai.sumber
Python3,
6361 byteMenggunakan formula dari OEIS.
-2 byte terima kasih kepada Luis Mendo !
i+1
->i
sumber
Sum_{ k >= 1 such that n + k == 0 mod 2^k } 2^k
formula bitwise yang lebih sederhana itu?PHP, 68 byte
mengambil input dari argumen baris perintah, mencetak angka yang dipisahkan oleh garis bawah. Jalankan dengan
-r
.sumber
MATL ,
1817 byteCobalah online!
Ini menggunakan rumus dari OEIS:
Kode:
sumber
Perl 6 ,
5943 byteMenggunakan formula dari halaman OESIS.
Pembaruan: Beralih ke rumus bitwise-dan berbasis dari jawaban Python TuukkaX .
Perl 6 , 67 byte
Solusi naif.
Mengonversi angka yang merupakan bagian dari diagonal ke basis 2, mengambil digit yang benar dari masing-masing, dan mengubah hasilnya kembali ke basis 10.
sumber
Jelly , 15 byte
Ini akan lebih pendek daripada jawaban Jelly lainnya jika kita harus mencetak hanya istilah ke- n .
Cobalah online!
sumber
R, 66 byte
Fungsi tanpa nama yang menggunakan
bin
fungsi darimiscFuncs
paket untuk menghitung panjang yangn
direpresentasikan dalam biner dan kemudian menggunakan salah satu formula OEIS.sumber