Jump to content
Science Forums

A Truly Worthwhile Challenge.


Recommended Posts

Recently, [math]\pi(x)[/math] , which represents how many prime numbers there are less than or equal to a given number [math]x[/math], was determined for [math]x=10^{24}[/math].

 

In other words, thanks to a few ingenious "coders", we now know that if we consider all of the natural numbers from [math]1[/math] to [math]10^{24}[/math] , then exactly [math]18,435,599,767,349,200,876,866[/math] of them will be prime.

 

But how about [math]\varpi(x)[/math] , which represents how many regular figurative numbers there are less than or equal to a given number [math]x[/math]?

 

Well, believe it or not, [math]\varpi(x)[/math] has only been determined to a little over [math]x=10^{12}[/math], which is a "crying shame" because the distinction between regular figurative numbers and numbers that are not regular figurative numbers is probably even more basic and fundamental than the distinction between composite numbers and prime numbers.

 

After all, [math]\pi(x)[/math] can be closely approximated by the purely mathematical, non-empirical function [math]Li(x)[/math] , whereas [math]\varpi(x)[/math] can be much more closely approximated by the function [math]B(x)*(1-\frac{\alpha}{\mu-2*e})[/math] , which is empirical in that it involves the "physical constants" [math]\alpha[/math] and [math]\mu[/math], (otherwise known as the "fine structure constant", and the "proton to electron mass ratio" respectively.)

 

This approximation function or "counting function", which you can find here:

 

http://donblazys.com/on_polygonal_numbers_3.pdf

 

is also referenced in the On-line Encyclopedia of Integer Sequences, which you can find here:

 

http://www.research.att.com/~njas/sequences/?q=6%2C9%2C10%2C12%2C15%2C16%2C18%2C21%2C22%2C24%2C25%2C27&sort=0&fmt=0&language=english&go=Search

 

So, why is determining [math]\varpi(x)[/math] to say... [math]x=10^{20}[/math] a worthwhile challenge?

 

Well, if we knew the exact value of [math]\varpi(10^{20})[/math] , then we could easily solve for [math]\alpha[/math], and (in theory), determine the fine structure constant to a much greater degree of accuracy!

 

We would also have a much more accurate regular figurative number counting function, and it should go without saying that whoever does manage to break the present record of [math]\varpi(1,100,000,000,000)[/math] will be credited in the O.E.I.S. and probably Wikipedia as well (when that article on the sequence of regular figurative numbers is updated to include information on its counting function.)

 

Don.

Link to comment
Share on other sites

hey don, i guess i don't understand the difficulty in generating a larger set.

seems to me you could create a file that starts at 6 and increments by 3, then a file that starts at 10 and increments by 6, then a file that starts at 15 and increments by 10 and so on, then simply merge and sort them. even an inefficient coder such as myself could probably get to 100,000,000,000 in under two weeks.

also , felt i should point out that w(x) will be pretty close the the set of composite numbers, especially for large values.

Link to comment
Share on other sites

also , felt i should point out that w(x) will be pretty close the the set of composite numbers, especially for large values.

