Saturday, May 28, 2011

A suggestion for the Short Vs. Long Scale Dilemma

If you were born in America you undoubtedly were taught that a billion is 10^9, a trillion is 10^12, etc. However in certain parts of the world a billion is 10^12, and a trillion is 10^18. Because of this there is some confusion with these numbers when dealing with international and historical documents. The time and place must be considered to know the correct context in which these terms are used. The system where a billion is 10^9 and a trillion 10^12 is now conventionally referred to as the "short scale", and the system where a billion is 10^12 and a trillion is 10^18 is known as the "long scale".

Why are there two systems for the same numbers? Well when these terms were first coined they were intended to have their long scale meanings. Basically a "billion" was first defined as a "million million", and a trillion as a "million billion". Essentially the latin prefix was meant to specify what power of a million the number represented. The problem is that the gap between a million and a million million is rather large. Perhaps for this reason the alternative short scale came about. Rather than define a billion as a million million, it would be more useful to have a term for a thousand million. A trillion could then be a thousand billion. This usage began with french scientists in the 1700s and then spread across Europe and competed with the long scale. Meanwhile one more refinement was made to long scale. To describe the "inbetween" terms people started using milliard for a thousand million (10^9), and a billiard for a thousand billion (10^15). This provides a way to name every power of a thousand in the long scale.

So what's the dilemma? Now we have two systems which have their adherents and neither side is willing to adopt a universal standard, hence the confusion. There is certainly no confusion in regards to terms such as a milliard. But every -illion technically has a different meaning in each system, with the sole exception of a million, which everyone agrees upon. Russ Rowlett has suggested that we should abandon both systems and adapt a greek based system instead. While such an alternative is logical, people tend to cling to what they know even if it is less than ideal. Certainly this is the case with the short scale. Although I concede it is not very logical, none the less I grew up learning it and so I'm too acustomed to it to "switch over". Although the short scale has been gaining adherents over time we can be sure that those who were raised using the long scale also do not wish to "switch over". So with either side refusing to change how can we resolve the confusion? Do we just have to know the time and place of every single document to avoid confusion? Doesn't that seem like an aweful lot of work to know the meaning of a number?

I have a suggestion to help resolve this dilemma. The key problem is NOT that we have two systems. We can have as many different ways to label numbers as we like. They key is not to have a single term for every number, but to have a single number for every term. This goes back to the identity principle. In mathematics it is fine to use multiple symbols to mean the same thing. For example we can use both "C" and "D" to mean cat. However we can not use the same symbol to mean different things. If "C" means both cat and dog, then every time I use it without specifying which I mean the reader is left to either guess or figure it out through context. So the real problem is the words "billion" and "trillion" are being used to name two different numbers. My suggestion is to create a new term to express a "million million" but that still remains relatively similar to the original term. Since the long scale already uses the alternative -illiard, I came up with a similar alternative for the even powers of a thousand, a "-illiade". This can be pronounced in different ways depending on preference, I suggest "ill-LEE-Ahd", or perhaps "ill-LEE-Aid". The long scale then becomes:

Milliade = 10^6
Milliard = 10^9
Billiade = 10^12
Billiard = 10^15
Trilliade = 10^18
Trilliard = 10^21
etc.

The pronoucation of -illiard and -illiade is significant enough to distinguish them. The idea of using an alternative ending for the even terms in the long scale is certainly one way to resolve the dilemma.

This might seem a bit obtuse, but its no more obtuse than the introduction of the terms Mebi-,Gebi-, and Tebi- for dealing with units of computer storage to avoid confusion with the SI prefixes mega-, giga-, and tera-.

Admittedly, while this move would allow everyone to remain in the scale of their choice and remove any ambiguity in terms, the long scale adherents could certainly ask why they have to be the accomedating ones. Why should they have to change their system? That is certainly a valid question, and one could certainly make the case that the long scale deserves precedence because it came first; the other camp could of coarse site the prevalence of the short scale. Truth is I designed these designations to help myself distinguish the scales. Since the short scale was already entrenched in my mind I naturally felt new terms were needed for the long scale.

