Diberikan bilangan bulat positif n
, menampilkan 2^n
urutan panjang biner yang n
diurutkan dalam urutan tepat berikut.
Kasus uji:
0:
0 or 1 (defining this is a matter of debate)
1:
0
1
2:
00
01
10
11
3:
000
001
010
100
011
101
110
111
4:
0000
0001
0010
0100
1000
0011
0101
1001
0110
1010
1100
0111
1011
1101
1110
1111
dll.
Selain itu, pola kombinatorik terkait dengan Segitiga Pascal.
0:
1 (this is given regardless of the definition given to 2^0)
1:
1
1
2:
1
2
1
3:
1
3
3
1
4:
1
4
6
4
1
dll.
code-golf
combinatorics
binary
melucuti
sumber
sumber
Jawaban:
Haskell, 78 byte
Contoh penggunaan:
f 2
->[[0,0],[0,1],[1,0],[1,1]]
.Bagaimana itu bekerja:
sumber
Prelude
untuk<$
danData.List
untuksortOn
). Juga: kode saya bukan program lengkap, jadi tidak akan dikompilasi.sortOn
. Aku akan merindukansortBy (compare `on` f)
.Python 2, 146 byte
Saya masih mengerjakan ini, meskipun ada saran akan sangat dihargai!
Tidak disatukan
sumber
from itertools import*
dan kemudian gunakanpermutations
di lambda. menghemat 1 bytePython 2,
12212010298 byte18 byte disimpan berkat Flp.Tkc
4 byte disimpan berkat xnor
Penjelasan
Ini membuat semua string biner dengan panjang x dengan:
Saya kemudian mengurutkannya sesuai dengan:
sorted(x)
memprioritaskan jumlah1
s sementaraint(x[::-1],2)
memprioritaskan kondisi keduaTerakhir, ini bergabung dengan baris baru dan dicetak.
sumber
Perl, 63 byte
-4 Terima kasih kepada @Ton Hospel.
-2 Terima kasih kepada @Gabriel Benamy.
Jalankan dengan
-E
(yang mengaktifkan fitursay
):Penjelasan singkat :
"{1,0}"x$_
menciptakan string yang terdiri dari$_
waktu{1,0}
($_
adalah input). Misalnya dengan3
:{1,1}{1,0}{1,0}
.glob
lakukan sihir dan hasilkan semua kombinasi dari satu elemen dari setiap kelompok kawat gigi (yaitu, semua kombinasi yang ingin kita cetak).$b=~y/1//c-$a=~y/1//c
membandingkan jumlah1
setiap string, dan jika mereka memiliki nomor yang sama,$b-$a
akan mengurutkan berdasarkan aturan kedua.sumber
y/1//c
key/0//
kedua kaliy///c
!<=>
oleh-
Perl,
116106105102 byteDapat dibaca:
Subrutin
e
mengubah argumennya menjadi nilai biner, diisi dengan nol, menjadi panjang input (mis. Input 5 bantalan dengan nol hingga panjangnya 5 karakter). Subrutinf
mengambil nilai biner seperti itu, dan memberikan bobot penyortiran sesuai dengan bagaimana seharusnya diproses.Rentang 0 .. [input] 2 -1 kemudian dimasukkan ke dalam jenis yang stabil, memesan berdasarkan berat (di sini, "stabil" berarti bahwa ketika dua nilai memiliki bobot yang sama, mereka dikembalikan dalam urutan yang sama mereka muncul di input), dan kemudian mereka diumpankan kembali ke subrutin
e
dan output.Beberapa dari Anda mungkin telah melihat posting asli saya, tetapi saya sepenuhnya salah membaca masalah kemarin dan segera menghapusnya setelah saya menyadarinya.
sumber
n>=5
. Misalnya, dengann>=5
,01101
datang sebelum10011
tetapi harus setelah.Racket 109 byte
Tidak Disatukan:
Pengujian:
Keluaran:
sumber
Ruby 2.x, 129 byte
sumber
PHP, 49 byte
Jalankan dengan
-r
.sumber
MATLAB, 68 byte
sumber
Bash, 65 byte
Golf
Uji
sumber
Jelly , 14 byte
Cobalah online!
Terkejut ini belum diposting.
sumber