[Sussex] Challenge
Steve Dobson
SDobson at manh.com
Wed Apr 30 11:15:04 UTC 2003
Geoff
On 30 April 2003 at 10:53 Geoff Teale wrote:
> Well, I don't have bc to hand to check your working, but in
> any case, no you don't [win]. Any exisiting tool that does
> result in the correct answer is using a "fudge factor" in
> software for common cases - this is not uncommon for luser
> tools, VB and Excel on Windows behave similarly. You have
> yet to show a binary representation of the decimal fraction
> 0.1, your underlying represntation was in accordance to
> IEEE 754, and thus only an aproximation expressed to 53bits.
The output (in bc) of 1.0 / 1010.0 is:
.0001100110011001100110011001100110011001100110011001100110011001100\
11001100110011001100110011001100110011001100110011001100110011001100\
11001100110011001100110011001100110011001100110011001100110011001100\
11001100110011001100110011001100110011001100110011001100110011001100\
11001100110011001100110011
This look like a little more than 53 bits to me! (you did say you
didn't have bc to hand - install Cygwin as you exit statement to HR
on your PC).
But given that:
0010.0 * .0001100110011001100...0011 = .0011001100110011001...0110
and
1000.0 * .0001100110011001100...0011 = .1100110011001100110...1001
Then I agree there must be a fiddle factor in there somewhere :-)
Go 2:
0001.0 = 1.0 * 10^0
1010.0 = 1.0 * 10^1010
0000.1 = 1.0 * 10^-1010
Therefore when multiplying number one just has to add the exponents
together:
0000.1 * 1010.0 = 1.0 * 1010^(-1010 + 1010)
= 1.0 * 1010^(0)
= 0001.0
How' that! Of course the mantissa is always 1.0 and the exponent
is an integer itself so this only works for a limited number of
values (but no fiddle factor).
> > Mine's a pint of ale (Horsham Best Bitter is quite drinkable).
>
> Now, now, don't jump the gun ;) Given that this challenge is
> not possible in the bounds of Mathematics as we now understand
> it, I am looking for the best _arguement_, please try again.
Mine's still a pint of Horsham Best
Steve
More information about the Sussex
mailing list