Clearly I have a bias. In the interest of fairness however, lets consider the possibility that the short scale should be altered instead to distinguish it from the long scale. Going back to the idea that a billion is a thousand million, we could use the term billiate instead, the "t" standing for thousand. The short scale would then become:

milliate = 10^6
billiate = 10^9
trilliate = 10^12
etc.

So now either side can opt to alter their nomenclature, just slightly, to distinguish it from the other. But which side should budge? In fairness perhaps the terms billion and trillion should be abandoned all together, each side comprimising by adopting their respective alterations, or some other alternative naming scheme. Most likely people will not like the new terms, no matter what was used. In the computer industry there has certainly been some resistance to using mebi-,gebi-, and tebi-. But when absolute clarity is needed, especially when consumers demand it, they have gradually adopted the new terms. Likewise, we might say that while its perfectly alright for informal purposes or within ones own country to use billion, and trillion is which ever way is standard there, when absolute clarity is needed in the international market, alternatives can be used. That is probably as good a solution as any.

For mathematical purposes, I'd also like to propose the following functions and definitions. For the short scale we can use the function H(n), defined as:

H(n) = 10^(3n+3)

The "H" here stands for "Half Scale". The reason I don't use "S" for short scale is that I use S(n) for the successor function which is important in a foundational theory of arithmetic.

For the long scale we can use the function L(n) defined as:

L(n) = 10^(6n)

For the intermediate terms of the long scale we can use the function iL(n) defined as:

iL(n) = 10^(6n+3)

"iL" stands for "intermediate Long scale". "n" is the latin prefix attached to each of the endings. We can now make the following statements:

n-illiate = H(n) = 10^(3n+3)

n-illiade = L(n) = 10^(6n)

n-illiard = iL(n) = 10^(6n+3)

n-illion = H(n) or L(n) = 10^(3n+3) or 10^(6n)

We can also convert these functions into each other. This allows us to convert from the long to short scale or vice versa. To go from the long scale to the short scale we observe:

L(n) = 10^(6n) = 10^(6n-3+3) = 10^(3(2n)-3+3) = 10^(3(2n-1)+3) = H(2n-1)

iL(n) = 10^(6n+3) = 10^(3(2n)+3) = H(2n)

So to go from any -illiade in the long scale to the corresponding -illiate of the short scale we double the latin prefix and subtract one. For example:

trilliade = 3-illiade = 5-illiate = quintilliate

quadrilliade = 4-illiade = 7-illiate = septilliate

To go from any -illiard of the long scale to the corresponding -illiate of the short scale we double the latin prefix. For example:

milliard = 1-illiard = 2-illiate = billiate

billiard = 2-illiard = 4-illiate = quadrilliate

We can also convert from the short to long scale. To do so however we have to break the short scale into two cases: when the prefix is even, and when its odd. Let's convert the formulas:

Let n be an even number, 2k:

H(n) = 10^(3n+3) = 10^(6k+3) = iL(k) = iL(n/2)

Let n be an odd number, 2k-1:

H(n) = 10^(3n+3) = 10^(3(2k-1)+3) = 10^(6k-3+3) = 10^(6k) = L(k) = L((n+1)/2)

So if n is even we simply divide n by two and add the ending -illiard. If n is odd we add one then divide by two and add the ending -illiade. Some examples:

octilliate = 8-illiate = 4-illiard = quadrilliard

septilliate = 7-illiate = 4-illiade = quadrilliade

So now we can distinguish the systems and convert between them. My E.D.N. (ehanced decimal notation) can also be adapted to suit the long scale.

Notice that the way I defined EDN we can state:

(n) = H(n) = 10^(3n+3)

To adapt EDN to the long scale we can use block braces, " [ ] " and define:

[n] = L(n) = 10^(6n)

These can act as seperators between numbers, essentially acting as commas. For example, to describe the number 789,123,456,789 in EDN we can write:

789(2) 123(1) 456(0) 789

Using the long scale enhanced decimal notation (LEDN), we can write:

789,123 [1] 456,789

by using EDN and LEDN we can define almost any "-illion number" named in any system. For example Bentrizillion is defined as:

10^(6*10^(6*10^(6*10^6,000,000,000)))

We can use LEDN mixed with EDN to simplify this expression:

10^(6*10^(6*10^(6*10^6,000,000,000))) = 10^(6*10^(6*10^(6*[(2)] ))) =

10^(6*10^(6*[[(2)]] )) = 10^(6 * [[[(2)]]] ) = [[[[(2)]]]] = [(2),4]

So...

Bentrizillion = [(2),4]

Looks alot simpler now. To understand what it means start with a billion. Now go to the billionth -illiade, that's (2)-illiade. Now go to the (2)-illiadeth -illiad. That's [(2)]-illiad. Now go to the [(2)]-illiadeth -illiade. That's [[(2)]]-illiade. Now go to the [[(2)]]-lliadeth -illiad. That's a Bentrizillion. Now should that be a Bentrizilliade or a Bentrizilliard? ... :)

-- Sbiis Saibian

Thursday, May 26, 2011

An Enhancement on Arabic Decimal Notation

Arabic decimal notation has become the worlds most recognized notation for numbers. Arabic decimals are those familiar digits 0,1,2,3,4,5,6,7,8, and 9 that can be combined in an infinite number of ways to write any whole number desired. When combined with a negative sign we can express any integer. Add in a decimal point and we can describe real numbers to any degree of desired accuracy. The power of this notation is its simplicity and economy. With only 10 symbols it allows to describe an unlimited range of values. Surprisingly "decimals" are relatively new. They began perhaps sometime in the 5th century created by indian mathematicians. The novel idea introduced by arabic decimals was a positional system where symbols value depended on their position. To understand the considerable advantage we have to look at the kinds of systems that existed prior to arabic decimals.

Probably the most widely used number system prior to decimals was the roman numerals. Their usage was so prevalent that its usage only died off slowly as decimals replaced them, and we still use them today for limited purposes. The basic idea is to have each "roman numeral" stand for a particular number. an "I" is one, a "V" is five, and "X" is ten, and "L" is fifty, and so on. When symbols are written next to each other we simply add them together to determine the value they represent. Some examples:

III represents 1+1+1 = 3
VII represents 5 + 1 + 1 = 7
XV represents 10 + 5 = 15
LXXVI represents 50 + 10 + 10 + 5 + 1 = 76

Generally we write the terms in decending order. Now this is fine as long as we want to express only a limited range of numbers. However what if we want to express larger numbers. We need more denominations then, or less we would have to write out the largest denomination as many times as it would take to add up to the number we are trying to express. We can also use "C" for a hundred, "D" for five hundred and "M" for one thousand. The problem is if we wanted to express a million we would have a hard time doing it with just these symbols. To write a million we would have to write "MMMMMMMM ... MMM" with a thousand Ms! Not in the least practical. We could of coarse come up with new denominations but the problem remains. There will always be bigger numbers, and so no set of denominations will be enough to express "all numbers compactly".

This is where the advantage of decimals comes in. We learn 10 symbols, but their values are not as fixed as the roman numerals. Each has a "base value", but every time a decimal moves to the left it gets multiplied ten fold. Thus 100 is ten times greater than 10, 1000 is ten times greater than 100, and so on. Its as if every time a zero is added, the one becomes a whole new denomination. We can create a whole series of denominations using just 1 and 0.

Decimals are definitely alot more useful for memorizing, adding, multiplying, recording and working with numbers. However even these numerals have their limitations. In todays modern world millions, billions and trillions are commonly spoken. To write a million in decimal we have to write 1000000. A billion would be 1000000000, and a trillion would be 1000000000000. Notice any problems. First off, its difficult to read off exactly how many zeroes there are. To remedy this commas are usually inserted every three digits to make counting them off easier. So a million becomes 1,000,000 a billion becomes 1,000,000,000 and a trillion becomes 1,000,000,000,000. That's certainly an improvement. However science deals with numbers even larger than this like quadrillions, quintillions, and beyond. A Quintillion is 1,000,000,000,000,000,000. How many commas are there? Try counting the commas in this next one:

1,000,000,000,000,000,000,000,000,000,000,000

