Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/88: Рейтинг темы: голосов - 88, средняя оценка - 4.68
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916

Возвести число в степень(дробную)

12.10.2016, 19:33. Показов 18616. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В соседней теме помог сделать возведение в целочисленную степень и вот стало интересно, но что-то не могу придумать как сделать возведение числа в дробной степени

Пример:
21.5 = 2.82...

Так вот как это реализовать, конечно есть формула возведения
https://www.cyberforum.ru/cgi-bin/latex.cgi?{(\sqrt[n]{x})}^{m} = {x}^{\frac{m}{n}}

Какие возникли трудности, во первых как определить отношение, ясно что 0.5 это https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{2} и по сути это можно представить в виде https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{5}{10} т.е. умножать числитель и знаменатель на 10 до тех пор, пока числитель не "откинет" дробную часть, но тут возникает проблема, того что при бесконечно малых числах степени, значение числителя и знаменателя будет очень большое и не будет влезать в размер переменных и проблема номер два, я привык представлять выражение с корнем n-ой степени как число в степени https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{n} и получается так, что мы будем бесконечно рекурсивно вызывать сами себя(с учетом что мы не используем стандартную функцию pow). Ну надеюсь ясно выразил проблему, возможно тут решение как то заключается в численных или мат методах, просто я не особо в курсе и решил поинтересоваться.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2016, 19:33
Ответы с готовыми решениями:

Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.
Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.

Если введенное число отрицательное и четное, то возвести его в 3 степень, иначе возвести в квадрат
Ввести целое число В. Если В отрицательное и четное, то возвести его в 3 степень, иначе возвести в квадрат

Возвести число в степень
Дано натуральное n. Написать программу вычисления a^n("а" в степени n)

16
 Аватар для fire_Rising
10 / 11 / 7
Регистрация: 11.05.2016
Сообщений: 113
12.10.2016, 20:02
obivan, На то они и бесконечно малые
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
12.10.2016, 20:39  [ТС]
все вопрос отпал трудность заключалась в том, что я не знал как корень с основанием представить, для его вычисления можно использовать логарифм
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2016, 21:19
obivan, покажи что получилось в итоге.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.10.2016, 21:35
Цитата Сообщение от obivan Посмотреть сообщение
все вопрос отпал
Как? Сам? - Не может быть!
obivan, вот это:
Цитата Сообщение от obivan Посмотреть сообщение
возведение числа в дробной степени
это же о дробной, а не дробно-рациональной ведь? А как же с иррациональными быть? Пи делить на четыре это как представить в виде m/n, где m и n целое и натуральное?
Не может такой вопрос отпасть. Или Вы, что-то придумали?
1
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
12.10.2016, 21:55  [ТС]
castaway, не программировал, но вот формула, проверял на калькуляторе
допустим нужно вычислить выражение:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[3]{27}, что по сути одно и тоже как наш корень https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[n]{x}

C++
1
exp(n*ln(x))
тут я согласен, тоже используется хитрость со степенью экспоненты, но по сути решает проблему, если нельзя использовать pow

Добавлено через 2 минуты
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не может такой вопрос отпасть. Или Вы, что-то придумали?
ну я можно так сказать схитрил , хотя все равно хотелось бы послушать варианты, пока мои идеи, что как то с помощью численных методов, вычисляется сумма ряда и мы что-то получим, но тут слишком много что, да абы, естественно формулу я не знаю но сейчас штудирую интерент в поисках

Добавлено через 3 минуты
ну тогда все таки вопрос не отпал, как же быть с иррациональными, но тут стоит же оговорится, мы же не сможем Пи в программировании представить ввиде бесконечной дроби, следовательно вся задача может свестись к точности вычислений ?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2016, 22:00
obivan, а как в итоге в степень то возвести?
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
12.10.2016, 22:09  [ТС]
А и кстати, со степень экспоненты все нормально, там ведь мы сможем посчитать степень через ряд Тейлора, так что скорее всего это решение правильно, но пока мне понравилось замечание IGPIGP,

Добавлено через 30 секунд

Не по теме:

castaway, ну через ряд Тейлора, просто не успело написаться