I believe Don is referring to this set of numbers, rather than the set of all figurate numbers (which includes 2-gonol #s). Note that there are a ton of composite non-figurative numbers, so you can't really assume w(x) will be too close to the composite number count.

Link to comment
Share on other sites

To: Phillip 1882,

 

Quoting Phillip 1882:

felt i should point out that w(x) will be pretty close the the set of composite numbers, especially for large values.

 

Appearances (or looks, as they are otherwise known) :rolleyes: can be decieving,

 

and while a quick glance at the tables in the article: http://donblazys.com...l_numbers_3.pdf

 

might "give the impression" that the number of regular figurative numbers under [math]x[/math] approaches

 

the number of composite numbers under [math]x[/math], the approximation function or "counting function" for

 

regular figurative numbers shows us otherwise and tells us differently. Here's how and why...

 

The counting function for regular figurative numbers can alternately be expressed as:

 

[math]\varpi(x)[/math] ~

 

[math]\left(x-\frac{x}{\alpha*\pi*e+e}-\frac{1}{2}*\sqrt{x-\frac{x}{\alpha*\pi*e+e}}\right)*\left(1-\frac{\alpha}{\mu-2*e}\right)=[/math]

 

[math].64036274309583*x-.40011254372008*\sqrt{x}[/math] ,

 

which tells us at a glance that the number of regular figurative numbers under [math]x[/math] will always be less than

 

[math].64036274309583*x[/math] , and thus will never even come close to the degree of domination exhibited by the number of

 

composite numbers under [math]x[/math], which exeeds [math].98*x[/math] at [math]x=10^{24}[/math] and approaches [math]1*x[/math] as [math]x[/math] tends towards infinity!

 

Quoting Phillip 1882:

i guess i don't understand the difficulty in generating a larger set
.

 

The present "world record" , which is [math]\varpi(1,100,000,000,000)[/math] was achieved using code written by that great Hypographer...

 

"Donk", who I respect and admire.

 

His code seems pretty simple and straightforward, and would probably suffice if programmed into a sufficiently fast and powerful machine.

 

One thing for sure, his code works (where everyone else's caused their computers to fail or "crash"),

 

so I'm quite certain that if he were to gain access to a "supercomputer", then [math]\varpi(10^{20})[/math] would be a "piece of cake" !

 

This forum has some pretty "heavy hitters", and perhaps if a "team" were to form, then that simple, yet important question:

 

"How many regular figurative numbers are there under a given number [math]x[/math]?"

 

would finally get answered up to some satisfying and respectable values of [math]x[/math]... just like [math]\pi(x)[/math] was!

 

Don.

Link to comment
Share on other sites

To: Kharakov,

 

Quoting Kharakov's answer to Phillip 1882:

You can't really assume w(x) will be too close to the composite number count.

 

Thanks again Kharakov !

 

You are absolutely right and may have put your finger on another possible reason for the confusion.

 

In fact, you seem to understand this function and it's implications quite well, so I'm really glad that you are on board!

 

It"s really good to know that there are some people out there who are as curious as I am.

 

Maybe you can convince the computer department at your university to take up this challenge!

 

After all, it's such a simple question... that may be so very important to both physics and mathematics...

 

How many regular figurative numbers are there under a given number [math]x[/math]?

 

Questions don't get any more simple than that!

 

Don.

Link to comment
Share on other sites

Hey Don, great work on the constant equation, if I hadn't mentioned it before.

 

I got a copy of Arthur Beiler's book, read through the section on figurative numbers and posted a few main ideas (that are perhaps rehashing of old ideas) over in Turtle's thread. It's really late now, so I am going to turn off the computer so I don't stay up all night doing math.... again. Let the brain do more tomorrow night...

Link to comment
Share on other sites

i wrote an algorithm and it checks out up to 10 billion, though its not very efficient. its a bit like using trail division to determine if a number is prime. fine for sufficiently small numbers, but wouldn't want to go too big. I'm curious as to donk's algorithm. could you link to it?

 

I invited him to post it here.

 

He's a busy fellow, but hopefully he will find the time.

 

By the way, 10 billion is actually quite good!

 

Don.

Link to comment
Share on other sites

i came up with an interesting hypothesis,

let rowinc =3 and increase by 1 and row =6 and increase by rowinc.

if rowinc is figurate, then we don't need to worry about that row adding any new numbers.

 

in short the figurate numbers in a prime sort of way eliminate themselves.

alright tried to verify this and it seems it's wrong. sorry.

Link to comment
Share on other sites

so here's my observations

 

001 3n +3

 

001

001

101 the new bit that 6n +10 adds

 

001

001101

001101

001101

101101 the new bits that 10n+15 adds

001111

 

001001101001101

001101101101001111

001101101101101111 the new bits that 28n+21 adds

001101101101001111

001101101101001111

101101101101001111

001101101101001111

001101101101001111

 

 

001001101001101

001101101101001111

001101101101101111

001101101101001111

001101101101001111

111101101101001111 the new bits 28n+36

001101101101001111

001101101101001111

 

001101101101001111

001101101101111111

001101101101001111

001101101101001111

101101101101001111

001101101101001111

001101101101001111

so, each new sequence doesn't add very much to the mix, but unfortunately there doesn't seem to be much order as to where the new bits are added.

Link to comment
Share on other sites

That makes sense.

 

After all, between the "upper bound":

 

[math]\varpi(x)[/math]~

 

[math]\left(x-\frac{x}{\alpha*\pi*e+e}-\frac{1}{2}*\sqrt{x-\frac{x}{\alpha*\pi*e+e}}\right)*\left(1-\frac{\alpha}{\mu-2*e}\right)+\alpha*x^{\frac{1}{3}}*ln(x) [/math]

 

and the "lower bound":

 

[math]\varpi(x)[/math]~

 

[math]\left(x-\frac{x}{\alpha*\pi*e+e}-\frac{1}{2}*\sqrt{x-\frac{x}{\alpha*\pi*e+e}}\right)*\left(1-\frac{\alpha}{\mu-2*e}\right)-\frac{1}{4}*\alpha*x^{\frac{1}{3}}*ln(x) [/math] ,

 

[math]\varpi(x)[/math] fluctuates as randomly and erratically as [math]\pi(x)[/math] does within its bounds.

 

All this may be somewhat frustrating, but giving up now is simply unthinkable, because we are, with [math]\varpi(1,100,000,000,000)[/math],

 

already at the point where the upper and lower bounds of [math]\alpha[/math], which are [math]137.035999033^{-1}[/math] and [math]137.035999135^{-1}[/math] respectively,

 

result in significantly different projections for [math]\varpi(x)[/math], which means that a much improved estimate of [math]\alpha[/math] is really not all that far away...

 

perhaps as close as [math]\varpi(10^{14})[/math].

 

And to add to all this exitement and anticipation, a little bird just told me that Donk will be posting his algorithm for [math]\varpi(x)[/math] in the near future!

 

Don.

Link to comment
Share on other sites

Don, over in the non-figurate thread I posted a new formula that makes checking a lot faster (you only check ranks rather than checking every polygon type as well):

 

F= n-gon rank r

 

from n-gon rank r = 3-gon rank r + (n-3) * 3-gon rank(r-1)

 

we get:

 

[n-gon rank r] / [3-gon rank (r-1)] = [3-gon rank r] / [3-gon rank (r-1)] + n-3

 

n>=3 so n-3 is the set of integers from 0 to beyonddddddd infinity (or the natural numbers, which it turns out, aren't boring)

 

Lets extend it a bit:

 

[n-gon rank r] / [3-gon rank (r-1)] - [3-gon rank r] / [3-gon rank (r-1)] = the set of natural numbers (0,1,2,3,4.....)

 

So, with F being our n-gon of rank r:

 

if F/ [3-gon rank (r-1)] - [3-gon rank r] / [3-gon rank (r-1)] is a natural number, F is a polygonal

 

A nice, short, easy testing algorithm without resorting to n. Should speed things up a bit (assuming it isn't already being used?).

 

Of course, this is better (will be implemented in code later):

r= rank (which is the 2-gon, or line "polygonal number")

 

if (F - r)/ 3gon (r-1) is an integer, then F is polygonal

 

 

So, I implemented it in maxima with a couple of short scripts, the first one you input f and the maximum rank you want to try (can quicken the code too, saw a couple spots off the bat here, fixed 'em):

 

***Note that the test function doesn't display whether a multiple of 3 is figurate: it returns nothing, since I eliminated that whole branch which is all figurate. Should re-write it not to confuse people I suppose, and will fix it tomorrow. For now, some food, then sleep.

test(f,rmax):=[testpass:false,fbgontest:true,
for i:3 thru rmax while fbgontest do [
if (i>4 and integerp(i/3)) then g:0 else [
isqrd:i^2,
lgon:(isqrd-i)/2, bgon:(isqrd+i)/2,
if (f>bgon) then [tst:(f-bgon)/lgon,
if integerp(tst) then 
[disp(sconcat(" ",f," is figurate")),
testpass:true]

] else fbgontest:false

]],

if (testpass=false) and (fbgontest=false) then 
disp(sconcat(" ",f," is NOT figurate")), 
if (testpass=false) and (fbgontest) then 
disp(sconcat(" ",f," is not detected as figurate in ",rmax," tries"))

]$

 

It displays:

test (14,55)$
14 is NOT figurate

OR (not high enough rank attempts to detect it is not figurate):

test (14,3)$
14 is not detected as figurate in 3 tries

 

I didn't write a counting function yet (it's completely elementary to do so, will do so later), but I did a quick testloop function which tells you f is figurate if it is divisible by 3, otherwise it calls the test function I posted above (need to write test function without display things for count, or a seperate count function altogether, now that we have the super algorithm, it'll be easy):

testloop (lowf,highf,rmax):=[
for f:lowf thru highf do
if integerp(f/3) then disp(sconcat(" ",f," is figurate")) else 
test(f,rmax)]$

 

and here is some of the output:

36 is figurate
37 is NOT figurate
38 is NOT figurate
39 is figurate
40 is figurate
41 is NOT figurate
42 is figurate
43 is NOT figurate
44 is NOT figurate
45 is figurate
46 is figurate
47 is NOT figurate
48 is figurate
49 is figurate
50 is NOT figurate
51 is figurate
52 is figurate
53 is NOT figurate
54 is figurate
55 is figurate
56 is NOT figurate
57 is figurate
58 is figurate
59 is NOT figurate
60 is figurate
61 is NOT figurate
62 is NOT figurate
63 is figurate

Link to comment
Share on other sites

hey Kharakov, could you check over my python version code?

def test(f,rmax):
  for i in range(3,rmax):
     if i>4 and i%3 ==0:
        pass
     else:
        j = i*i
        lowgon = (j-i)/2
        highgon = (j+i)/2
        if f > highgon:
           testval = (f-highgon)%lowgon
           if testval == 0:
              return 1
        else:
           return 0
  return 0

total = 0
row = 6
rowinc = 3
for i in range(6,10**6):
  if i%3 ==0: 
     total += 1
  else:
     if i>row:
        rowinc += 1
        row += rowinc
     total += test(i,rowinc)
print(total)

as far as can tell this is a horrible algorithm. it took me 15 minutes to check 10**6, i checked 10**8 in 30 minutes using a simple division algorithm.

max = 10**8
row = 28
column = 21
rowinc = 7
array = [6,3,10,6,15,10]
total = int((max-6)/3) +int((max-10)/6) +int((max-15)/10*2/3) +3
while row < max:
   check = True
   for i in range(0,len(array),2):
       if (row-array[i])%array[i+1] == 0 and column%array[i+1] == 0:
          check = False
          break
   if check:
       value = row
       print(row)
       while value<max:
           check = True
           for i in range(0,len(array),2):
               if (value-array[i])%array[i+1] == 0:
                  check = False
                  break
           if check:
               total += 1
           value += column
       array += [row,column]
   column = row
   rowinc += 1
   row += rowinc

print(total)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...