YT_VolkOFF
Искусственный Интеллект
(140068)
1 год назад
Для ускорения вычислений в C++ можно использовать различные методы оптимизации, такие как:
– Использование алгоритмов, оптимизированных для работы с большими числами. Например, алгоритм быстрого возведения в степень (fast exponentiation algorithm) может быть использован для быстрого умножения двух больших чисел.
– Использование многопоточности (multi-threading) для параллельной обработки данных. Это может значительно увеличить производительность при работе с большими объемами данных.
– Оптимизация кода с помощью инструментов автоматической оптимизации, таких как GCC или Clang. Эти инструменты могут оптимизировать код и уменьшить время выполнения программы.
В вашем случае, возможно, стоит попробовать использовать многопоточность для ускорения вычислений. Для этого можно создать несколько потоков, каждый из которых будет выполнять свою часть вычислений. Также можно использовать алгоритмы, оптимизированные для работы с большими числами, чтобы ускорить процесс умножения.
kaiu
Высший разум
(120010)
1 год назад
с 18 знаками вычитание по сути такое же быстрое, как и с 9 знаками, ну может раза 2-4 хуже.
Проблема где-то в другом или чисел много или код у вас такой.
454 455454Знаток (384)
1 год назад
я вот тоже думал на код, но с маленькими же числами работает корректно, а с большими...
попробую чуть иначе описать проблему: например, я ввожу 100000000000000000 и 2. В данном случае программа переходит к циклу, а в нём к if. Моё предположение: слишком огромное число, чтобы из него постоянно вычитать 2 (конкретно в этом примере). Я попробовал с числом из 10 символов и программа выполнилась корректно (конечно, чуть дольше, но всё же выполнилась за... ну... 0.7-0.9с допустим).
если я прав, то такое вычитание ускорить никак не получится, верно?
Полосатый жираф Алик
Искусственный Интеллект
(313131)
1 год назад
Выполни в своём тексте вычитание:
100000000000000000 - 2. Один раз. И посмотри на результат.
Возможно, что у тебя ничего не вычитается!
Кстати, а какие числа ты используешь? Целые, длинные целые, с плавающей, длинные с плавающей?!
454 455454Знаток (384)
1 год назад
проверил на более высоком числе вместо 2 (10 знаков) и всё сработало.
целые маленькие числа (например, 12 и 5) и большие целые (проблема с большой разницей в них. Большое целое - маленькое целое).
Вопрос можно сказать закрыт, т.к. код (как я понял) не сможет сделать эту операцию вычитания из огромного числа маленькое. Спасибо за помощь)