Subject:  Pascal's Triangle (fwd)
Date:     Fri, 19 Jun 1998 051902 -0500 (CDT)
From:     "Roy L. Beavers" <rbeavers@llion.org>
To:       emfguru@hotmail.com
--------------------------------------------------

Hi everybody:

In his message below, Ed Maxey is still in pursuit of a better
mathematical explanation for epidemiology studies which claim to
explain the "real world."

This is my last transmission for about one week...  I am on my way to
Minnesota....

Cheerio....

Roy Beavers (EMFguru)
rbeavers@llion.org..............http://www.feb.se/EMF-L/EMF-L.html
................................It is better to light a single candle ...
than to curse the darkness...............................................

---------- Forwarded message ----------
Date: Thu, 18 Jun 1998 21:26:57 -0500
From: Edward Maxey 
To: Christoph Reuss ,
    "Roy L. Beavers" 
Subject: Pascal's Triangle

Subject: 
        Re: C++ "Linet" study probabilities......
  Date: 
        Sun, 14 Jun 1998 05:10:00 +0200
  From: 
        creuss@bluewin.ch (Christoph Reuss)
    To: 
        "Roy L. Beavers" 



>>Edward Maxey wrote:
> >Several months ago results from a BASIC study showing that the
> >probability of 60 Hz EMFs being causal to childhood leukemia (the Linet
> >study) was 200,000  to one.  Recently questions have come up about the
> i>ntegrity of the random number function in MICROSOFT's BASIC.
> >Accordingly the program was written in C++ using the "rand" function.
> >This function "uses a multiplicative congruential random number generator"
> >with a period of  2^32.  It is available on UNIX and is defined in ANSI C.
>[snip]
>>      ***This run showed a 5,408 to one probability that EMFs are causal
>>         to childhood acute lymphoblastic leukemia.***

>Computation Theory tells us that no discrete algorithm run on a  finite
>state machine (without external true random sources) can provide _true_
>random numbers, but only pseudo-random numbers  (whether in BASIC or in
>C++).  And even if the numbers produced by the BASIC or C++ 'random'-
>generator were truly random, one instance (one 'run') of your program
>would only provide one possible outcome of the random experiment, and to
>calculate the true probability would require an infinite number of runs.
>Thus, these programs can only provide approximations of the true probability.
>
>That's why we prefer theoretical calculation in simple statistical problems
>such as your "heads and baskets" example:
>The probability of 267 or less heads appearing after a basket of 624 coins
>was overturned  is:
>
 >     P [H<=267]  =  1/2^624  *  SUM(k=0..267) ( 624! / (624-k)! / k! )
>                  =  0.0001795451715
>                 =  1 / 5569.629033
>
>Thus, the actual odds are 5,570 to one.  Your C++ program came pretty close
>with 5,408. :-)
>
>But the problem with epidemiological studies like the Linet study is  not
>to calculate probabilities according to known simple statistical models, but
>to find those complex statistical models that 'model' (fit) the even more
>complex reality best.  (And to model this reality ***correctly***, not
>misleadingly like the Linet study did !!).  In other words, the problem
>is not to find the correct mapping "model-->result" (that's easy), but
>to find the correct mapping "reality-->model".  No BASIC and no C++ program
>can do this for us either...

Hello Chris & Roy,

John Clark, now retired, taught computers for many years.  He wrote the 
following program to solve the above equation.  It is written in PASCAL.

Some of your followers and all computer buffs will find it interesting.

Warm regards,

Ed
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
       {Program to solve

       P [H<=267]  =  1/2^624 * SUM(K=0..267) (624! / (624-k)! / k! )
                       by
                   John Clark
                        @
         NORTHWEST ARKANSAS PC USER GROUP
              www.pcgroup.nwark.com
                       or
              jclark@comp.uark.com
       }
{$E+,N+}
PROGRAM PTRINGLE;
  USES CRT;
  VAR I,J:INTEGER;
      NUMS : ARRAY [0..624] OF EXTENDED;
      QUOT, RECIP, SUM,DENOMINATOR : EXTENDED;

   BEGIN          {main}
     CLRSCR;
                 {Initialize variables}
     SUM := 0.0; DENOMINATOR := 1.0;
     FOR I := 0 TO 624 DO NUMS[I] := 1.0;

                 {Build Pascal's triangle}
     FOR J:= 1 TO 623 DO BEGIN
          FOR I:= J  DOWNTO 1 DO NUMS[I] := NUMS[I-1]+NUMS[I]
          END;
                 {Get the SUM}
     FOR I := 0 TO 267 DO SUM := SUM + NUMS[I];
                 {Get the DEMONINATOR}
     FOR I := 1 TO 624 DO DENOMINATOR := DENOMINATOR * 2.0;
     QUOT := SUM/DENOMINATOR;
     RECIP := DENOMINATOR/SUM;
     WRITELN ('NUMERATOR    ', SUM :12:8);
     WRITELN ('DENOMINATOR  ', DENOMINATOR :12:8);
     WRITELN ('QUOTIENT    ', QUOT :12:8);
     WRITELN ('RECRIPROCAL   ', RECIP :12:8);
  
   END.

.



Archive provided courtesy of WaveGuide, http://www.wave-guide.org
Reprinted with permission of Roy Beavers, http://www.feb.se/EMF-L/EMF-L.html