Une convolution binaire est décrite par un nombre M
et est appliquée à un nombre N
. Pour chaque bit dans la représentation binaire de M
, si le bit est défini ( 1
), le bit correspondant dans la sortie est donné en XORant les deux bits adjacents au bit correspondant dans N
(enroulant autour si nécessaire). Si le bit n'est pas défini ( 0
), le bit correspondant dans la sortie est donné par le bit correspondant dans N
.
Un exemple travaillé (avec des valeurs 8 bits):
- Laissez
N = 150
,M = 59
. Leurs représentations binaires sont (respectivement)10010110
et00111011
. - Sur la base de
M
la représentation binaire de, les bits 0, 1, 3, 4 et 5 sont convolus.- Le résultat pour le bit 0 est donné par XORing bits 1 et 7 (puisque nous bouclons), ce qui donne
1
. - Le résultat pour le bit 1 est donné par XORing bits 0 et 2, ce qui donne
0
. - Le résultat pour le bit 2 est donné par le bit 2 d'origine, ce qui donne
1
. - Le résultat pour le bit 3 est donné par les bits XORing 2 et 4, ce qui donne
0
. - Le résultat pour le bit 4 est donné par les bits XORing 3 et 5, ce qui donne
0
. - Le résultat pour le bit 5 est donné par les bits XORing 4 et 6, ce qui donne
1
. - Les résultats pour les bits 6 et 7 sont donnés par les bits d'origine 6 et 7, ce qui donne
0
et1
.
- Le résultat pour le bit 0 est donné par XORing bits 1 et 7 (puisque nous bouclons), ce qui donne
- La sortie est donc
10100110
(166
).
Le défi
Étant donné N
et M
, affichez le résultat de l'exécution de la convolution binaire décrite par M
sur N
. L'entrée et la sortie peuvent être dans n'importe quel format pratique, cohérent et sans ambiguïté. N
et M
sera toujours dans la plage (inclusive) [0, 255]
(entiers non signés 8 bits), et leurs représentations binaires doivent être remplies à 8 bits pour effectuer la convolution binaire.
Cas de test
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