Как и другие электронные таблицы, Excel имеет 15 значащих цифр точности. Итак, эта формула:

=1/3

Действительно возвращает это:

+0,333333333333333

Вы можете видеть, что если вы отформатируете ячейку, чтобы показать более 15 десятичных знаков.

Таким образом, 1/3 в Excel дает ПОЧТИ 1/3, как можно ближе к 15 значащим цифрам. "Значимые цифры" - это количество цифр от первой ненулевой цифры до последней ненулевой цифры, независимо от того, где находится десятичная дробь.

Таким образом, хотя 1000 ^(1/3) равно 10, эта формула:

=1000^(0.333333333333333)

Возвращает это:

+9,99999999999998

Как правило, вы получаете почти столько же (иногда столько же) девяток, сколько вы предоставляете троек. Пока что все это ожидается, учитывая ограничения в 15 значащих цифр точности.

Но если вы введете эту формулу:

=1000^(1/3)

Вы получаете ТОЧНО 10. Даже если вы измените форматирование чисел, чтобы отобразить максимально возможные 30 десятичных знаков, и даже если вы выберете формулу и нажмете F9, чтобы оценить ее в строке формул, она вернется ТОЧНО 10.

Что делает Excel, чтобы получить ровно 10 из этого? "1/3" в формуле на самом деле не совсем 1/3 к тому времени, когда оператор power ("^") получает его в свои руки; к тому времени это действительно 0.333333333333333.

ОБНОВИТЬ:

Ладно, я думаю, что знаю, что позволяет Excel получить точный результат 10, не прибегая к каким-либо особым случаям.

Во-первых, Excel будет иметь алгоритм n-корня, и через этот алгоритм будет отправлено = 1000 ^(1/3), чтобы получить кубический корень из 1000.

(FWIW, формула типа = 1000 ^(2/3) будет разделена на две задачи - квадрат 1000, а затем корень куба этого результата или корень куба 1000, а затем квадрат этого результата .)

Согласно нормальным правилам оценки Excel, первое, что должно произойти, это то, что 1/3 будет оцениваться как 0,333333333333333. Затем эти 0,333333333333333 будут инвертированы и отправлены в n-й корневой алгоритм.

Но что происходит, когда Excel получает обратное значение 0,333333333333333? Мы получаем ровно 3, потому что 1/0.333333333333333 = 3.000000000000003 и с 15 значительными цифрами точности Excel, 3.000000000000003 усекается до 3.00000000000000, или точно до 3.

Таким образом, алгоритм n-корня Excel запрашивает корень куба 1000. Не корень 3.000000000000003, а точный корень куба. И ответ на это, конечно, ровно 10.

Я посмотрел на то, что Excel делает обратное обратное всех целых чисел через 150. Сначала я получил обратное значение, затем скопировал / вставил значения, чтобы убедиться, что Excel выполняет какие-либо специальные операции с инверсией обратного, а затем получил обратное значение обратного значения. Например:

  1. = 1/3
  2. Скопируйте / Вставьте значения, чтобы получить значение 0.333333333333333
  3. = 1 / 0,333333333333333
  4. Результат: ровно 3.

Все они вышли на их точные оригинальные целые числа. Ни один не вышел к чему-то как 37.9999999999999 или 38.0000000000001.

Так что это может объяснить, почему = 1000 ^(1/3) получается как 3. Никакой специальной обработки не требуется. Просто когда Excel получает обратное значение 1/3, чтобы получить кубический корень из 1000, он получает ровно 3. И то же самое, вероятно, справедливо для большинства или всех подобных примеров.

С другой стороны, это не объясняет, почему = 1000 ^(0.333333333333333) возвращает 9.99999999999998 вместо 10. Кажется, это противоречит тому, что мы видим в Excel с 1/0.333333333333333.

1 ответ1

4

Что делает Excel, чтобы получить ровно 10 из этого?

Excel выполняет те же вычисления, которые выполняются при использовании POWER(Value, Exponent), чтобы вычислить уравнение =number^exponent

Это можно подтвердить, выполнив

  • `= 1000 ^(1/3), что составляет 10
  • =1000000^(1/3) что составляет 100
  • =1000000^(1/2) что составляет 1000
  • =100^(1/2) что составляет 10.

Какие совпадения

  • =POWER(1000,1/3) = 10
  • =POWER(1000000,1/3) = 100
  • =POWER(1000000,1/2) = 1000
  • =POWER(100,1/2) = 10

Я взял случайные показатели 1/5 и 5 и также проверил поведение.

  • =10^(1/5) и =POWER(10,1/5) оба выходят на 1.584893192

  • =10^5 and = POWER(10,5)both come out to 100000`

Я благодарен BriainC за помощь в указании правильного направления.

1000 ^(1/3) - это то же самое, что выражение кубического корня из 1000, что равно 10. Вероятно, Excel соблюдает правила дробных показателей и фактически не выполняет никаких вычислений при интерпретации 1/3 в показателе степени.

Стоит отметить, что повышение любого значения до степени 1/3 - это способ вычисления корня куба этого числа в Excel. Повышение любого значения до степени 1/2 - это способ вычисления квадратного корня этого числа в Excel. Вы также можете использовать уравнение =SQRT(Value) , но при этом вы получите те же результаты, что и =POWER(Value,Exponent)

Корень куба Excel: корень куба x равен x ^(1/3). Кубический корень из A1: = A1 ^(1/3). Вы также можете использовать встроенную функцию рабочего листа POWER: = POWER(A1; 1/3). Чтобы вычислить корень куба в Excel, выполните следующие шаги: Формула корня куба = МОЩНОСТЬ (E3,1/3). Давайте проверим эту формулу. Кубический корень из 125.

Функция корня куба в Excel

Я взял 10 чисел от 2 до 16 и рассчитал все 4 комбинации. Я добавил столбец SQRT к этому SQRT(2) == POWER(2,1/2) == 2^(1/2) - эквивалентные функции Excel.

Я могу понять, что СИЛА обнаружит .... Но как он знает, что делать это без специальных возможностей миллионов возможностей?

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

Хорошо, но как он узнает, для каких входных чисел это сделать? По специальному корпусу миллионы возможностей? Или это будет более вероятно следовать некоторому правилу или набору правил?

Он использует полученный код для вычисления любого значения, возведенного в любой показатель степени.

Что делает POWER, чтобы, по-видимому, рассматривать 1/3 как истинную дробь? Excel отправляет операнды в CPU для выполнения математических операций в двоичном формате, и, разумеется, мы не говорим, что CPU выполняет математические вычисления с истинными дробями в базе 10?!?!?

База 2 и База 10 используются, чтобы помочь нам, людям. Процессор делает все как двоичный файл. Как любой показатель степени конвертируется в x86, хорошо определено.

Я не думаю, что у процессора есть возможность делать вычисления с дробной частью-10 1/3, но если я ошибаюсь, мне было бы очень интересно получить информацию об этом.

Калькулятор, который я использовал 20 лет назад, способен выполнять вычисления показателей с дробями. Я не смогу рассказать вам, что именно Excel делает именно для этих расчетов. Я могу сказать вам, что в конечном итоге это будет преобразовано в расчет сборки, что будет хорошо определенным поведением.

Ответ Рэмхаунда подчеркивает, что Excel преобразует оператор Power ("^") в функцию Power

На самом деле все наоборот. Степенная функция будет преобразована в стандартную экспоненту вычислений

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