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;
}