Tulis program atau fungsi yang menerima daftar output dari fungsi logika dan output kode LaTeX untuk tabel kebenarannya.
Input harus diberi label sebagai huruf kecil a-z
, dan outputnya harus diberi label F
. Panjang daftar input akan selalu lebih pendek dari 2^25
, yang berarti bahwa jumlah input akan selalu kurang dari 25, sehingga Anda dapat menggunakan huruf dari alfabet huruf kecil untuk nama input.
Memasukkan
Sejumlah n
input dan daftar panjang 2^n
angka biner yang merepresentasikan output dari fungsi logis.
Keluaran
Kode LaTeX yang menghasilkan tabel kebenaran untuk fungsi itu. Nilai input dan output harus dipusatkan di baris. Harus ada garis antara header tabel dan nilai-nilainya serta antara input dan output, sehingga kode harus sama dengan yang di bawah ini.
\begin{tabular}{c * <NUMBER OF INPUTS>|c}
<INPUTS>&F\\
\hline
<INPUT VECTOR i>&<OUTPUT>\\
\end{tabular}
Contoh
Memasukkan:
2
[0, 0, 0, 1]
Keluaran:
\begin{tabular}{cc|c}
a & b & F \\
\hline
0 & 0 & 0 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
1 & 1 & 1 \\
\end{tabular}
Yang ketika ditampilkan di LaTeX menunjukkan tabel kebenaran berikut
Aturan umum
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
- Celah default tidak diperbolehkan.
ccccc
alih-alihcc
, tetapi biarkan|c
saja ... Dan ya, dalam tabel ini, semua spasi dan baris baru adalah opsional, tapi saya akan menghindari garis kosong.Jawaban:
Arang , 70 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Simpan string ini dalam variabel untuk menghindari duplikasi.
Cetak
\tabular{*2c|c}
baris awal (2 atau nilai apa pun yang dimiliki input pertamaq
).Dapatkan
q
huruf pertama dari variabel yang telah ditentukanb
dan masukkan&
di antara mereka, lalu tambahkan&F\\
dan juga cetak\hline
pada baris berikutnya.Ulangi karakter dalam input kedua. Untuk masing-masing, indeksnya dikonversi menjadi biner dengan panjang
q
, karakter digabungkan, hasilnya digabungkan dengan&
s dan\\
ditambahkan. String yang dihasilkan dicetak secara implisit pada garis yang berbeda.Cetak
\endtabular
. (Ini⁰
hanya pemisah karena deverbosifier lupa untuk memasukkan a¦
.)sumber
Python 2 , 153 byte
Cobalah online!
Output seperti
\tabular
dan\endtabular
digunakan sebagai lebih pendek\begin{tabular}
dan\end{tabular}
, sesuai dengan tip golf LaTeX ini . Ini*2c
adalah singkatan untuk mendefinisikan 2 kolom.sumber
Haskell,
164155 byteCobalah online!
Sunting: menggunakan
\tabular
alih-alih\begin{tabular}
(dicuri dari jawaban xnor ).sumber
Python 2 ,
192168166 byteCobalah online!
Versi tercetak cantik:
Python 2 ,
234229218209205203 byteCobalah online!
sumber
Proton , 142 byte
Cobalah online!
Output dalam bentuk golf LaTeX; terima kasih kepada xnor untuk trik itu!
Ini harus bisa di-golf menjadi lebih pendek daripada jawaban Python xnor karena secara teori Proton tidak pernah kalah dari Python lol (dalam prakteknya saya xD buruk). Saya dapat mencuri beberapa trik dari xnor; PBerhasil sekarang menjadi lebih pendek dengan membuat beberapa hal menjadi variabel, yang saya perhatikan xnor juga lakukan: P
Dan kita mulai, -6 byte dengan menggunakan beberapa trik golf Proton.
sumber
R ,
196 187171 byteCobalah online!
Output mirip dengan jawaban Arang .
expand.grid
dari jawaban ini .Sebagai catatan, menggunakan
xtable
dari paket eponym tidakjauhlebih pendek karena kita harus menentukan banyak opsi agar sesuai dengan spesifikasi, selain termasuk paket:R , 187 byte
Cobalah online!
sumber