Форум программистов, компьютерный форум, киберфорум
MathCAD
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/35: Рейтинг темы: голосов - 35, средняя оценка - 4.57
3 / 3 / 0
Регистрация: 01.07.2012
Сообщений: 6

Расчёт биномиального коэффициента без факториала

02.07.2012, 14:57. Показов 6895. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой. Мне надо вычислить биномиальные коэффициенты довольно больших чисел, поэтому обычная формула с факториалом не катит. Я пытался сделать с рекурсией, но что-то не так: результат при любых числах равен 1. Вроде всё по формуле из википедии сделал, где проблема?
Вот эта формула http://upload.wikimedia.org/wi... 5c9c14.png
Вложения
Тип файла: rar Биномиальный Коэффициент.rar (9.2 Кб, 81 просмотров)
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2012, 14:57
Ответы с готовыми решениями:

Вычисление биномиального коэффициента
bc(0,N,R,R):- N>0,R is 1,!. bc(M,0,R,R):- M>0,R is 1,!. bc(N,N,R,R):- R is 1,!. bc(M,N,R,R1):- M1 is M - 1, N1 is N...

Вычисление биномиального коэффициента
function C(m, n : Integer) : Integer; begin if (m = 0) or (m = n) then C := 1 else C := C(m, n - 1) + C(m - 1, n - 1); end; ...

Вычисление биномиального коэффициента
Нашел код программы: void main () { long int C; int m; int n; int nm; int i; int j;

4
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3418 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
02.07.2012, 15:25
Ошибка в 3-м if (7-я строка):

надо if k=0
3
3 / 3 / 0
Регистрация: 01.07.2012
Сообщений: 6
02.07.2012, 15:31  [ТС]
Спасибо, не могли бы вы ещё помочь. Мне нужно вычислить для чисел n=1000 и k=100, 200,....900.

Выдаёт ошибку о бесконечной рекурсии или переполнении, это значит, что мой вариант решения просто не подходит и маткад его не тащит. Какую ещё формулу для вычисление такого большого биномиального коэффициента можете посоветовать?
1
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3418 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
02.07.2012, 18:29
Упростить выражение для биномиальных коэффициентов:

https://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{n}^k=\frac{n!}{(n-k)!\, k!}=\frac{(n-k+1)(n-k+2)...n}{k!}

после чего можно обойтись без рекурсии (см. приложение).
Порядок вычисленных коэффициентов совпадает с оценкой величины, полученной с помощью формулы Стирлинга.
Максимальный порядок чисел в Маткаде 10^307, поэтому бОльшие коэффициенты уже вряд ли удастся вычислить.
Миниатюры
Расчёт биномиального коэффициента без факториала  
Вложения
Тип файла: zip binom.zip (13.2 Кб, 98 просмотров)
2
3 / 3 / 0
Регистрация: 01.07.2012
Сообщений: 6
02.07.2012, 20:28  [ТС]
Спасибо ещё раз.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2012, 20:28
Помогаю со студенческими работами здесь

Рекурсивное вычисление биномиального коэффициента
Моя программа рекурсивно описывает функцию C(n,m) вычисления биномиального коэффициента по следующей формуле: C(n,0) = C(n,n) = 1;...

Рекурсия: вычисление биномиального коэффициента
Описать функцию С(m,n), где 0<=m<=n, для вычисления биномиального коэффициента Cmn по следующей формуле: C0n=Cnn=1; Cmm=Cmn-1+Cm-1n-1 при...

Рекурсия: вычисление биномиального коэффициента
Вот нашел два решения, но они не работают:( function C(m, n :Byte):Longint; Begin If (m=0) or (m=n) Then C:=1 ...

Рекурсия: вычисление биномиального коэффициента
Здравствуйте, появилась проблемма с написание программы которая использует рекурсивную функцию. Задание: Вот неочень удачная наброска...

Рекурсия: нахождение биномиального коэффициента
Собственно задача поставлена предельно просто, найти биномиальный коэффициент, используя рекурсию. Из своих скудных знаний выходит примерно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru