Next in thread → Next in month →

Re: [office-formula] GCD and LCM non-integer arguments

From
Eike Rathke <>
Date
2007-01-22T20:06:24+00:00
ID
Thread
Re: [office-formula] GCD and LCM non-integer arguments
Hi Tomas,

On Friday, 2007-01-19 11:22:28 +0100, Tomas Mecir wrote:

> >> convert to INT first; non-INT GCD and LCM are interesting, but I doubt
> >> many actually WANT them.
> >Most certainly not.
> 
> Agreed here.
> 
> Is it even mathematically possible to compute this sanely ?

Not if taking the "result of GCD is largest integer" constraint into
account. However, if you reduce the problem to "find the greatest common
divisor" of fractions you get

GCD(fractions) = GCD(numerators) / LCM(denominators)

after having normalized and expanded the fractions to have a common
denominator of LCM(denominators). 
With the relationship |a*b|=GCD(a;b)*LCM(a;b) you then easily get

LCM(fractions) = |fractions_product| * LCM(denominators) / GCD(numerators)

Note that this relationship holds only for two numbers, it gets more
complicated with 3 numbers and up.

> I mean, is there some algorithm for this ? While this function is
> greatly useful when operating over integers, it doesn't make sense
> with real numbers, as ANY non-zero floating-point number divides any
> other floating-point number with a floating-point result ...

For rational numbers the GCD alone IMHO is not that interesting, but you
need the GCD to compute the LCM, which in fact solves problems like "how
many of size x do you need to fit with how many of size y without
remainder and what's the overall size".

Of course you get the same answer by properly expanding the fractions,
multiply them by the value of the common denominator, apply the usual
integer GCD and at the end divide the LCM and GCD again by the common
denominator.

  Eike

-- 
Automatic string conversions considered dangerous. They are the GOTO statements
of spreadsheets.  --Robert Weir on the OpenDocument formula subcommittee's list.
Next in thread → Next in month →