2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: сложность вычисления биномиального коэффициента
Сообщение26.02.2010, 19:29 


23/01/07
3497
Новосибирск
А мне вот интересно, можно ли делать как-то так:
Возвести в степень число $1000...0001$, а затем собирать биномиальные коэффициенты в различных разрядах?

Например, при $n=10$:
$1001^{10}= 1,010,045,120,210,252,210,120,045,010,001$ (запятые ввел для удобства).

 Профиль  
                  
 
 Re: сложность вычисления биномиального коэффициента
Сообщение26.02.2010, 21:02 
Модератор
Аватара пользователя


11/01/06
5702
Батороев в сообщении #292687 писал(а):
А мне вот интересно, можно ли делать как-то так:
Возвести в степень число $1000...0001$, а затем собирать биномиальные коэффициенты в различных разрядах?

Сделать-то можно (причем лучше работать с двоичной системой счисления), вот только будет ли от этого прок. Прикинуть сложность можно так:
Для простоты оценим биномиальные коэффициенты $\binom{n}{k}$ величиной $2^n$. Тогда число которое нам нужно возводить в степень $n$ нужно брать равным $2^n+1$. Сложность его возведения в степень $n$ можно оценить сложностью $O(\log n)$ умножений $n^2$-битных чисел, что суммарно дает сложность $O(n^2\log^2 n)$, что хуже чем у метода, основанного на рекуррентной формуле.

 Профиль  
                  
 
 Re: сложность вычисления биномиального коэффициента
Сообщение26.02.2010, 21:14 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Всё-таки я так и не понял из этого обсуждения, какой наиболее быстрый алгоритм вычисления $\binom{n}{k}$ при неограниченной памяти.

-- Сб фев 27, 2010 00:17:31 --

Умножение $n \cdot k$, по видимому, следует трактовать как $\log_2 k$ сложений чисел длины $\log_2 k + \log_2 n$. Сложение же чисел $n + k$ требует $O(\max\{ \log_2 n, \log_2 k \})$ времени.

 Профиль  
                  
 
 Re: сложность вычисления биномиального коэффициента
Сообщение26.02.2010, 22:12 
Модератор
Аватара пользователя


11/01/06
5702
Профессор Снэйп в сообщении #292744 писал(а):
Всё-таки я так и не понял из этого обсуждения, какой наиболее быстрый алгоритм вычисления $\binom{n}{k}$ при неограниченной памяти.

Зависит от соотношения $n$ и $k$.
Профессор Снэйп в сообщении #292744 писал(а):
Умножение $n \cdot k$, по видимому, следует трактовать как $\log_2 k$ сложений чисел длины $\log_2 k + \log_2 n$.

Мы считали $n$ и $k$ "одноячеечными" числами (например, $<2^{31}$ на 32-битной архитектуре), для практических применений вряд ли нужны большие. А для таких чисел, умножение и сложение можно считать атомарными операциями, требующими константное время.

 Профиль  
                  
 
 Re: сложность вычисления биномиального коэффициента
Сообщение26.02.2010, 23:39 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Кстати, а сколько тактов работы процессора занимают сложение и умножение? Или я отстал от жизни и сейчас всё это уже не в тактах меряется?

 Профиль  
                  
 
 Re: сложность вычисления биномиального коэффициента
Сообщение26.02.2010, 23:47 
Заслуженный участник


04/05/09
4587
Единицы тактов. Однозначно сказать нельзя, т.к. исполнение инструкций может перекрываться.
Из арифметических операций только деление осталось медленным.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group