4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||||||||||||
1 | ||||||||||||||||
Многочлены над GF(2^m)06.11.2012, 02:35. Показов 4223. Ответов 39
Метки нет (Все метки)
Пишу кодер Рида-Соломона.
Дано следующее: * - количество битов в одном символе (читай, элементов поля ); * - длина кода (в символах); * - длина сообщения (в символах); * - неприводимый многочлен степени над * - сообщение из 0 и 1 конечной длины. * - сообщение, полученное из путём выделения блоков длины ; * А также естественное отображение На выходе нужно получить РС-код: * - код длины (в символах), по формуле: , где . По теории вроди бы всё, сейчас попробую описать прототип реализации. Добавлено через 2 часа 17 минут Посмотрите, пожалуйста! Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Я пока не использовал ссылки и модификатор const. Завтра всё доделаю и буду приступать к написанию самих функций. Прокомментируйте, пожалуйста. Спасибо!!!
0
|
06.11.2012, 02:35 | |
Ответы с готовыми решениями:
39
Найти все неприводимые многочлены второй степени над полем Z5, у которых коэффициент при x^2 равен 1 или 2 Выразить через основные симметрические многочлены моногенные многочлены Многочлены Многочлены |
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
06.11.2012, 12:19 | 2 |
include guard'ы написаны неверно - где define того, что проверяется в ifndef?
1
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||
06.11.2012, 16:12 [ТС] | 3 | |||||
А я, когда пишу
Сейчас покушаю и напишу усовершенствованную версию=)
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
06.11.2012, 17:01 | 4 |
в VS проще писать #pragma once
эта штука нестандартная, но много где работает Меня тут - prog.h - точка смущает)
0
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||||||||||||||||||||||
06.11.2012, 22:22 [ТС] | 5 | |||||||||||||||||||||||||
Вот (почти) финальный вариант. Гляньте одним глазком, всё ли верно? Я старался писать как можно более разборчиво
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Добавлено через 4 часа 36 минут Написал такое, выдаёт ошибку "vector out of range". Подскажите, где оно вылзит. Спасибо! Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
0
|
Higher
|
|||||||||||
06.11.2012, 23:04 | 6 | ||||||||||
Для table вижу reserve, но не вижу увеличения размера, собсно получается вектор с нулевым размером и затем идет попытка получить его первый элемент.
И еще, глаз режет:
1
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
||||||
07.11.2012, 00:11 | 7 | |||||
И еще, я вижу в классах деструктор, но не вижу конструктора копирования и оператора присваивания
2
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|||||||||||
07.11.2012, 02:55 [ТС] | 8 | ||||||||||
Пока написал 2 штуки, но они не работают: выдаёт какую-то непонятную ошибку
Не по теме: GF.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall GF::~GF(void)" (??1GF@@QAE@XZ) в функции "public: class GF __thiscall GF::operator+(class GF const &)const " (??HGF@@QBE?AV0@ABV0@@Z) Вот, что я пока накатал... Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Всем большое спасибо за помощь! Я уже не дописывал комментарии в последнем коде, надеюсь, там и так всё понятно (или ничего не понятно ).
0
|
07.11.2012, 04:31 | 9 |
всё проще чем кажется. деструктор ~GF_table вообще отсутствует. Т.е. Объявлен и Не реализован.
Вот например строки 77-81 - это конструктор. Почему деструктор не написали примерно после конструктора?
2
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||||||||||||
08.11.2012, 02:44 [ТС] | 10 | |||||||||||||||
Поправил первые два файлика, вроди всё работает. Гляньте ещё разок, на всякий. Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Сейчас дописываю третий файлик. Подскажите, как лучше реализовать деление с остатком? И пустой конструктор по умолчанию сгодится? Кликните здесь для просмотра всего текста
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|||||||||||
08.11.2012, 13:38 | 11 | ||||||||||
Все конструкции такого вида
в 71 строке вы создаете вектор определенной длины, заполненный нулями. А затем вы эти нули нигде не используете - только пушаете новые значения. Так и задумано?
1
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||
08.11.2012, 17:08 [ТС] | 12 | |||||
ок, заменю. А что за 71 строка? Эта?
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
08.11.2012, 17:21 | 13 |
vlad_light, да, она. Я просто забыл дописать, из какого она листинга
0
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
08.11.2012, 17:23 [ТС] | 14 |
т.е. там нужно вместо push_back везде написать at(i) верно?
Либо перед циклом написать clear.
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
08.11.2012, 17:32 | 15 |
Лучше заменить resize на reserve. пушбеки оставить
Кстати вместо at(i) можно писать [i]
1
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
08.11.2012, 17:35 [ТС] | 16 |
Спасибо! А с делением Вы мне можете помочь?
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
08.11.2012, 17:38 | 17 |
С алгоритмом - вряд ли. Но если вы сможете в доступной форме изложить этот алгоритм и сказать "я вот сделал, но почему-то считает не так", то помогу, конечно
0
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||||||||||||||||||||||
09.11.2012, 02:15 [ТС] | 18 | |||||||||||||||||||||||||
Отлично! Тогда я сейчас попробую реализовать столбиком (даже скорее не сейчас, а ближе к вечеру, поскольку сейчас есть ещё дела) и выложу здесь, а Вы посмотрите. Спасибо!
И ещё вопрос: а разве Вам проще разбираться в моём коде, чем написать собственный? Если да, то как научиться в нём разбираться, поскольку я в чужом коде вообще ничего понять не могу Добавлено через 4 часа 35 минут Алгоритм деления столбиком. Имеем два многочлена и с коэффициентами из . Не нарушая общности, положим . Представим каждый многочлен в виде вектора из его коэффициентов . Создаём две дополнительных переменных: , которая будет отображать текущий остаток от деления на , и , который имеет вид . Теперь на первом шаге умножаем на и прибавляем к , получаем . Поскольку последний коэф. равен (такой же,как и у ), то при суммировании (что равно вычитанию) он сократиться. После этого мы убираем последний элемент из , поскольку он равен нулю, и из , поскольку он нам больше не нужен. проделываем операцию до тех пор, пока степень текущего остатка не станет меньше степени делителя. Не по теме: Хотел написать красиво, но с таким редактором ТеХ'а оно выглядит ужасно:(. Надеюсь, хоть что-то понятно... Вот, что я пока написал, но не проверял. Гляньте, пожалуйста, уверен, там можно его переписать в лучшем виде. Кликните здесь для просмотра всего текста
Добавлено через 3 часа 59 минут Урааа!!! Наконец-то дописал весь код, осталось его исправить и протестировать. Вообщем, выкладываю "пре-альфа" версию Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Чтобы вам не разбираться в тонкостях кода -- задавайте вопросы по каждому участку, а я постараюсь на них как можно более полно ответить. Моя конечная цель была найти .
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|||||||||||||||||||||
09.11.2012, 12:27 | 19 | ||||||||||||||||||||
1
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
09.11.2012, 14:11 [ТС] | 20 |
Как я понял, резерв мы используем с пушбэками, а рисайз -- с операцией обращения (эт), верно? Какой вариант предпочтительнее использовать или в этом нет разницы?
Первые два листинга я тестировал: они вроди как работают... Сегодня-завтра попробую протестировать два остальных. В 1-ом Вашем замечании я тоже сперва хотел так сделать, но не знал, где ставить звёздочку (точнее я использовал стрелочку) и оно мне выдавало ошибку
0
|
09.11.2012, 14:11 | |
09.11.2012, 14:11 | |
Помогаю со студенческими работами здесь
20
Многочлены Многочлены Многочлены Многочлены Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |