Форум программистов, компьютерный форум CyberForum.ru

Многочлены над GF(2^m) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цикл вычисления бесконечной суммы http://www.cyberforum.ru/cpp-beginners/thread689595.html
#include<iostream> #include<math.h> using namespace std; int main () {double k=0; double a=0; double e=0.001; while(a>=e)
C++ Проверьте пожалуйста код на правильность ! ! ! 2. Дан массив размера 5 x 6 с элементами целого типа. Написать программу для вычисления числа элементов массива кратных 3. За ранее спасибо ! #include "stdafx.h" #include <conio.h> #include <stdio.h> #include <math.h> void main () { int M; http://www.cyberforum.ru/cpp-beginners/thread689590.html
C++ Подключение файлов в проект
Здравствуйте. Запутался немного с подключением файлов, подскажите как лучше организовать. Собственно прикладываю картинку со схемой подключений и сам проект(сильно упрощенный, но нужные связи есть).
Метод Хука Дживса C++
нужна программа для решения f(x) = 2(X1 + 5)^2 +(X2 - 1)^2
C++ в php var_Dump , в c++ есть подобное? http://www.cyberforum.ru/cpp-beginners/thread689578.html
в php var_dump , в c++ есть подобное?
C++ рекурсивный ввод элементов И еще одна задача по рекурсии:( не пиайте сильно, но теперь совсем простая. Задача написать функцию, по рекурсивному вводу элементов матрицы. Опять же, можно только идею:(. подробнее

Показать сообщение отдельно
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178
11.11.2012, 19:11  [ТС]     Многочлены над GF(2^m)
Благодарствую:-) будем пробовать...

Добавлено через 21 час 40 минут
Исправил умножение. Сложность была в том, что было сложно разобраться с длинами массивов: массив длины N - это многочлен длины N-1, причём на месте N-2 стоит коэффициент при степени N-1. Короче очень запутано всё получается В итоге надо было в одном месте прибавить, а в другом -- отнять еденичку. Также добавил возможность удалять нули перед умножением, чтоб не делать лишние операции. Умножает вроди как правильно, проверьте граммотность кода, пожалуйста.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
GF_polynom GF_polynom::operator* (const GF_polynom& right_hand_side) const
{   
    GF_polynom left_multiplier (*this);
    GF_polynom right_multiplier (right_hand_side);
 
    while (left_multiplier.polynom.rbegin()->return_alpha_vector() == null_vector)
        left_multiplier.polynom.pop_back();
 
    while (right_multiplier.polynom.rbegin()->return_alpha_vector() == null_vector)
        right_multiplier.polynom.pop_back();
 
    GF_polynom prod;
    prod.polynom.reserve (left_multiplier.polynom.size() + right_multiplier.polynom.size() - 1);
 
    for (int k = 0; k < left_multiplier.polynom.size() + right_multiplier.polynom.size() - 1; ++k)
    {
        GF sum (null_vector);
 
        for (int i = std::max (0, k - (int) right_multiplier.polynom.size() + 1); 
                            i <= std::min (k, (int) left_multiplier.polynom.size() - 1); ++i)
            sum = sum + (left_multiplier.polynom.at(i) * right_multiplier.polynom.at(k - i));
 
        prod.polynom.push_back (sum);
    }
 
    return prod;
}

Пошёл разбираться с делением.

Не по теме:

Скажите, а это нормально, что я такого рода код пишу уже целую неделю или это ооочень медленно?

 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru