Graphing the Fundamental Theorem of Arithmetic

THEORY

The most typical visualization of integers is linear (number line). In this case, the values to the right are greater than those to the left by an amount proportional to their separating distance. However, what if other perspectives on the relationships between integers could be represented geometrically?

Consider the fundamental theorem of arithmetic which states that every integer has a unique prime factorization. To me, this is essentially like atomic theory in science, where it is believed that all molecules can be broken down into a unique set of elements. An integer's prime factorization gives a complete characterization of its divisors and perhaps offers a more interesting way of examining its relationships with other integers.

Theoretically, one could "stack" integer representations atop one another based upon prime factors. For example, all numbers with 2 as a prime factor would be "stacked" on top of two's representation.

In my attempts to create such a numeric "topology", I have come across a somewhat trivial method for understanding and producing a limited version of this graph.

 

METHOD

As a quick convention, whenever I say "number" I mean "natural number" as in {1,2,3...}

 

EXECUTION

Here is the graph I described up to [5]...
The bottom half is [2], the left third is [3], and the middle fifth is [5].



So, we go into a scenario with two extreme cases:
1. An area for each number
2. An area for each prime

My guess is that the solution is somewhere in between.

I have considered many solutions for this problem. So far I have only created the graph up to [13]. However, I have developed some helpful software which can generate graphs like the one above from instruction code which allows areas to be sized/positioned relative to any another.

Here is the most current version of the graph (gives new meaning to plaid):


I expect some kind of pattern in the generation. The trick is finding it.

 

SOFTWARE

Java JAR File: finit.jar

Sample Instruction Files: these can be easily loaded into the finit.jar program to generate a graph.

 

SYNTAX

Basically, the goal of this program is to create areas and assign values to their properties.

The program accepts line-by-line instructions to accomplish this goal. So, put only one instruction per line.

You can use basic mathematical operations such as */+- or the assignment operator =.

To create areas, simply type [A] where A is the name of the area. I usually use numbers to represent each of the primes' areas (i.e. [2], [3], [5], [7], ...).

To reference properties of an area, use a comma within the brackets followed by the property identifier (I'll use i for the example) like this: [A,i].

To assign values to a property, reference the area's property and combine it with the assignment operator like this: [A,i=1]. This example sets the "i" property of the area called "A" to the value 1. As stated before, you can also assign values to properties which are relative to other properties of areas. For example, if you have areas [A] and [B], each with a property i, and you want to assign [B,i] to half of [A,i], simply write: [B,i=[A,i]/2]. Any of the previously stated mathematical operators are allowed here.

To assign multiple properties in one instruction, you can daisy-chain the property references like this: [A,i=1,j=2,k=3]. This example calls area "A" and assigns its property called "i" to the value 1, its property "j" to the value 2, and it's property "k" to 3.

Please note that the code does not account well for error reporting. You will be largely repsonsible for creating only well-formed instructions.

 

PROPERTIES

Only certain property identifiers exist for any given area.

SIZE: Note that all of the values are in pixels.

LOCATION: Note that the 0,0 coordinate is in the top left hand corner of the canvas.

OTHER:

 

A NOTE ABOUT GROUPS: The group feature was an after-thought. I did not design this program to account for this area-grouping. After realizing that I may have to create multiple, disparate "areas" to represent certain prime numbers, I decieded to add this group thing. It basically just affects the way the graph is colored, though the support for this feature is minimal.

 

COMMANDS

To put the theory into action, there are several commands to help you out. All commands begin with a backslash.