Добавлено через 8 минут
castaway, тут может я плохо еще выразился
есть тождество, вот приведу его на всякий случай
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[n]{x} = https://www.cyberforum.ru/cgi-bin/latex.cgi?{e}^{\frac{ln(x)}{n}}
2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.10.2016, 22:11
Цитата Сообщение от obivan Посмотреть сообщение
мы же не сможем Пи в программировании представить ввиде бесконечной дроби, следовательно вся задача может свестись к точности вычислений ?
Конечно, но объём вычислений для представления такого красавца:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\sqrt{2}}{2}
в виде рациональной дроби (с точностью до совпадения 14 значащих десятичных) тоже ведь придётся учесть? В чём тогда профит? Логарифм, кстати тоже на дереве не растёт. Он считается рядом.
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
12.10.2016, 22:15  [ТС]
IGPIGP, ну погодите, просто меня профит на самом деле пока мало беспокоит, просто интересно стало как вообще реализовать эту задачу, да и логарифм можно посчитать рядом, я просто клоню к тому что по сути я поимел маленькое представление как можно это реализовать обещаю вам не использовать свой велосипед , просто почему захотелось разузнать, довольно часто на форуме просят реализовать задачу со степенью, но всегда приводится решение для целочисленного значения степени
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.10.2016, 22:21
Цитата Сообщение от obivan Посмотреть сообщение
но всегда приводится решение для целочисленного значения степени
Это не случайно.
Да и, в конце концов, - экспонента это не pow с основанием e ?
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
12.10.2016, 22:22  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
экспонента это не pow с основанием e
это уже совсем другая история
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.10.2016, 22:33
Цитата Сообщение от obivan Посмотреть сообщение
это уже совсем другая история
Дык знамо-дело! Этот pow это не тот pow! Это самый тот который надо pow!

Можно бы извратиться конечно. Любую дробь >1 можно представить в виде целого и дроби вида 1<x<2. Тогда x=1+k, где 0<k<1 и
(1+к)m
получаем биноминальный ряд: 1+ A1k2+A2k3+...+mkm-1+km
Не думаю что это легче. Но забористей. От слова ряд/забор. Может это то, что Вам понравится.
Тем более, что часть слагаемых при больших m можно и не считать.
3
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
12.10.2016, 22:38  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Можно бы извратиться конечно. Любую дробь >1 можно представить в виде целого и дроби вида 1<x<2. Тогда x=1+k, где 0<k<1 и
(1+к)m
получаем биноминальный ряд: 1+ A1k2+A2k3+...+mkm-1+km

нужно срочно сесть поучить матан, я всего лишь бедный студент, не убивайте меня этим
в любом случае спасибо за наводки, будет над чем еще помыслить, на самом деле для меня эта скажем так, тривиальная задача, оказалась не такой уж и тривиальной
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.10.2016, 22:43
Цитата Сообщение от obivan Посмотреть сообщение
нужно срочно сесть поучить матан
Это всегда не вредно, но в данном случае - это алгебра. Бином Ньютона. Там не всё белоснежно так как чем болше исходное число чем 2 тем больше a в сумме a+x. А возводить надо это всё. Не только x=1+k
В общем - тупик. Но просторный
0
 Аватар для fire_Rising
10 / 11 / 7
Регистрация: 11.05.2016
Сообщений: 113
13.10.2016, 00:28
IGPIGP, у нас по матану Бином Ньютона был в 1 семестре, тогда еще самые простейшие пределы проходили. сейчас 3-ий )
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.10.2016, 09:21
Цитата Сообщение от fire_Rising Посмотреть сообщение
Бином Ньютона был в 1 семестре, тогда еще самые простейшие пределы проходили.
А у нас это в школе было. Только оно имело бы смысл для возведения дроби, а не возведения в дробную степень. То есть, ночью надо спать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2016, 09:21
Помогаю со студенческими работами здесь

Возвести число y в степень 2000
Помогите пожалуйста Нужно как-то придумать как возвести число y в степень 2000 на с++ уже не знаю как это сделать

Возвести число в (7) семизначную степень
Подскажите пожалуйста, как можно реализовать данную функцию? К примеру необходимо число 2 возвести в 1234567 степень. Проблема заключается...

Как возвести число в степень
Как возвести число в степень ???

Возвести число в 7000 степень
Сегодня был на олимпиаде. Проверка была через contester, в задачи есть место где нужно возвести число в степень. Никак работать не...

Возвести число в a степень 7 за 4 операций
Нужно использовать только операцию умножения #include &lt;iostream&gt; using namespace std; int main() { double a,b; cin...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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 и. . .
Как дизайн сайта влияет на конверсию: 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 На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru