|
|
> # how_many.mws How many, how big?
Introduction
. Let
This entirely elementary worksheet is solely concerned with two questions :
Question #1
.
How many
digits does
Question #2
.
How big
(measured in
Light Years
!) a square board would be needed on which to write
Question #3
.
How long
(measured in
years
) would it take to write out
Question #1:
how many
?
Let
In fact - since
Taking logarithms to the base 10, we have:
and so:
where
floor(2^n*log[10](2)) + 1
Let's look at some calculations : > F := n -> 2^(2^n) + 1; # defining 'F' as a function
> seq(F(n), n=0..5); # the first 6 Fermat numbers
> length(F(19)); # F(19) is big:
> length(F(20)); # F(20)
> length(F(21)); # as one would expect:
Error, (in F) object too large >
And that's
only
Question . How can one do this?
Answer
.
Simply by
working with an approximate decimal value for
>
say1 := proc(n) > Some comparative examples ( Note : I have placed the comment sign '#' immediately before the command to prevent output, and to save space in this worksheet. All you have to do if you are interested is:
first delete the '#' then go to File and Save as a precaution
and then execute the command > # length(2^(2^19) + 1); > say1(19);
The ACTUAL NUMBER ('m') of base > > length(2^(2^21) + 1);
Error, object too large > say1(21);
The ACTUAL NUMBER ('m') of base > > say1(200);
The ACTUAL NUMBER ('m') of base > One should bear in mind that 'ACTUAL VALUE' should be understood to be 'APPROXIMATE VALUE' for large values of n , because of rounding
errors involving the 10-place approximate value Maple is using for
But the order of magnitude is certainly correct .
Now let's look at
first delete the '#' then go to File and Save as a precaution
and then execute the command ] > # say1(382477); > I think we would all agree that is a bit too much!!
That can easily be dealt with by making a simple alteration to the procedure say1:
>
say2 := proc(n) local P1, P2, M; > The rationale behind the definitions of those local variables should be clear [but would require some explanation for some students]. [I could omit those local variables altogether, but I have used them as a guide to how the ' M ' is arrived at.]
Some examples . > say2(12);
A good APPROXIMATE value of > Remove the comment sign, and execute, to compute actual value: > # F(12); > length(F(12));
> 10^3.090969720;
> > say2(1000);
A good APPROXIMATE value of > > say2(382447); # the new record composite Fermat number
A good APPROXIMATE value of >
Thus the Fermat number
Question #2: how big a board?
Let's think about writing
> F(7);
> length(F(7));
>
We could write F(7) into the closest fit square by:
340282
Okay, the individual digits are not occuping squares.
Now define the variables , and record their approximate relationship :
Let
Let the digits (occuping equal height and width) be written at
Approximate
connection:
Now to compute the side length
First, though, I wish to note this: I could work with the following procedure - which is formed in the obvious way from the earlier ones:
>
# inches := proc(n, N) > but instead I am going to work with this slight alteration of it:
>
inches := proc(n, N) > in which I have omitted :
the ' +1 ' (that's of no real consequence) the use of ' floor ' (that is of consequence because there are computational time problems when large values of ' n ' are involved) > Examples (Note. Remove the comment sign before the following command, and then execute). > # length(F(19)); > sqrt(157827.0);
>
Thus to write
> > inches(19, 4);
The approximate side length > > inches(70, 4);
The approximate side length > And, of course, if we double the number of digits per inch then it halves the length of the square: > inches(70, 8);
The approximate side length > inches(70, 16);
The approximate side length > Those squares are BIG (which comes as no surprise, though it causes a problem to ones brain to visualise!)
Let's convert to miles [I grew up with inches, feet, yards, ... , miles, and so apologies to anyone used to centimetres etc. Make your own conversions]. Recall there are:
12 inches in a foot 3 feet in a yard
1760 yards in a mile
>
miles := proc(n, N) > > miles(70, 16);
The approximate side length > > miles(700, 32);
The approximate side length > And there - as you see - Maple has moved to the level of exponential notation, and this is the place to start converting to Light Years .
First, though , I want to make an optical change to the ' lprint ' line in the miles proc: instead of saying "the number of miles is X ... ", I want to alter it to: "the number of miles is 10 to the power of ... ",
>
miles2 := proc(n, N) > > miles2(70, 16);
The approximate side length > miles2(700, 16);
The approximate side length >
Now, what I really want is to let
> miles2(382447, 4);
The approximate side length > Three final things to do :
Convert to
light years
Greatly increase
the value of
Examine some
down-to-earth distances First, recall the definition of a ' light year ':
Definition . A light year is the distance traversed by light in one year.
Working assumption s.
The speed of light is 186,000 miles per second
The year has 365 days
Converting miles to light years : > light_year := 186000*60*60*24*356; # miles
> I want to express that as an approximate power of 10: > log[10](5721062400000.0);
>
And so a
light year is
>
LIGHT_YEARS := proc(n, N) >
And thus - writing at 4 digits per inch - the Fermat number
> LIGHT_YEARS(382447, 4);
The approximate length of > That is a very great distance (with which I cannot mentally come to terms), and it is linguistically meaningless to merely call it ' astronomically large .' Just think for a moment of some of the great astronomical distances, from say the nearest star (apart from our own sun, which is a mere 9 light minutes away from us), through some nearby nebula (Andromeda at 2,000,000 light years), and so on ... .
And suppose we went to
atomic levels of writing
, let's say we set:
> LIGHT_YEARS(382477, 10^30);
The approximate length of >
That
relatively small reduction
in the length should
not
come as a surprise. Finally, let's consider some examples nearer to home, and fix
I grew up in a small town (Bailieboro), about 60 miles from here: > miles(49, 4);
The approximate side length > The moon is about 250,000 miles away: > miles(74, 4);
The approximate side length > The sun is about 92,000,000 miles away: > miles(90, 4);
The approximate side length > |
Contact details After August 31st 2007 please use the following Gmail address: jbcosgrave at gmail.com This page was last updated 18 February 2005 15:07:40 -0000 |