A bit tricky? The above number is a decillion (a personal favorite) which is 1 followed by 33 zeroes. It also contains 11 commas, one for each set of three zeroes. Now it should be apparant what the disadvantage of positional based notation is. While zeroes are handy for holding "places", when the place value is very high a lot of zeroes are neccessary. We can't simply remove the zeroes because then the 1 doesn't have the same value. Also notice that denominational systems such as Roman numerals do have certain advantages over decimals. For example a thousand is simply "M", but in decimal its "1000" and requires at least 4 symbols (5 if you include a comma).

In a sense scientific notation (S.N.), which developed for this very reason I suspect, is an improvement upon arabic decimals in a way that is analogous to how arabic decimals are an improvement on roman numerals. Taking advantage of the power of exponents we can write a decillion or 1,000,000,000,000,000,000,000,000,000,000,000 simply as 10^33. That's quite economical. We can also describe numbers other than whole powers of ten. For example 2,000,000,000 can be written as 2*10^9. We can also describe numbers with more than a single non-zero digit by using a decimal point. For example 678,400,000,000,000,000 would be 6.784*10^17 in SN.

SN was not meant to be a way to express every decimal number however. For example in standard SN 678,400,000,000,000,001 would still be approximated as 6.784*10^17.

I have devised an interesting alternative to scientific notation that can be used to truncate decimal notation and allow us to express VERY large numbers very easily. In fact it has some advantages over scientific notation.

Here's the basic idea. Take 1,000 for example. If the comma is present to indicate that the ones are in the thousands, why do we need the zeroes? Thus we can write " 1, " for "1,000" without much loss of meaning. To express 1,001 we can drop the zeroes and write " 1,1 ". Essentially the commas is saying we have 1 thousand and one left over. so 1,002 would be 1,2. Get the idea so far? So now consider a million which is 1,000,000. We can drop all of the zeroes to obtain " 1,, "
a million and one would be 1,,1. A million one thousand would be 1,1, and a million one thousand and one would be 1,1,1. This allows us to drop some zeroes but its actually not that much of an improvement for bigger numbers. For example a decillion would be shortened from 1,000,000,000,000,000,000,000,000,000,000,000 to 1,,,,,,,,,,,. Its still difficult if not more difficult to read the commas! This is where the important idea comes in. Rather than write a series of commas " ,,, ... ,,, " we can use a pair of parathesis, where the number contained inside represents the rank of each comma. The first comma will be rank zero so we can use (0) in place of the comma marking off thousands. The second comma will be rank one so we can use (1) in place of the comma marking off millions, and so on. Zeroes can be dropped, and a leading 1 can be dropped. It's alittle difficult to describe at first, but some examples should clarify what I have in mind. Here is how we can convert standard decimal notations into an enhanced form we can call Enhanced Decimal Notation (EDN):

1,000 = 1, = 1(0) = (0) by dropping the leading "1". Think of (0) as a comma indicating that we are in the thousands. The blank on the left means 1 thousand(s) while the blank on the right means no ones.

1,001 = 1,1 = 1(0)1 = (0)1
1,002 = 1,2 = 1(0)2 = (0)2
...
1,999 = 1,999 = 1(0)999 = (0)999
2,000 = 2, = 2(0)
2,001 = 2,1 = 2(0)1
...
54,007 = 54,7 = 54(0)7
999,999 = 999(0)999
1,000,000 = 1,, = 1(1) = (1)
1,000,001 = 1,,1 = 1(1)1 = (1)1
1,001,000 = 1,1, = 1(1)1(0) = (1)(0)
1,001,001 = 1,1,1 = 1(1)1(0)1 = (1)(0)1
1,002,001 = 1,2,1 = 1(1)2(0)1 = (1)2(0)1
...
980,001,014 = 980,1,14 = 980(1)1(0)14 = 980(1)(0)14
...
1,000,000,000 = 1,,, = 1(2) = (2)
1,000,000,000,000 = 1,,,, = 1(3) = (3)
1,001,001,001,000 = 1,1,1,1, = 1(3)1(2)1(1)1(0) = (3)(2)(1)(0)
...
1,000,000,000,000,000,000,000,000,000,000,000 = 1,,,,,,,,,,, = 1(10) = (10)

Besides reducing powers of ten just as effectively as SN, EDN also has another advantage. Normally when we have long decimal strings such as 987,654,321,123,456,789 it can be difficult to tell what size the number is. While EDN won't shorten this expression (since there are no zeroes to drop) it will at least clarify scale. We would write:

