Konvolusi biner dijelaskan oleh angka M
, dan diterapkan pada angka N
. Untuk setiap bit dalam representasi biner M
, jika bit diatur ( 1
), bit yang sesuai dalam output diberikan oleh XORing dua bit yang berdekatan dengan bit yang sesuai N
(membungkus jika perlu). Jika bit tidak disetel ( 0
), bit yang sesuai dalam output diberikan oleh bit yang sesuai di N
.
Contoh yang dikerjakan (dengan nilai 8-bit):
- Mari
N = 150
,M = 59
. Representasi biner mereka adalah (masing-masing)10010110
dan00111011
. - Berdasarkan
M
representasi biner, bit 0, 1, 3, 4, dan 5 berbelit-belit.- Hasil untuk bit 0 diberikan oleh XORing bit 1 dan 7 (karena kami membungkusnya), menghasilkan
1
. - Hasil untuk bit 1 diberikan oleh XORing bit 0 dan 2, menghasilkan
0
. - Hasil untuk bit 2 diberikan oleh bit asli 2, menghasilkan
1
. - Hasil untuk bit 3 diberikan oleh XORing bit 2 dan 4, menghasilkan
0
. - Hasil untuk bit 4 diberikan oleh XORing bit 3 dan 5, menghasilkan
0
. - Hasil untuk bit 5 diberikan oleh XORing bit 4 dan 6, menghasilkan
1
. - Hasil untuk bit 6 dan 7 diberikan oleh bit asli 6 dan 7, menghasilkan
0
dan1
.
- Hasil untuk bit 0 diberikan oleh XORing bit 1 dan 7 (karena kami membungkusnya), menghasilkan
- Outputnya demikian
10100110
(166
).
Tantangan
Diberikan N
dan M
, hasilkan output dari melakukan konvolusi biner yang dijelaskan oleh M
pada N
. Input dan output mungkin dalam format yang nyaman, konsisten, dan tidak ambigu. N
dan M
akan selalu berada dalam kisaran (inklusif) [0, 255]
(bilangan bulat 8-bit tidak ditandatangani), dan representasi binernya harus diisi hingga 8 bit untuk melakukan konvolusi biner.
Uji Kasus
150 59 -> 166
242 209 -> 178
1 17 -> 0
189 139 -> 181
215 104 -> 215
79 214 -> 25
190 207 -> 50
61 139 -> 180
140 110 -> 206
252 115 -> 143
83 76 -> 31
244 25 -> 245
24 124 -> 60
180 41 -> 181
105 239 -> 102
215 125 -> 198
49 183 -> 178
183 158 -> 181
158 55 -> 186
215 117 -> 198
255 12 -> 243
sumber
Jawaban:
JavaScript (ES6), 31 byte
sumber
Python 2, 35 byte
sumber
n=255
?J, 34 byte
Pendekatan langsung yang menerapkan proses yang didefinisikan dalam tantangan. Mengambil input sebagai array
[n, m]
.Bentuk tujuh smiley,
[:
,:(
,:1
,(8
,8#
,#:
, dan:]
.Pemakaian
sumber
kode mesin x64, 17 byte
Dibongkar:
Cocok untuk konvensi pemanggilan Win64 (argumen dalam rcx, rdx).
sumber
Haskell, 66 byte
Bekerja sebagaimana dimaksud saat dipanggil dengan
Word8
data. Ganti(255-m)
dengancomplement m
(+5 byte) untuk membuat fungsi berfungsi dengan tipe data integral yang tidak ditandatangani.sumber