Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.85
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
#1

Возведение в степень, отрицательные числа - C++

25.07.2013, 14:13. Просмотров 4330. Ответов 52
Метки нет (Все метки)

В библиотеке <cmath> есть такая функция pow(A,B) - получаешь результат возведения A в степень B
Решил написать свой pow с положительными числами работает, а вот с отрицательными я не могу понять как правильно,
1. -2 в 2 степени, на яндексе показывает что должно быть -4, обычный калькулятор показывает -4, pow(A,B) из <cmath> показывает 4, мой pow тоже показывает 4
2. -2 в 3 степени, везде показывает -8 (в том числе и у меня)

по поводу первого варианта, так как все же правильно, -2 в 2 степени, 4 или -4?

PS, да, мне стыдно что я не помню школьную математику.. с каждым может случится..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
26.07.2013, 11:59  [ТС]     Возведение в степень, отрицательные числа #41
то, что не отступов, мне так удобнее, и удобнее что бы между некоторыми "блоками" были пустые строки.

насчет лишней переменной, я попозже посмотрю, как усовершенствовать, насчет _pow == 0 может и зря написал, но по мне лучше просчитать все варианты, я вот когда решил написать этот код, я и не думал о возведении в отрицательную степень.

Вообще спасибо, еще на досуге подумаю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nonedark2008
813 / 571 / 110
Регистрация: 28.07.2012
Сообщений: 1,515
26.07.2013, 12:09     Возведение в степень, отрицательные числа #42
Цитата Сообщение от Ilot Посмотреть сообщение
nonedark2008, не сочтите за труд указать рабу божьему где можно почитать о такого рода алгоритмах?
Первый алгоритм можно легко нагуглить - он используется повсеместно.
Про второй - можно почитать во втором томе Кнута.
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
26.07.2013, 14:11  [ТС]     Возведение в степень, отрицательные числа #43
Цитата Сообщение от Ilot Посмотреть сообщение
Вот именно. Код работает только для целых степеней.
Такой код не лучше?
C++
1
2
3
4
5
6
7
long double my_pow(long double number, short int _pow)
{
    long double temp = 1; // временное значение
    for (int count = 0; count < abs(_pow); count++)
       temp *= number;
    return (_pow > 0) ? temp: 1/temp;
}
nonedark2008, не сочтите за труд указать рабу божьему где можно почитать о такого рода алгоритмах?
а можно разъяснить что значит:

1. в 4-й строчке abs, не знаю что за функция, по этому ее у меня нет.
2. знаки "?", "?:" что он делает в С++, я пока с ними не сталкивался
3. строчка 6 более подробно расписать, т.к. я ее не понимаю, . я сталкивался пока что только с выражениями типа return a; , а не то, что там написано.
nonedark2008
813 / 571 / 110
Регистрация: 28.07.2012
Сообщений: 1,515
26.07.2013, 14:17     Возведение в степень, отрицательные числа #44
VLK, ты бы хоть в документацию заглянул, А?
abs - функция модуля.
a ? b: c - если a - истина, то b, иначе c.
Цитата Сообщение от VLK Посмотреть сообщение
return (_pow > 0) ? temp: 1/temp;
Если _pow больше нуля, то вернуть temp, иначе вернуть 1/temp
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
26.07.2013, 14:17     Возведение в степень, отрицательные числа #45
1. открой для себя http://www.cplusplus.com/ (сверху поиск)
2. тернарный оператор
3. возвращение значения результата тернарного оператора
Ilot
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 5
Завершенные тесты: 1
26.07.2013, 14:19     Возведение в степень, отрицательные числа #46
1)Стандартаня ф-я возвращает модуль числа.
2)Конструкция:
[условие] ? [вевести это если условие истина] : [вывести это если уловие ложь]
это более короткое выражение данной конструкции:
if (условие)
[вевести это если условие истина]
else
[вывести это если уловие ложь]
3)Если показатель больше нуля вывести temp иначе 1/temp
p.s.вот так всегда на самом последнем месте
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
26.07.2013, 14:20  [ТС]     Возведение в степень, отрицательные числа #47
Цитата Сообщение от castaway Посмотреть сообщение
1. открой для себя http://www.cplusplus.com/
2. тернарный оператор
3. возвращение значения результата тернарного оператора
Я бы для себя его открыл, если бы знал английский

короче всем спасибо, по мимо вопроса в начале, я для себя сделал вывод, что пока что еще рано я задаю вопрос, гнилой ли у меня код.
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
26.07.2013, 14:24     Возведение в степень, отрицательные числа #48
Цитата Сообщение от VLK Посмотреть сообщение
Я бы для себя его открыл, если бы знал английский
Это не проблема. Я когда встречаю незнакомое слово то просто забиваю его в http://yandex.ru/yandsearch?text=%D0...B8%D0%BA&lr=49
Если есть интерес к программированию, то слова запоминаются легко.
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
26.07.2013, 14:25  [ТС]     Возведение в степень, отрицательные числа #49
Цитата Сообщение от castaway Посмотреть сообщение
Это не проблема. Я когда встречаю незнакомое слово то просто забиваю его в http://yandex.ru/yandsearch?text=%D0...B8%D0%BA&lr=49
Если есть интерес к программированию, то слова запоминаются легко.
а когда почти все слова незнакомые?
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
26.07.2013, 14:31     Возведение в степень, отрицательные числа #50
Цитата Сообщение от VLK Посмотреть сообщение
а когда почти все слова незнакомые?
Ну это уже тяжелый случай)) Если есть интерес к программированию - значит должен быть интерес к английскому языку, если нет интереса к англ.яз. - тогда не должно быть интереса к программированию. Парадокс..
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
26.07.2013, 14:35  [ТС]     Возведение в степень, отрицательные числа #51
Цитата Сообщение от castaway Посмотреть сообщение
Ну это уже тяжелый случай)) Если есть интерес к программированию - значит должен быть интерес к английскому языку, если нет интереса к англ.яз. - тогда не должно быть интереса к программированию. Парадокс..
Ох.. рано или поздно наступают времена когда интерес сменяется необходимостью, при чем необходимость эту надо реализовать в кротчайшие сроки.
SoulYangOr
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 10
26.07.2013, 16:03     Возведение в степень, отрицательные числа #52
Цитата Сообщение от Kukurudza Посмотреть сообщение
где посмотреть?
Мат анализ и численные методы тебе в помощь)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2014, 22:18     Возведение в степень, отрицательные числа
Еще ссылки по теме:

C++ Возведение из числа степень
C++ Возведение числа а в степень n
C++ Возведение числа в степень n-1
Возведение числа в целую степень C++
Возведение в степень вводимого числа C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
19.03.2014, 22:18     Возведение в степень, отрицательные числа #53
Уточнение в алгоритме (справедливо для всех b >= 0)
http://www.cyberforum.ru/cgi-bin/latex.cgi?atan2(Re({e}^{b*ln(|a|)}), Im({e}^{b*ln(|a|)})) = \pi*(b - floor(b))
Миниатюры
Возведение в степень, отрицательные числа  
Вложения
Тип файла: rar exp2.rar (2.0 Кб, 3 просмотров)
Yandex
Объявления
19.03.2014, 22:18     Возведение в степень, отрицательные числа
Ответ Создать тему
Опции темы

Текущее время: 00:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru