|
0 / 0 / 0
Регистрация: 16.10.2024
Сообщений: 15
|
||||||
Почему эта программа вычисляет факториал больших чисел неправильно?16.10.2024, 14:25. Показов 2913. Ответов 41
Метки нет (Все метки)
Крайне интересная программка, призванная вычислять факториал любого числа, вплоть до миллиона и больше. Но есть один нюанс - если взять небольшое число, там однозначное или двухзначное, она успешно его посчитает, мы можем свериться с интернетом и всё верно. Но например факториал 1000 или других больших чисел - число получается неправильным. В чём причина такого феномена и как это исправить?
Так-же хотелось бы услышать ваше мнение о программе, и как её можно ещё оптимизировать для ещё более быстрого расчёта?
0
|
||||||
| 16.10.2024, 14:25 | |
|
Ответы с готовыми решениями:
41
|
|
38 / 27 / 13
Регистрация: 18.12.2023
Сообщений: 74
|
|
| 16.10.2024, 16:47 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 16.10.2024, 16:48 | |||
|
А потом думайте про всё остальное. А то медведя нет, но ногти, серу с ушей и фекалии уже делим. Добавлено через 35 секунд
0
|
|||
|
0 / 0 / 0
Регистрация: 16.10.2024
Сообщений: 15
|
||
| 16.10.2024, 16:50 [ТС] | ||
|
Значит программа всё-таки делает не абы что, не просто впустую нагружает процессор и забивает диск случайными числами. Она вычисляет, но именно на больших числах что-то идёт не так, и я ума не приложу что именно просто...
0
|
||
|
38 / 27 / 13
Регистрация: 18.12.2023
Сообщений: 74
|
|
| 16.10.2024, 16:53 | |
|
Xfyozz, Оптимизируйте тот код который я вам скинул, у меня на нем 100000, за секунд ~15 вычислилось, миллион не пробовал
0
|
|
|
6315 / 3039 / 1054
Регистрация: 01.06.2021
Сообщений: 11,582
|
|||
| 16.10.2024, 16:53 | |||
|
Системы компьютерной алгебры вычисляют мгновенно. Причем, без погрешности. Имею в виду, выводят/сохраняют в файл все цифры.
0
|
|||
|
38 / 27 / 13
Регистрация: 18.12.2023
Сообщений: 74
|
|
| 16.10.2024, 16:55 | |
|
Royal_X, Да это была шутка, понятно что условный wolfram за секунду берет и больше, самое простое мат.библу под плюсы найти, наверняка там уже всё реализовано
0
|
|
|
0 / 0 / 0
Регистрация: 16.10.2024
Сообщений: 15
|
||
| 16.10.2024, 16:55 [ТС] | ||
|
0
|
||
| 16.10.2024, 16:57 | |
|
0
|
|
|
38 / 27 / 13
Регистрация: 18.12.2023
Сообщений: 74
|
|
| 16.10.2024, 16:58 | |
|
Royal_X,
Не по теме: Шутник из меня явно лучше чем программист, это факт :)
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 16.10.2024, 17:00 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 16.10.2024
Сообщений: 15
|
||
| 16.10.2024, 17:04 [ТС] | ||
|
Это у нас вариант без многопоточности вы по факту предложили... Вообщем, если и на моём изначальном коде выставить в переменной num_threads число 1, тоесть однопоточный режим... Всё становится правильно, факториал от 1000 вычисляется абсолютно верным я вот сверился щас с интернетом. Тоесть проблема в многопоточности у нас кроется... Но почему она происходит?
0
|
||
|
6315 / 3039 / 1054
Регистрация: 01.06.2021
Сообщений: 11,582
|
||
| 16.10.2024, 17:14 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 16.10.2024
Сообщений: 15
|
|
| 16.10.2024, 17:16 [ТС] | |
|
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
|
||
| 16.10.2024, 17:16 | ||
Сообщение было отмечено Xfyozz как решение
РешениеЯ вижу лишь какой-то жалкий lock_guard в конце на push_back. И что? Как это должно помочь? Если один поток делает push_back, а другой в это время сидит в основном цикле? Да даже и без push_back, просто основной цикл без синхронизации работать правильно не будет.
1
|
||
|
6315 / 3039 / 1054
Регистрация: 01.06.2021
Сообщений: 11,582
|
|||
| 16.10.2024, 17:18 | |||
|
1
|
|||
|
0 / 0 / 0
Регистрация: 16.10.2024
Сообщений: 15
|
|||
| 16.10.2024, 17:24 [ТС] | |||
|
Но спасибо за совет, посмотрю тоже исходники Maxima. Добавлено через 2 минуты
0
|
|||
|
38 / 27 / 13
Регистрация: 18.12.2023
Сообщений: 74
|
|
| 16.10.2024, 17:27 | |
|
Royal_X, Не работал с мат. библиотеками, а что насчет GMP?
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
|
|||||||
| 16.10.2024, 17:27 | |||||||
1
|
|||||||
| 16.10.2024, 17:31 | |
|
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
|
||
| 17.10.2024, 23:22 | ||
|
Например, предположим вам нужно умножить 36 на 3 и на 4. Правильный результат 36*3*4 = 432. Однако обработка разрядов может выполниться в таком порядке:
Но 422 - это неправильный результат.
0
|
||
| 17.10.2024, 23:22 | |
|
Программа неправильно вычисляет Факториал больших чисел Факториал больших чисел
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|