modulo 2
Natalia: | | | | | | |
posiadając macierz g = | (przepraszam ze w takiej formie ale |
| |
nie wiem jak zrobić macierz!)
zakoduj 111000
12 wrz 19:18
Pytający:
Twoja macierz generująca jest rozmiaru 2x5, zatem kodujesz nią po 2 bity. Długość kodu dla
każdej takiej pary to 5.
Zatem kolejno wykonujesz mnożenia:
[1 1]*G
[1 0]*G
[0 0]*G
Scalasz wyniki i to jest Twój kod. Oczywiście wszystko modulo 2 liczysz.
G =
0 1 1 1 1
1 0 0 0 1
W = // "wejście" zapisane jako macierz po 2 bity na wiersz
1 1
1 0
0 0
W*G =
1 1 1 1 0
0 1 1 1 1
0 0 0 0 0
Zatem 11 10 00 to po zakodowaniu:
11110 01111 00000 (spacje dodane wyłącznie dla przejrzystości).
12 wrz 19:53
Natalia: Witaj,
dziękuje za odpowiedź,
mógłbyś powiedzieć jak wymnożyć np. [1 1]*G?
12 wrz 19:59
Pytający:
Cześć, proszę bardzo.
Umiesz mnożyć macierze?
http://matematykadlastudenta.pl/strona/395.html
Wektor [1, 1] traktuj zwyczajnie jako macierz o jednym wierszu. Jedyna "nadzwyczajność" w
zadaniu to mnożenie/dodawanie modulo 2:
0 1 1 1 1
1 0 0 0 1
1 1 a
11 a
12 a
13 a
14 a
15
a
11=
1*
0+
1*
1=0+1=1
a
12=
1*
1+
1*
0=1+0=1
a
13=
1*
1+
1*
0=1+0=1
a
14=
1*
1+
1*
0=1+0=1
a
15=
1*
1+
1*
1=1+1=0 // bo liczymy modulo 2
[1, 1]*G=[1, 1, 1, 1, 0]
Zamiast pojedynczo mnożyć każdy z wektorów przez macierz generującą możesz zrobić tak jak wyżej
Ci napisałem. Wyjdzie to samo.
12 wrz 20:14
Natalia: dzięki za pomoc
!
12 wrz 20:51