[R] Spreadsheet math problem (exponentiation)
Berend Hasselman
bhh at xs4all.nl
Fri Sep 18 17:05:45 CEST 2015
> On 18 Sep 2015, at 16:31, John McKown <john.archie.mckown at gmail.com> wrote:
>
> On Fri, Sep 18, 2015 at 8:39 AM, John Kane <jrkrideau at inbox.com> wrote:
>
>> It appears that at least three major spreadsheets, Excel, Apache
>> OpenOffice Cal and gnumeric have a problem with the correct order of
>> operations when dealing with exponents. The gnumeric result is very strange.
>>
>> This problem has probably been reported before but just in case it has
>> not, it would appear to be one more serious problem with spreadsheets. It
>> might be useful in warning people away from using a spreadsheet for serious
>> analysis.
>>
>> Excel
>>
>> -2^2 = 4
>>
>> 2^2^3 = 64
>>
>> Apache OpenOffice
>>
>> -2^2 = 4
>>
>> 2^2^3 = 64
>>
>
> My opinion: One correct, one error! R agrees with me on this:
>> 2^2
> [1] 4
>> 2^2^3
> [1] 256
>> 2^(2^3)
> [1] 256
>> -2^2
> [1] -4
>> (-2)^2
> [1] 4
>>
>
>
>
>
>>
>> gnumeric # note one correct, one error!
>>
>
> My opinion: two correct!
>
>
I don’t agree.
All are wrong according to standard math rules except Gnumeric with the exponentiation.
R is correct.
See https://en.wikipedia.org/wiki/Order_of_operations
Lesson: always use parentheses to make absolutely clear what you mean.
Berend
>
>> -2^2 = 4
>>
>> 2^2^3 = 256
>>
>> John Kane
>> Kingston ON Canada
>>
>>
> Seems to be a bit off-topic. Unless your point to is to use R for
> important work instead of some spreadsheet. A point with which I completely
> agree!
>
>
> MS-Excel, and Apache OpenOffice, appear to implement the above as
> (2^2)^3==64. Whereas gnumeric implements appears to implement this as:
> 2^(2^3)==256. Which is "correct"? Depends on whom you ask.
>
> ref: https://en.wikipedia.org/wiki/Order_of_operations
> <quote>
>
> If exponentiation is indicated by stacked symbols, the usual rule is to
> work from the top down, thus:
> [image: a^{b^c} = a^{(b^c)}],
>
> which typically is not equal to [image: (a^b)^c]. However, some computer
> systems may resolve the ambiguous expression differently. For example,
> Microsoft
> Office Excel <https://en.wikipedia.org/wiki/Microsoft_Office_Excel>
> evaluates *a*^*b*^*c* as (*a*^*b*)^*c*, which is opposite of normally
> accepted convention of top-down order of execution for exponentiation. If
> a=4, p=3, and q=2, [image: a^{p^q}] is evaluated to 4096 in Microsoft Excel
> 2013, the same as [image: (a^p)^q]. The expression [image: a^{(p^q)}], on
> the other hand, results in 262144 using the same program.
> </quote>
>
> Gnumeric abides by the above definition. FWIW. BTW - MS-Excel also has
> 1900 as a friggin' leap year (due to Lotus 1-2-3 apparently), so I don't
> consider MS-Excel (or anything else from MS for that matter) to be a
> definitive source of correctness. Personal opinion. FSF associate member.
> Penguinista.
>
> --
>
> Schrodinger's backup: The condition of any backup is unknown until a
> restore is attempted.
>
> Yoda of Borg, we are. Futile, resistance is, yes. Assimilated, you will be.
>
> He's about as useful as a wax frying pan.
>
> 10 to the 12th power microphones = 1 Megaphone
>
> Maranatha! <><
> John McKown
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list