Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчёт количества сочетаний для больших чисел 
:(
    Опции темы
Hohhi
Дата 15.12.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



Привет всем! в понедельник сдавать проект по информатике за пол года, пишу на с++ builder. Проект решает линейные системы, работает с бином Ньютона, ну и там по мелочевке(ортогонализация векторов, и ещё пару вещей). Так вот показывал преподу(я первый курс на ИТ, республика Молдова) и он сказал, что на 10 мало- раз, и ввел сочетания из 1000000 по 999999, или что то в этом роде, может на пару разрядов выше и прога выдала exception. Обрабатывать исключения не умею раз, а он затребовал чтобы считала 10-15 значные числа, сказал, что можно сделать подобное и без длиной арифметики. Я не знаю как, сам вроде нашёл реккурсивную формулу, так что должна вроде использовать данный long-ом диапозон на максимум, вот код функции:

Код

double sochet(int k,int n)
{
    if (k==0)
        return 1;
    else
            return (sochet(k-1,n)*(n-k+1))/k;
}

 Помогите, если знаете про подобное, длинную арифметику с произведением не осилю до понедельника, так как ещё надо написать пару-троику функции в проекте объёмных, дооформлять и готовиться к экзамену на вторник, оставил на последний день, виноват, выручайте пожалуйста
PM MAIL ICQ   Вверх
JackYF
Дата 16.12.2007, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: нет
Всего: 162



Цитата(Hohhi @  15.12.2007,  21:46 Найти цитируемый пост)
чтобы считала 10-15 значные числа

можно взять тип long long aka int64. Этого хватит на 15 десятичных разрядов.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Akina
Дата 16.12.2007, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Hohhi @  15.12.2007,  22:46 Найти цитируемый пост)
вот код функции

Преп тебя назвал [censored] - не приходило в голову проверить, что k>n/2?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Hohhi
Дата 16.12.2007, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



Akina, все мы уимся и можно культурно общаться, почему к больше n/2, ????, сочетания из 4 по 5 вполне существуют
PM MAIL ICQ   Вверх
Akina
Дата 16.12.2007, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



C(n,k) = C(n,n-k)
Цитата(Hohhi @  15.12.2007,  22:46 Найти цитируемый пост)
ввел сочетания из 1000000 по 999999,

Твоя программа ДОЛЖНА была считать сочетания из 1000000 по (1000000-999999)=1, т.е. мгновенно выдать 1000000.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
AlexST
Дата 2.1.2008, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 30.4.2006
Где: Москва

Репутация: нет
Всего: 3



del

Это сообщение отредактировал(а) AlexST - 2.1.2008, 01:14
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.