c++ koder/dekoder w oparciu o wielomian generujący
Ostatnio zmodyfikowano 2015-05-17 19:29
tytrydsdf Temat założony przez niniejszego użytkownika |
c++ koder/dekoder w oparciu o wielomian generujący » 2015-05-16 21:12:36 Hej, chcę napisać program. Mam z góry narzucone już parametry kodu (czyli ilość bitów informacyjnych oraz nadmiarowych) oraz wielomian generujący. Użytkownik będzie z klawiatury podawał ciąg binarny o określonej długości a program zakoduje ten ciąg binarny mnożąc go o wielomian generujący. Następnie również w oparciu o wielomian generujący ciąg ten będzie dekodowany do postaci pierwotnej.
Dodatkowo po zakodowaniu ciągu chciałbym wygenerować 2 przekłamania bitów i dodać do zakodowanej postaci aby dekoder skorygował błąd.
W jakiej formie powinienem przechowywać dane w programie aby najsprawniej wykonwywać operacje. Generalnie widzę dwa wyjścia że albo wszystko robić na słowach binarnych 0,1 albo na odpowiadającym im wielomianach. Tylko jak to zrealizować w praktyce. W jakich zmiennych to trzymać aby najprociej było wykonywać operacje typu na początku pobranie od użytkownika ciągu binarnego a następnie wykonywanie tych wszystkich operacji na bitach. |
|
pekfos |
» 2015-05-16 21:16:00 Jakich operacji? W bibliotece standardowej masz std::bitset i std::vector<bool>. |
|
tytrydsdf Temat założony przez niniejszego użytkownika |
» 2015-05-16 21:20:49 no pewnie wszystkich podstawowych typu dodawanie modulo 2, mnożenie , dzielenie |
|
tytrydsdf Temat założony przez niniejszego użytkownika |
» 2015-05-17 04:37:15 te klasy chyba nie umożliwiają robienia tego co chcę. Będę mógł stworzyć wektor takich liczb ale chyba te klasy nie mają przeciążonych operatorów działań arytmetycznych i bym je musiał samemu pisać. Czy nie ma czegoś z STLa albo boosta co mi da takie możliwości? |
|
Piastlis |
» 2015-05-17 10:03:43 Jeżeli bitów niewiele to po prostu stablicuj co się da.Najszybszy algorytm to "skorzystaj z gotowca". |
|
tytrydsdf Temat założony przez niniejszego użytkownika |
» 2015-05-17 17:26:56 mam dwa pojemniki typu deque<bool> oba tego samego rozmiaru
a w każdym nich ciąg zer i jedynek np 0000000011110111110111 0000000000000001011111
i teraz chciałbym dokonać mnożenia i aby wynik znalazł w trzecim pojemniku, też o tej samej długości, a liczby są takie że nigdy wynik mnożenia nie będzie wykraczał poza zakres więc nie trzeba się tym martwić że się nie zmieści.
|
|
Piastlis |
» 2015-05-17 19:29:43 Chwilkę.Pogubiłem się.Zmienna na której pracujesz ma 22 bity.Czyli MAX to 4194304... Nie rozumiem w czym problem...Nawet podniesiona do kwadratu mieści się w long long... |
|
« 1 » |