Re: Re: bimodal ditribution form counting signs of Pi digits differences

• To: mathgroup at smc.vnet.net
• Subject: [mg51779] Re: [mg51741] Re: [mg51684] bimodal ditribution form counting signs of Pi digits differences
• From: Andrzej Kozlowski <andrzej at akikoz.net>
• Date: Mon, 1 Nov 2004 02:54:05 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```On 1 Nov 2004, at 00:04, Roger Bagula wrote:
>
> Just looking at the distribution of digits {0,1,3,4,5} as -1
> amd {5,6,7,8,9} as 1.

Presumably you mean {0,1,2,3,4} and {5,6,7,8,9}?

> As cumlative sum function of the same sort as I used with the sign.
> It should in the case of equal probability of the digits tend to
> a sum of zero. Variaiations as away from zero would probably be
> function of Sqrt[n] plus and minus as a friend pointed out for the
> other distribution.
> Still the
> Random [Integer,{0,9}]
> would be the logical null hypothesis distribution ( using a random seed
> of somesort.
> The idea is to try to make a measure for cumlative digit randomness.

If I understand you corrrectly this is a very standard test and will
not yield anything better than the tests that have alrady been
extensively performed in both cases. You can find a number of
considerably subtler tests in Chapter 3, Volume II of Knuth's "The Art
of Computer Programming". Since then many more powerful tests have been
designed, particulalry by George Marsaglia. They have all been used on
the Wolfram CA generator and on the digits of Pi.

> Since it is an interesting question,
> comparing two pseudorandom methods would seem
> to tell us more about both of them?
> It is a thought experient that came up with some strange
> results.
> I just noticed that they didn't look right.

The problem is with the meaning of "look right". What size of samples
have you used ? What sort of statistical analysis did you subject your
results to? Most of all, have you looked at any serious analysis of
these algorithms? For example, the statistical properties of the
Wolfram CA algorithm (which is what Random[Integer, {0,9}] is) were
already analysed in Wolfram's original paper " Random Sequence
Generation by Cellular Automata", in Advances in Applied Mathematics
1986, reprinted in Wolfram's collected papers "Cellular Automata and
Complexity", 1994. It's only when you examine such sources and compare
that with your results and still find that they "don't look right" this
matter might become interesting. At the moment it looks exaclty like
Bobby Treat described it: a waste of time.

Andrzej Kozlowski

On 1 Nov 2004, at 00:04, Roger Bagula wrote:

>
> Dear Andrzej Kozlowski,
> I read an article that said the digits of Pi were very random.
> I had in the past sort of half heartedly counted distribution of
> individual digits
> with no reall telling effect.
> This Sign difference method seemed a better way to test the randomness,
> I think I've hit on a better way than that:
> Just looking at the distribution of digits {0,1,3,4,5} as -1
> amd {5,6,7,8,9} as 1.
> As cumlative sum function of the same sort as I used with the sign.
> It should in the case of equal probability of the digits tend to
> a sum of zero. Variaiations as away from zero would probably be
> function of Sqrt[n] plus and minus as a friend pointed out for the
> other distribution.
> Still the
> Random [Integer,{0,9}]
> would be the logical null hypothesis distribution ( using a random seed
> of somesort.
> The idea is to try to make a measure for cumlative digit randomness.
> Since it is an interesting question,
> comparing two pseudorandom methods would seem
> to tell us more about both of them?
> It is a thought experient that came up with some strange
> results.
> I just noticed that they didn't look right.
> Andrzej Kozlowski wrote:
>
>> *This message was transferred with a trial version of CommuniGate(tm)
>> Pro*
>> Actually, Random[Integer,{0,9}] unlike Random[] already uses the
>> Wolfram CA algorithm, so it will not benefit form the
>> RandomReplacement  package.
>> On the other hand the Wolfram CA algorithm has undergone very
>> demanding  testing for randomness (or rather, pseudo-randomness,
>> which is the case  of computers is essentially the same thing) and as
>> far as I know has  passed them all with flying colours. Therefore I
>> find it hard to  believe that someone would find something wrong with
>> this famous  generator using such simple methods; it's rather like
>> finding a trivial  counterexample to a long established theorem.
>> Still such things do  happen from time to time so if it is the case
>> this time ... Roger  Bagula is going to be famous ;-)
>>
>> Of course it is well known that Pi is an extremely good
>> "pseudo-random"  number generator, although as far as I know nobody
>> can prove anything  about it.  There has been a long standing
>> conjecture that the digits of  Pi give an inifinity-distributed
>> 10-ary sequence though I don't think  anybody ever managed to make
>> any progress on this matter. However, my  knowledge of these these is
>> very dated; in fact it goes back to volume  2 of Knuth's ACP, but I
>> assume that if somebody may to prove something  spectacular in this
>> area I would have heard about it. The same is true  of course about
>> discovering non-randomness in Wolfram's CA algorithm,  though I would
>> expect this to be a considerably easier task than  proving anything
>> at all about the randomness of the digits of Pi.
>>
>> Andrzej Kozlowski
>> Chiba, Japan
>> http://www.akikoz.net/~andrzej/
>> http://www.mimuw.edu.pl/~akoz/
>>
>>
>>
>> On 31 Oct 2004, at 15:17, DrBob wrote:
>>
>>>
>>> Like the digits of Pi, Random[Integer,{0,9}] is not random--it's
>>> pseudo-random at best. Google for Andrzej Kozlowski's
>>>  if it helps your situation.
>>>
>>> Meanwhile, here's an improvement on Don Taylor's method:
>>>
>>> digits = 100000;
>>> h = Rest@# - Most@# &;
>>> Timing[rdpi = RealDigits[Pi, 10, digits][[1]];
>>>    frdpi = Drop[rdpi, -1];
>>>    lrdpi = Drop[rdpi, 1];
>>>    s = Drop[FoldList[Plus, 0, Sign[Thread[Subtract[lrdpi, frdpi]]]],
>>>  1];
>>>    taylor = Table[{n, s[[n + 1]]}, {n, 0, digits - 2}];]
>>> Timing[brt4 = Transpose@{
>>>      Range[0, digits - 2], Rest@FoldList[Plus, 0,
>>>          Sign@h@First@RealDigits[Pi, 10, digits]]};]
>>> brt4 == taylor
>>>
>>> {0.469 Second,Null}
>>>
>>> {0.171 Second,Null}
>>>
>>> True
>>>
>>> On Sat, 30 Oct 2004 08:35:06 -0700, Roger Bagula
>>>
>>>> Dear Dr. Bob,
>>>> Don Taylor already improved the timoing with this:
>>>> Timing[rdpi=RealDigits[Pi,10,Digits][[1]];
>>>>   frdpi=Drop[rdpi,-1];
>>>>   lrdpi=Drop[rdpi,1];
>>>>   Table[{n,s[[n+1]]},{n,0,Digits-2}]]
>>>>   rdpi=RealDigits[Pi,10,Digits][[1]];frdpi=Drop[rdpi,-1];
>>>> lrdpi=Drop[rdpi,1];
>>>> Drop[FoldList[Plus,{
>>>>
>>>> The problem is when I use
>>>> Random[Integer,{0,9}]
>>>> as a simulation of the Pi digits array,
>>>> I get a "worse" distribution ... less like what I should get
>>>> theoretically
>>>> for a truly random distribution of digits.
>>>> The Pi digits are more like what probability predicts.
>>>> That's what I asked you help with.
>>>> You definitely know more about statitical distriubutions in some
>>>> ways
>>>> than I do.
>>>> Don and I think it may be that the ca Random of Mathematica isn't
>>>> working right
>>>> in this case.
>>>> Do tried simulationg the Sign[] difference as
>>>> Random[Integer,{-1,1}]
>>>> but that cuts out the bimodal/ trimodal  {a,b} probability.
>>>>
>>>> But thanks for replying anyway.
>>>> You are an extremely good Mathematica programmer.
>>>>
>>>> DrBob wrote:
>>>>
>>>>> Below I've provided a version of your program using Dynamic
>>>>> Programming, plus another method of my own. Your code recalculates
>>>>>  the
>>>>> same summands repeatedly. The first difference
>>>>> Floor@Mod[10Pi,10]-Floor@Mod[Pi,10] is calculated 2000 times to get
>>>>> {f[1],..., f[2000]. Dynamic programming eliminates the
>>>>> duplications.
>>>>>
>>>>> In addition, there's a tremendous amount of waste involved because,
>>>>> for instance, calculating the 2000th term requires computing Pi to
>>>>> 2000 digits (or so), but getting the 1999th term required computing
>>>>> only one fewer digits. The two computations are completely
>>>>> separate,
>>>>> each of them starting from scratch. My method eliminates THAT
>>>>> wasted
>>>>> effort. (It assumes you know in advance how far you'll go, of
>>>>> course.)
>>>>>
>>>>> Here's a timing directly after Quit. Calculating again will give
>>>>> faster times (because Mathematica caches certain results, I
>>>>> suppose).
>>>>>
>>>>> ClearAll[f, g]
>>>>> n = 5000;
>>>>> Timing[mine =
>>>>>      Rest@FoldList[Plus, 0, Sign /@ ListCorrelate[{-1,
>>>>>         1}, First@RealDigits[Pi, 10, n + 2]]];]
>>>>> Timing[yours = Block[{\$MaxExtraPrecision = n},
>>>>>         g[i_] := Sign[Floor@Mod[10^(i + 1)*Pi, 10] -
>>>>> Floor@Mod[10^i*Pi, 10]];
>>>>>         f[0] = g[0];
>>>>>         f[m_] := f[m] = f[m - 1] + g@m;
>>>>>         f /@ Range[0, n]
>>>>>         ];]
>>>>> mine == yours
>>>>>
>>>>> {3.797 Second,Null}
>>>>>
>>>>> {0.016 Second,Null}
>>>>>
>>>>> True
>>>>>
>>>>> The original code's Table statement took 10.4 seconds for 500
>>>>> terms,
>>>>> 44 seconds for 1000, 103.6 seconds for 1500, and 195.2 seconds for
>>>>> 2000. I didn't take it to 5000, as I did in the timing above.
>>>>>
>>>>> It's all a waste of time, but at least you can waste a lot LESS
>>>>> time.
>>>>>
>>>>> Bobby
>>>>>
>>>>> On Fri, 29 Oct 2004 03:39:06 -0400 (EDT), Roger Bagula
>>>>>
>>>>>> This program  is real slow on my machine.
>>>>>> Show a lean toward positive differences that is "slight" at 2000
>>>>>> digits.
>>>>>>
>>>>>> Digits=2000
>>>>>> \$MaxExtraPrecision = Digits
>>>>>> (* Sum of the sign of the differences between the first 2000
>>>>>> digits
>>>>>> of Pi*)
>>>>>> f[m_]=Sum[Sign[Floor[Mod[10^(n+1)*Pi,10]]-
>>>>>> Floor[Mod[10^n*Pi,10]]],{n,0,m}]
>>>>>> a=Table[{n,f[n]},{n,0,Digits-1}];
>>>>>> ListPlot[a,PlotJoined->True]
>>>>>> b=Table[a[[n]][[2]],{n,1,Dimensions[a][[1]]}];
>>>>>> (* distribution of the noise that results*)
>>>>>> c=Table[Count[b,m],{m,-12,12}]
>>>>>> ListPlot[c,PlotJoined->True]
>>>>>>
>>>>>> Respectfully, Roger L. Bagula
>>>>>> 92040-2905,tel:
>>>>>> 619-5610814 :
>>>>>> alternative email: rlbtftn at netscape.net
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> DrBob at bigfoot.com
>>> www.eclecticdreams.net
>>>
>>>
>>
>>
>
> --
> Respectfully, Roger L. Bagula
> 619-5610814 :
> alternative email: rlbtftn at netscape.net