Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Длинная арифметика

Ответить
Настройки темы
C/C++ - Длинная арифметика

Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Prof
Дата: 10-10-2011
Доброго времени суток! Прошу обьянить как можно сделать длинную арифметику (слаживание) на матрицах.

Отправлено: 00:08, 10-10-2011

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Prof, тебе нужна теория или что?

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:07, 10-10-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Prof:
слаживание »
Сложение двух чисел, по определению, дает +1 разряд в лучшем случае, вполне укладывающимся в разряд переноса.
Или арифметика сложения на матрицах "длиннее" обычной?
Ну это так, пальцем в небо.
Prof, еще раз четко и внятно напиши, что тебе надо? Желательно с примером, а то по коротким фразам гадать можно долго.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 01:38, 10-10-2011 | #3


Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2

Профиль | Отправить PM | Цитировать


Ребята, простите за такой вопрос. Сам понимаю что написал бред просто заходил с телефона, спешил и небыло при себе примера.
И так, нормальный вопрос:
Есть такая программка:
Код: Выделить весь код
#include<stdafx.h>
#include<iostream>
#include<vector>
#include<fstream>
#define dvec vector<vector<int> > 
using namespace std;
dvec mul(dvec a, dvec b) //умножение матриц
{
 dvec ans (a.size(),vector<int>(b.size()));
 int tmp = 0;
 for(int i = 0; i<a.size(); ++i)
 {
  for(int j = 0; j<b.size(); ++j)
  {
   for(int k = 0; k<a[0].size(); ++k)
    ans[i][j]+=a[i][k]*b[k][j];
  }
 }
 return ans;
}
int main()
{
 int n,q;
 ifstream inp ("input.dat");
 ofstream out ("output.sol");
 dvec vec(2,vector<int>(2)); //матрица
 vec[0][0] = 0;
 vec[0][1] = vec[1][0] = vec[1][1] = 1;
 dvec mnoj = vec;   //таже матрица, будет использована как множитель для возведения в степень
 inp >> q;
 n = q-3;
 for(int i = 0; i<n; ++i) //возведение в степень
 {
  vec = mul(vec,mnoj);
 }
 out<<(vec[1][0]+vec[1][1])<<"\n";
 return 0;
}
Суть её в том чтоб считать 30к+ число фибоначчи менее чем за секунду, но для этого нужно переделать её под длинную арифметику и заменить возведения матриц в степень на бинарное возведение в степень. Сам недавно начал учить C++, так что со своими знаниями ещё не до конца понимаю как это реализовать.

Отправлено: 15:31, 10-10-2011 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Длинная арифметика

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Длинная строчка в контекстном меню Stich777 Microsoft Windows 7 6 15-01-2011 18:31
Загрузка - Очень длинная загрузка antikiller_bm Microsoft Windows Vista 8 30-06-2009 17:33
>100m/LongLink - Длинная линия...?! LordMadman Сетевое оборудование 15 26-04-2009 16:52
Длинная строчка bigkuler Вебмастеру 3 29-03-2009 17:50
Очень длинная ошибка в EventLog Exchange Server'a. Не могу расшифровать. Помогите! ANR Microsoft Exchange Server 15 07-07-2008 16:13




 
Переход