|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
Сочетания с очень большими числами08.04.2013, 19:24. Показов 13152. Ответов 21
Метки нет (Все метки)
Всем привет, подскажите, кто сможет: Не могу сообразить, как решить задачу (вычислительно, естественно, не на листке):
Найти все комбинации m по n, при этом m и n могут быть очень большими, вплоть до нескольких тысяч. Вернуть нужно otvet modulo 1 000 000, соответственно. Конечно, просто применить обычную формулу сочетаний с такими числами я не могу, а других вариантов не знаю. Заранее спасибо.
0
|
|
| 08.04.2013, 19:24 | |
|
Ответы с готовыми решениями:
21
Работа c очень большими числами Работа с очень большими целыми числами Как работать с очень большими числами? |
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
| 09.04.2013, 20:41 [ТС] | |
|
Задачу решил, если кому понадобится, советую сократить факториал числителя и знаменателя, потом оставшееся разложить на множители, искать общий делитель в числителе и знаменателе, и сокращать, пока в знаменателе не останутся сплошные единицы. В рамках этой задачи это возможно всегда.
Ну, а дальше или длинная арифметика или что похитрее. Код не буду выкладывать, он специфичен для моей задачи.
0
|
|
|
2904 / 1937 / 211
Регистрация: 05.06.2011
Сообщений: 5,724
|
|
| 12.04.2013, 17:41 | |
|
Длинная арифметика не понадобится. Если нужен результат по модулю, то и все вычисления можно проводить по этому же модулю. Даже не знаю, стоит ли заморачиваться сокращениями; впрочем, если алгоритм уже есть и работает, может, и стоит.
2
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 12.04.2013, 18:50 | ||
|
Добавлено через 5 минут Вот еще. Сократить на все двойки и пятерки (сократиться обязано, в знаменателе их не останется) а дальше - для каждой x, такой что НОД(x,5) = 1 и НОД(x,2) = 1 есть обратный по модулю 1000000. Не по теме: Это, конечно, не решение. Мысли вслух.
1
|
||
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
||
| 12.04.2013, 19:39 [ТС] | ||
|
Все работает и довольно шустро (я уверен, что можно лучше, но это уже намного лучше, чем я ожидал). У меня задача была такая, даны m и n. Нужно вычислить сумму всех комбинаций при k по n, где k от m до n, и вернуть по модулю 1млн. Ну вот при числах 928 и 1605, к примеру, мой компьютер (core i5) посчитал секунд за 10-20.
0
|
||
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
||
| 12.04.2013, 21:11 [ТС] | ||
|
0
|
||
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 12.04.2013, 21:25 | |
|
Треугольник Паскаля, не?
0
|
|
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
| 12.04.2013, 21:33 [ТС] | |
|
0
|
|
|
4445 / 2449 / 227
Регистрация: 20.08.2011
Сообщений: 3,108
|
|
| 12.04.2013, 22:41 | |
|
0
|
|
|
2904 / 1937 / 211
Регистрация: 05.06.2011
Сообщений: 5,724
|
|
| 13.04.2013, 01:32 | |
|
Ну, это всё же приближённая формула. Если нужен остаток, по идее, нужна точная.
0
|
|
|
4445 / 2449 / 227
Регистрация: 20.08.2011
Сообщений: 3,108
|
|
| 13.04.2013, 11:08 | |
|
0
|
|
|
2904 / 1937 / 211
Регистрация: 05.06.2011
Сообщений: 5,724
|
|
| 13.04.2013, 11:35 | |
|
Вдруг дошло, что знаю самый быстрый способ: остаток от деления 25 и далее факториал на миллион равен нулю! Первые 24 проще посчитать заранее и хранить в таблице
1
|
|
| 13.04.2013, 11:39 | |
|
Число 1000! имеет порядок 102567, что тоже дает очень-очень большую ошибку.
Нам нужен не сам факториал, а отношения факториалов типа: 1000!/27!*973!, поэтому выше я спрашивал, "как делить по модулю"
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 13.04.2013, 11:41 | ||
|
ИМХО, собака зарыта где-то недалеко.
0
|
||
| 13.04.2013, 11:54 | |
|
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|||||||
| 13.04.2013, 12:06 | |||||||
1
|
|||||||
|
2904 / 1937 / 211
Регистрация: 05.06.2011
Сообщений: 5,724
|
|
| 13.04.2013, 12:08 | |
|
Точно, поторопился. Забыл, что тут не факториалы, а сочетания.
0
|
|
| 13.04.2013, 12:08 | |
|
Помогаю со студенческими работами здесь
20
Как реализовать работу с очень большими числами? Работа с очень большими числами до 40000 в степени 10 Математические операции над очень большими числами. Библиотеки для работы с очень большими дробными числами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|