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

Какие существуют способы возведения в степень - C++

Восстановить пароль Регистрация
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
04.10.2012, 23:12     Какие существуют способы возведения в степень #1
Почему не работает? (про функцию pow из math.h можете мне не говорить, я хочу узнать другие способы возведения в степень)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main()
{
    int x, y, z;
    x = 2;
    y = 3;
    z = x^y;
 
    cout << z;
 
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
04.10.2012, 23:36     Какие существуют способы возведения в степень #2
Потому что ^ - это не возведение в степень, а ксор
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
04.10.2012, 23:37     Какие существуют способы возведения в степень #3
Цитата Сообщение от aleksand Посмотреть сообщение
Почему не работает?
Цитата Сообщение от aleksand Посмотреть сообщение
x = 2;
y = 3;
z = x^y;
очень даже работает z =1
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
04.10.2012, 23:38  [ТС]     Какие существуют способы возведения в степень #4
Цитата Сообщение от I.M. Посмотреть сообщение
Потому что ^ - это не возведение в степень, а ксор
А как возвести в степень? Подскажите пожалуйста
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
04.10.2012, 23:39     Какие существуют способы возведения в степень #5
Цитата Сообщение от aleksand Посмотреть сообщение
(про функцию pow из math.h можете мне не говорить, я хочу узнать другие способы возведения в степень)
разве только умножением

али через логарифмы Зело круто
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
05.10.2012, 11:26     Какие существуют способы возведения в степень #6
Думаю так будет красивей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main()
{
    int x, y, z;
    x = 2;
    y = 16;
    z = x;
    while(--y) z*=x;
    cout << z;
 
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 12:22     Какие существуют способы возведения в степень
Еще ссылки по теме:

C++ Написать функцию возведения в степень
C++ Функция возведения в степень.
Рекурсивная функция возведения в степень C++

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.10.2012, 12:22     Какие существуют способы возведения в степень #7
Существует целая степень и рациональная. Что такое http://www.cyberforum.ru/cgi-bin/latex.cgi?(-2)^3? Если это куб, то можно посчитать так: http://www.cyberforum.ru/cgi-bin/latex.cgi?(-2)^3=(-2)*(-2)*(-2)=-8, то есть целая степень существует и для отрицательных чисел. Теперь что такое http://www.cyberforum.ru/cgi-bin/latex.cgi?2^{2.5}? Можно привести к целой степени и корню целой степени: http://www.cyberforum.ru/cgi-bin/latex.cgi?2^{2.5}=sqrt{2^5}={sqrt2}^5=\sqrt[4]{2^{10}}={\sqrt[4]{2}}^{10}, но во-первых так можно не со всеми показателями. А во-вторых что такое http://www.cyberforum.ru/cgi-bin/latex.cgi?(-2)^{2.5}? http://www.cyberforum.ru/cgi-bin/latex.cgi?(-2)^{2.5}=sqrt{-2}^5=(sqrt{2}*sqrt{-1})^5=(sqrt{2}i)^5=sqrt{2}^5i и http://www.cyberforum.ru/cgi-bin/latex.cgi?(-2)^{2.5}=sqrt{-2^5}=sqrt{2^5}*sqrt{-1}=(sqrt{2}i)^5=sqrt{2^5}i, но http://www.cyberforum.ru/cgi-bin/latex.cgi?{-2}^{2.5}=\sqrt[4]{(-2)^{10}} и даже http://www.cyberforum.ru/cgi-bin/latex.cgi?{-2}^{2.5}={\sqrt[4]{-2}}^{10}. Первые два результата равны друг другу, но не третьему результату. Получается, что рациональная степень отрицательных чисел вообще не определена. Какую из степеней подразумеваешь? Целую, или рациональную? Можно, конечно, учесть тип второго операнда. Но как быть с корнями? http://www.cyberforum.ru/cgi-bin/latex.cgi?a^{1/n}=\sqrt[n]{a}. Если ты имеешь ввиду корень, то он определён и для отрицательных чисел: http://www.cyberforum.ru/cgi-bin/latex.cgi?(-2)^{1/2}=\sqrt[2]{-2}=\sqrt[2]{2}*\sqrt[2]{-1}=\sqrt[2]{2}i. Поэтому стандартного оператора возведения в степень в нормальных языках вообще не бывает, это не бейсик.

Добавлено через 23 минуты
Бывают функции, в том числе, показательные. Например, exp. Но не бывает таких операторов. Фокус в том, что функций, в том числе, не стандартных, может быть сколько угодно на любой вкус, что имеешь ввиду, то и реализуй, а количество операторов ограничено.
Yandex
Объявления
05.10.2012, 12:22     Какие существуют способы возведения в степень
Ответ Создать тему
Опции темы

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