987(4)654(3)321(2)123(1)456(0)789

To determine scale we look at the first seperator, " (4) " that means that there are 987 quadrillions. The number inside will indicate the latin prefix of the -illion. Thus (1) is a million, (2) a billion, (3) a trillion and so on. To find out the size of any seperator simply use the formula:

(n) = 10^(3n+3)

That means that (n) = n-illion in the short scale. EDN is at least as effective as scientific notation for describing large numbers. They say there are about 10^80 particles in the observable universe. In EDN we could write the same number as 100(25). We can also convert from EDN to SN using the above formula so:

100(25) = 100*10^(3*25+3) = 100*10^78 = 10^80

To get a feel for how large 100(25) is just remember that (25) is the 26th seperator. That's how many commas would be needed to write this number out in full in standard Decimal Notation (D.N.).

The real advantage of EDN however is that it allows us to describe VERY large numbers, even larger than those usually discussed in relation to the universe. For example a centillion is said to be 1 followed by 303 zeroes or 10^303 in SN. In EDN we can simply write " (100) ". But it is so easy to go further. A millillion is said to be 10^3003. In EDN this would be (1000). But wait 1000 = (0) in EDN, so we can substitute this to obtain (1000) = ((0)). And we can go much further than this. EDN is very well adapted to defining -illion numbers. In fact they can be used to define Bowers -illion series. If your not familiar with it I'll be showing the definitions in standard scientific notation so that you'll better understand what is meant. The advantage that EDN has over SN will become apparant when we start exploring extremely large numbers, like those Bowers explores in his -illion series. Here are some examples:

millillion = 10^3003 = (1000) = ((0))
micrillion = 10^3,000,003 = (1,000,000) = ((1))
nanillion = 10^3,000,000,003 = (1,000,000,000) = ((2))
picillion = 10^3,000,000,000,003 = (1,000,000,000,000) = ((3))
femtillion = 10^(3*10^15+3) = ((4))
attillion = 10^(3*10^18+3) = ((5))
zeptillion = 10^(3*10^21+3) = ((6))
yoctillion = 10^(3*10^24+3) = ((7))
...
Icosillion = 10^(3*10^60+3) = ((19))
Triacontillion = 10^(3*10^90+3) = ((29))
Tetracontillion = 10^(3*10^120+3) = ((39))
Pentacontillion = 10^(3*10^150+3) = ((49))
Hexacontillion = 10^(3*10^180+3) = ((59))
Heptacontillion = 10^(3*10^210+3) = ((69))
Octacontillion = 10^(3*10^240+3) = ((79))
Ennacontillion = 10^(3*10^270+3) = ((89))
Hectillion = 10^(3*10^300+3) = ((99))
Killillion = 10^(3*10^3000+3) = ((999))
Megillion = 10^(3*10^3,000,000+3) = ((999,999)) = (((1)-1))
Gigillion = 10^(3*10^3,000,000,000+3) = (((2)-1))
Terillion = 10^(3*10^3,000,000,000,000+3) = (((3)-1))
Petillion = 10^(3*10^(3*10^15)+3) = (((4)-1))
Exillion = 10^(3*10^(3*10^18)+3) = (((5)-1))
Zettillion = 10^(3*10^(3*10^21)+3) = (((6)-1))
Yottillion = 10^(3*10^(3*10^24)+3) = (((7)-1))
...
Hotillion = 10^(3*10^(3*10^300)+3) = (((99)-1))
...
Kalillion = 10^(3*10^(3*10^3000)+3) = (((999)-1))
...
Mejillion = 10^(3*10^(3*10^3,000,000)+3) = (((999,999)-1)) = ((((1)-1)-1))
...
Gijillion = 10^(3*10^(3*10^3,000,000,000)+3) = ((((2)-1)-1))
Astillion = 10^(3*10^(3*10^3,000,000,000,000)+3) = ((((3)-1)-1))
Lunillion = 10^(3*10^(3*10^(3*10^15))+3) = ((((4)-1)-1))
...
Multillion = 10^(3*10^(3*10^(3*10^42))+3) = ((((13)-1)-1))

