Форум программистов, компьютерный форум 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++ рекурсивный ввод элементов И еще одна задача по рекурсии:( не пиайте сильно, но теперь совсем простая. Задача написать функцию, по рекурсивному вводу элементов матрицы. Опять же, можно только идею:(. подробнее

Показать сообщение отдельно
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.11.2012, 19:47     Многочлены над GF(2^m)
Цитата Сообщение от vlad_light Посмотреть сообщение
C++
1
2
3
4
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();
Лучше заменить на связку find + erase
Вот накидал вам пример: http://liveworkspace.org/code/f999b0...f5082b0eeb0bae
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <algorithm>
#include <array>
#include <iostream>
#include <vector>
 
template <typename TContent>
void erase_start_nulls(std::vector<TContent>& i_vector, const TContent& null_element)
{
   auto it = std::find_if(i_vector.begin(), i_vector.end(), [&](const TContent& i){ return i!=null_element; });
   i_vector.erase(i_vector.begin(), it);
}
 
int main()
{
   std::array<int, 5> arr = {{0, 0, 0, 42, 7}};
   std::vector<int> data(arr.cbegin(), arr.cend());
   
   erase_start_nulls(data, 0);
      
   for (int i : data)
      std::cout << i << " ";
   return 0;
}

Собственно, шаблона не пугайтесь) Более того, вы можете взять его в свою программу.

По поводу длительности - ничего в этом плохого нет. Вы параллельно осваиваете математику и язык. Это же непросто

Добавлено через 1 минуту
Цитата Сообщение от vlad_light Посмотреть сообщение
C++
1
i <= std::min (k, (int) left_multiplier.polynom.size() - 1);
Ах да, забыл сказать. Это лучше вытащить в отдельную переменную. Компилятор, конечно, может быть это и оптимизирует, но не факт. Тут же ваши типы данных.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru