Numerology Check - A D Johnson Nov/Dec 2015

Numerology Check - A D Johnson ad.johnson@ntlworld.com 

Nov/Dec 2015
 

What does it do?

This Webpage runs Javascript to calculate the overall total of the individual digits that compose numbers between 10 and 1,000,000. i.e. it calculated the "number of numbers" whose individual digits add up to 1, 2, 3, 4 etc , in a single or multiple pass addition. It also shows/calculates the percentage probability of a given number in the range calculated so far adding up to 1, 2, 3 etc. The same calculation is performed for single pass digit calculations adding up to 11 and 13 (which are said to have occult numerological significance).

This then allows a more accurate judgement of the probability of certain number combinations adding up to certain totals.

Operation

You can start the calculation by clicking the button below - but it is done in stages to allow the page to update (it takes a while to go right through, so I made it pause every 10,000 numbers and you have to press "enter" to continue or ESC to abort).

Observed Results

One interesting note that comes out is that figure of 11.11% recurs regularly (probably of little surprise to any maths expert reading this). It is the case that ANY number - if its digits are added together continually has very nearly an 11.11% chance of adding up to 1, 2, 3 etc - it turns out that them totalling 9 has no special probability or likelihood.

The number of numbers adding up to 11 or 13 (in a single pass) does vary and the probability of this being the case reduces substantially the higher the number is. Up to 10,000 the probability of a digit sequence adding up to 11 is 3.48% and the probability of a digit sequence adding up to 13 is 4.8%.

Also, one small but obvious thing that has come out of this is how the numbers 9 and 11 could be seen to be encoded in our Base 10 number system - 9 x 1.11111 = 10 (and of course, then, 9 x 11.11111 = 100). So one could argue the this particular digit combination is encoded in the decimal system... just an observation....

Here is the code that achieves the above:

function check_numbers()

var i; var j; var total_digits;

var total_7s; var total_9s; var total_11s; var total_13s;

var totals=new Array(10); var single_pass_totals=new Array(10);

var num_passes; var check_num; var totals_11_count;var totals_13_count;

var max_no = 1000000;

var elem = document.getElementById("myBar");

var textbox=document.getElementById("Results");

       //Clear textbox.

       textbox.value = "";

   

       //Initialise running totals

    totals_11_count =totals_13_count = 0;

       for (i=1;i<10;i++)

    {

       single_pass_totals[i] = totals[i] = 0;

       }

   

       for(i=10;i<=max_no;i++)

       {

        num_passes = 1;

        check_num = i;

      //setTimeout(check_numbers, 0);

        do

        {

       

            total_digits = check_total(check_num);

            if (num_passes == 1){

                if (total_digits <= 9){

                    single_pass_totals[total_digits]++;

                }

                else

                { 

                    if (total_digits == 11)

                                  {

                                         totals_11_count++;

                    }   

                    else if (total_digits == 13)

                                  {

                        totals_13_count++;

                    } 

                }   

            }   

            num_passes = num_passes + 1;

            check_num = total_digits

        }

              while (total_digits >= 10);

        totals[total_digits]++;

             

              //Print things out every 10000 counts

        if (i%10000 == 0)

        {

               //Update progress gage.

               elem.style.width = (100*i/max_no) + '%'; 

           

                     //Update results in textbox.

                     textbox.value += '\nUp to ' + i.toString() + '\n=============\n';

                     for(j=1;j<=9;j++)

                     {

              textbox.value += 'Number of ' + j + '\'s (single pass)   = ' + totals[j] + ' - ' + (100 * single_pass_totals[j] / i).toFixed(2)  + '%\n';

              textbox.value += 'Number of ' + j + '\'s (multple pass)  = ' + totals[j] + ' - ' + (100 * totals[j] / i).toFixed(2)  + '%\n';

            }

           

                     textbox.value += '\nNumber of 11\'s                 = ' + totals_11_count + ' - ' + (100 * totals_11_count / i).toFixed(2) + '%\n';

            textbox.value += 'Number of 13\'s                 = ' + totals_13_count + ' - ' + (100 * totals_13_count / i).toFixed(2) + '%\n';

            textbox.scrollTop = textbox.scrollHeight;

           

                     //Pause so that stuff can be updated.

            resp = prompt ("Press ESC to Quit, ENTER to Continue!");

            if (resp== null)

            {

              break;

            }

        }   

    }

       //Finish

    alert ("All done - scroll text box back to see results!");

}

 

//Add up the digits of a number and return the total

function check_total(num_to_check )

{

kcheck_total='';

var total_digits2; var j;

var digits_string;

    digits_string = num_to_check.toString();

    total_digits2 = 0;

    for(j=0;j<digits_string.length;j++)

       {

       var dig=digits_string.substr(j, 1);

        total_digits2 = total_digits2 + eval(dig);

    }

    kcheck_total = total_digits2;

    return kcheck_total;

}