As you can see the nested SN is alot more clunky than the EDN. Of coarse EDN was especially developed to handle -illion numbers so naturally its better suited to them.

You can also see that it doesn't take much effort with EDN to come up with tremendous sized numbers. For example ((100)) is already larger than a googolplex, being equal to the centillionth -illion. ((((100)))) is larger than a multillion. EDN can also be continually enhanced by adding new rules to the notation. For example:

Let (n,m) = ((..((n))..)) where there are "m" nested parathesis.

So ((((100)))) = (100,4)

Now consider this progression.

(0,1) = (0) = 1000
(0,2) = ((0)) = (1000) = millillion
(0,3) = (((0))) = ((1000)) = (millillion) ~ killillion
(0,4) = ((((0)))) = (((1000))) = ((millillion)) ~ (killillion) ~ kalillion
(0,5) = (((((0))))) = ((((1000)))) = (((millillion))) ~ ((killillion)) ~ (kalillillion) > Multillion

(0,100) is then well beyond Bowers -illions. It is close to a giggol or 10^^100. We can go further. We can now have any large number n, or EDN within the second entry to produce even larger numbers. We could have (0,(0,100)) which would be approximately 10^^10^^100 or a giggolplex. Next we could have (0,(0,(0,100))) which is approximately 10^^10^^10^^100 or a giggolduplex. So whats next?

Notice that we are again nesting EDN. We can therefore create a third entry to cover this second level of nesting. We define it as follows:

(a,b,1) = (a,b)
(a,b,c) = (a,(a,b,c-1))

so (0,100,3) = (0,(0,100,2)) = (0,(0,(0,100,1))) = (0,(0,(0,100)))

Now we develop a simple set of rules that will enable us to have any number of entries in EDN. Let there be a series of "arguments" (entries) labeled a(1), a(2), a(3), ... , all the way to a(n). We now make the following definitions:

1. if n = 1 then ( a(1) ) = 10^(3*a(1)+3) ... otherwise
2. if a(n) = 1 then ( a(1),a(2),a(3), ... , a(n-1), 1 ) = ( a(1),a(2),a(3), ... , a(n-1) ) ... otherwise
3. if n = 2 then ( a(1) , a(2) ) = ( ( a(1) , a(2) - 1 ) ) ... if none of that applies then...
4. ( a(1),a(2),...,a(n-2) , a(n-1), a(n) ) = ( a(1) , a(2), ... , a(n-2) , ( a(1),a(2),...a(n-2),a(n-1),a(n)-1))

If that seems a bit too technical allow me to explain. Basically if it has 1 or 2 entries we already know what to do. If it ends in a 1 and has more than a single entry we can just drop the one (see rule 2). If it has more than 2 entries and does not end in a 1 then we simply drop the last entry and replace the second to last entry with the original expression with its last argument decreased by 1. Hopefully some examples will make it more transparant.

(0,10,10,3) = (0,10, (0,10,10,2) ) = (0, 10 , ( 0 , 10 , ( 0 , 10 , 10 ) ) )

(1,2,3,4,2) = ( 1 , 2, 3, (1,2,3,4))

(0,10,10,10,10,10,3) = (0,10,10,10,10,(0,10,10,10,10,(0,10,10,10,10,10)))

Now imagine the size of (10,10,10,10,10,10,10,10,10,10). Interestingly, it turns out that EDN is about as capable as Knuth arrows at expressing large numbers. Every time we add an argument we are actually going up by another operation level. That's equivalent to adding another Knuth arrow.

Roman numerals can only handle numbers in the thousands. DN can handle exponential class numbers with some difficultly, and SN can handle exponential numbers with ease. But EDN trumps all these by being able to cope with numbers in the Knuth arrow range. That's a rather massive enhancement from DN. More importantly we can also further enhance the notation by adding new symbols and rules. The only catch is that the further we go the more complex and difficult it becomes.

So that's basically the system I've devised. It has a few uses for dealing with large numbers. It provides a ready made system for expressing -illions and it can express extremely large numbers.

Anyway, I may be making more posts on this blog about large numbers, notations, and all things related. 'til then...

-- Sincerely, Sbiis Saibian