-3

Почему Microsoft Excel 7 говорит, что 8 ^(- 1 ^(- 8 ^ 7))) = 8, а Вольфрам Альфа - 1/8?
Эти результаты совпадают, если я заменю -2097152.0 на -8 ^ 7.
Теперь -1 к любой степени -1. Поэтому -1 ^(- 8 ^ 7) = -1. И 8 ^ -1 = 1/8.
Excel не прав.
Попробуйте и посмотрите!

4 ответа4

2

Проблема в том, что в Excel знак минус используется для обозначения как оператора вычитания, так и унарного знака. Это легко проиллюстрировать. В А1 введите:

=-1^(ROW())

и скопируйте вниз:

Флип / флоп положительный / отрицательный указывает, что Excel видит знак минус как унарный и обрабатывает эту формулу следующим образом:

=(-1)^(ROW())

Теперь в B1 введите:

=0-1^(-ROW())

и скопируйте вниз:

Отсутствие переворачивания означает, что Excel видит знак минуса как оператор вычитания и обрабатывает эту формулу следующим образом:

=0-(1^(-ROW()))

Конечно, пользователь всегда может контролировать приоритет, используя круглые скобки.

EDIT # 1:

Смотрите объяснение Билла Елена

2

Excel и Wolfram Alpha имеют разные правила приоритета для разбора выражения, такого как возведение в степень и унарный минус.

- x ^ y

Excel рассматривает унарный минус как более высокий приоритет и делает это первым, оценивая выражение как:

( - x ) ^ y

Вольфрам Альфа сначала возводит возведение в степень, оценивая выражение как:

- ( x ^ y )
1

Это неверно -1 ^ 2 равно 1. Однако -1 для любой нечетной степени равен -1; это правда. Используя совершенно разумную логику, вы можете сказать, что 8 ^(- 1 ^(- 8 ^ 7)). -8 ^ 7 = -2 097 152, четное число; следовательно, -1 ^(- 2 097 152) равно 1/(- 1 ^(2 097 152)), что уменьшает его до 1/1 или просто до 1, а 8 ^ 1 равно 8. Ваша запись в WolframAlpha в некотором роде ошибочна.

РЕДАКТИРОВАТЬ: я сделал расчет на Wolfram, и оказывается, что вы ввели это неправильно. Вы должны изолировать -1 дальше от базы, вот так:

8^( (-1)^(-8^7) )

Вольфрам выплюнул это мне (идентично моей записи):

8^((-1)^(-8^7))
1

Вольфрам Альфа делает это:

-(1 -2097152) = -(1) = -1

8 -1 = 1/8

Excel, с другой стороны, делает это:

(-1)-2097152 = 1

8 1 = 8

Действительно, Excel не прав - его следует сначала возвести в степень, а затем отрицать. Попробуйте эту формулу: =8^(-(1^(-8^7)))

Теперь -1 к любой степени -1

Как уже указывал var firstName, это неверно. Тем не менее, это правда, что -1 N = -1 верно для любого N - опять же, потому что вы должны сначала возвести в степень, а затем отрицать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .