|
1 / 1 / 0
Регистрация: 20.11.2012
Сообщений: 100
|
||||||
Возвести число в (7) семизначную степень28.12.2014, 17:27. Показов 2754. Ответов 18
Метки нет (Все метки)
Подскажите пожалуйста, как можно реализовать данную функцию? К примеру необходимо число 2 возвести в 1234567 степень. Проблема заключается в выводе такого большого числа. Зарание благодарен.
0
|
||||||
| 28.12.2014, 17:27 | |
|
Ответы с готовыми решениями:
18
Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++. Если введенное число отрицательное и четное, то возвести его в 3 степень, иначе возвести в квадрат
|
|
|
|
| 28.12.2014, 17:52 | |
|
Если задача в том, чтобы вывести точное значение - то нужна длинная арифметика.
Если задача в том, чтобы просто возвести в степень и получить приблизительное значение мантиссы и порядок - то используйте double.
2
|
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,245
|
|
| 28.12.2014, 18:10 | |
|
С double можно возвести только в 308 степень.
Только длинная арифметика!
1
|
|
|
343 / 343 / 331
Регистрация: 02.10.2014
Сообщений: 666
|
||||||
| 28.12.2014, 18:12 | ||||||
|
Думаю задача не на длинную арифметику.
Для 5-ти значной степени программа уже работает долго.
IrineK, думаю Вы правы Спасибо.
1
|
||||||
|
|
|||
| 28.12.2014, 18:25 | |||
|
Но это - только с двойками. Добавлено через 4 минуты А мантиссу считать дальше.
2
|
|||
|
1 / 1 / 0
Регистрация: 20.11.2012
Сообщений: 100
|
|||
| 28.12.2014, 18:45 [ТС] | |||
|
0
|
|||
|
1 / 1 / 0
Регистрация: 20.11.2012
Сообщений: 100
|
|||
| 28.12.2014, 19:18 [ТС] | |||
|
Добавлено через 3 минуты Что вы имели в виду под:
0
|
|||
|
343 / 343 / 331
Регистрация: 02.10.2014
Сообщений: 666
|
|
| 28.12.2014, 19:18 | |
|
Anadrion, Программа работает для 7-ми значной степени!
Только Вы никогда не дождетесь что она досчитает, и я понятия не имею как написать программу с длинной арифметикой способной посчитать такое за нормальное время. Со строками еще медленнее.
0
|
|
|
Супер-модератор
|
|
| 28.12.2014, 19:23 | |
|
Что считается "нормальным" временем? Программа с длинной арифметикой вычисляет все 371642 символа числа 21234567меньше чем за 5 секунд. Включая вывод на экран. Вполне приемлемое время для таких вычислений...
1
|
|
|
343 / 343 / 331
Регистрация: 02.10.2014
Сообщений: 666
|
|
| 28.12.2014, 20:04 | |
|
volvo, ну для 2 может и легко посчитать но надо не только для 2 -ки.
Нормальное время 10 секунд. 10^5 умножений длинных чисел за 10 секунд не посчиталось, больше ждать я не смог. Добавлено через 31 минуту 371642 символа уже не влезает в мои числа, 1^1234567 программа считала 10 секунд 2^12345 около 30 секунд
0
|
|
|
|
|||||||
| 28.12.2014, 21:21 | |||||||
Сейчас попробую быстрый алгоритм. Но он - неточный.
1
|
|||||||
| 28.12.2014, 21:30 | |
|
IrineK, и почему же он неточный?
Добавлено через 5 минут Другое дело, что при реализации бинарного возведения в степень потребуется возводить длинное число в квадрат, что накладно по времени - простейшая реализация будет работать за O(n^2), где n - длина числа. В таком случае можно написать алгоритм Карацубы или какой-нибудь из этой области.
0
|
|
|
|
|||||||
| 29.12.2014, 02:35 | |||||||
|
Dani, ну тогда карацубьте )
Добавлено через 5 часов 3 минуты
1
|
|||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 29.12.2014, 02:58 | ||
|
0
|
||
|
343 / 343 / 331
Регистрация: 02.10.2014
Сообщений: 666
|
|||||||||
| 29.12.2014, 08:13 | |||||||||
|
Мысль появилась после этого поста:
3^6 = 0*3^1 * 1*3^2 * 1*3^4 (6 = 2 + 4) 6 | 0 (6%2 = 0) 6/2 = 3 3 | 1 (3%2 = 1) 3/2 = 1 1 | 1 (1%2 = 1) 1/2 = 0
(моя программа не тянет, запутался пытаясь переписать на динамические массивы (в обычные число не влезает)) PS позже допишу обязательно. Добавлено через 23 минуты было ![]() Хотя нет, где деление степени на 2
0
|
|||||||||
|
|
|||
| 29.12.2014, 11:39 | |||
|
Добавлено через 2 минуты Что ускоряет процесс. Не более того.
0
|
|||
| 29.12.2014, 11:39 | |
|
Помогаю со студенческими работами здесь
19
Возвести число в a степень 7 за 4 операций Возвести число в степень(дробную) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
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 и. . .
|