It all started, a long time ago, when a roommate of mine at the academy gave me an
innocuous puzzle to solve. He said " If you were to have
just four standard weights and you had to weigh all whole number weights between 1 and 40
kgs, on a physical balance, what would be your choice of the four standard weights ?"
While solving the problem and variations of it, I was coming across a lot of physical
applications of such a situation. In fact the solution itself was very interesting and
promising. The solution to the above puzzle was 1, 3, 9 and 27. Take another look. They
are 3^0, 3^1, 3^2, 3^3. Three raised to the power of zero, one, two and three. I extended
the problem for higher values and the symmetry still continued. The
fact that all numbers however great could be expressed as a unique combination of
sums and subtracts of radicals of three, each used only once, and in such a structured and
predictable manner, offered great possibilities to me and it was not easy to sleep with it
for all these years. Any number could be represented. Just think of any. Even negative numbers ! And later expanded to even include the
fractional numbers ( See below ).
The reason why this would be so, is not quite intuitive to understand, but can be
illustrated with a "swinging scaffolding diagram".
And it has mind boggling applications that can radically
change the way we do things.
But before you go skeptical and leave, I am coming straightaway to something concrete to keep your faith. Given below is a programme written by me in Turbo Pascal to break any numbers into its components in the tristate manner.
Download Software (179KB) Tristate.zip
program tristate;procedure gamma;
begin
write(' - ',round(exp((a-1)*ln(3))));
n:=round(n-(exp((a-1)*ln(3))));
end;
procedure delta;
begin
write(' - ',round(exp(a*ln(3))));
n:=round((n-exp(a*ln(3))));
end;
procedure positive;label 10;
begin
a:=0;
repeat
begin
if n=round(exp(a*ln(3))) then
begin
write(' + ',round(exp(a*ln(3))));
task:=true;
goto 10;
end;
a:=a+1;
end;
until N<round((exp(a*ln(3))));
b:=round(exp(a*ln(3))-n);
if b>round(((exp(A*ln(3)))-1)/2) then alpha
else
if b<=round(((exp((a)*ln(3)))-1)/2) then beta;
10:;
end;
procedure negative;label 10;
begin
n:=-n;a:=0;
repeat
if n=round(exp(a*ln(3))) then
begin
write(' - ',round(exp(a*ln(3))));
task:=true;
goto 10;
end;
a:=a+1;
until N<round((exp(a*ln(3))));
b:=round(exp(a*ln(3))-n);
if b>round(((exp((a)*ln(3)))-1)/2) then gamma
else
if b<=round(((exp((a)*ln(3)))-1)/2) then delta;
n:=-n;
10:;
end;
procedure process;
begin
if n<0 then negative
else
if n=0 then begin
write('
0');
Task:=true;
end
else
if n>0 then positive;
end;
{MAIN
PROGRAMME}
begin
choice:='y';
writeln;writeln;
repeat
begin
a:=0;n:=0;b:=0;
task:=false;
writeln;writeln;
writeln(' Enter your number (negative also allowed)');
readln(n);
writeln;
write(round(n),' = ');
while task=false do
begin
process;
end;
writeln;writeln;writeln;
writeln('q to quit, c to continue crunching');
readln(choice);
end;
until choice='q';
writeln;writeln(' Copyright Abhijit Bhattacharjee 20 Sept 1996');
writeln(' 5C Nilanjana Apts, 43 DH Road, Calcutta 34 ,INDIA');
readln;
end.
Just compile the programme in a Turbo Pascal
compiler. Naturally, the largest number crunched by this will be limited by the variable
size definable in the compiler. But the algorithm remains same for the largest numbers
conceivable.
The programme shows us that practically all numbers positive or negative, however great or
small can be expressed as a combination of sums and subtracts of radicals of three, each
radical used just once.
So this gives us another way of representing numbers. A brand new number system.
Lets see.
3^0 = 1
3^1 = 3
3^2 = 9
3^3 = 27
3^4 = 81
3^5 = 243
3^6 = 729
3^7 = 2187
3^8 = 6561
3^9 = 19683
3^10 = 59049
3^11 = 177147
3^12 = 531441
3^13 = 1594323
3^14 = 4782963
3^16 = 14348907
3^17 = 43046721
3^18 = 129140163
3^19 = 387420489
3^20 = 1162261467
3^21 = 3486784401
3^22 = 10460353203
3^23 = 31381059609
3^24 = 94143178827
3^25 = 282429536481
Now watch some random numbers !
57 = 81-27+3
9586 = 6561+2187+729+81+27+1
63779 = 59049+6561-2187+243+81+27+9-3-1
7890459 = 14348907-4782969-1594323-59049-19683-2187-243+9-3
57568678 = 43046721+14348907+177147-6561+2187+243+27+9-3+1
334754548 = 387420489-43046721-14348907+4782969-59049+6561-729-81+27-9-3+1
689764545 = 1162261467-387420489-129140163+43046721+1594323-531441-59049+19683-6561+81-27
Do you need any more examples ? You can use
the programme above. Actually to convince you, I am ready to institute a cash prize for
anyone finding a number that could'nt be expressed in the above manner. It will be a
bother if the number is greater than the 32 bit limit i.e. 4294967296. So I wont do it for
you, but it certainly can be expressed as a tristate.
So the above exercise has convinced you that any number can be expressed in the manner given below.
So this becomes a polar place value number system.
Let us call it the Tristate number system. It
is easier to visualize it as a scaffolding
adjusting its links to reach a point on the number line.
Perhaps only now have we reached the theoretical limit of
information that can be packed into symbols.
(b) Simpler and Efficient Operations.
Another exciting feature that follows is the much more efficient and simplified algorithm
for mathematical operations. The Tristate system appears to be the natures chosen system.
While I mention the inherent simplicity of incorporating the system, you may stop to
wonder how such an obvious choice had evaded us for so long.
(i) Every Tristate number is inherently positive or negative. We do not need to send an
extra bit to represent the sign + or - . Therefore it has cut down all the
complications that we face in trying to represent a negative number in binary system. (
The 1's complement and 2's complement methods). The existing system needs a difficult
algorithm to do mathematical operations on these signed numbers. For subtraction between
two negative numbers for example. Since the basic operations of addition and subtraction
are carried out so frequently in an average programme, the complicated algorithm leads to
a considerable overhead.
The tristate number cuts down on this drastically.
There is only one kind of operation required: Addition for both addition and subtraction.
Since the sign of the number is contained in the number itself, an addition of a positive
number to negative number results in the subtraction of that number from the positive
number. Hence only one set of rules suffice. (-) + (-) = + and Carry = -
(+) +(-) = 0
(+) +(0) = +
(-) +(0) = -
(+) + (+) = - and Carry = +
This should lead to a substantial reduction to hardware required to implement these
operations in a machine. Also it will be much simpler and faster.
(ii) In multiplication the system lends itself easily to operations.
The rules are
(+) * (+) = +
(+) * (-) = -
(-) * (-) = +
(iii)Division: A simple rule for division has been hard to come by so far. This is
one of the reasons for withholding the publication of this theory a long while ago. It is
less than complete in this one aspect. In any case the rules for divisions for all systems
so far has been very complex. In this case too, we may have to resort to restoring or the non restoring division algorithm. But I have a
firm belief that a simple scheme evades us till today. May be you shall help us find one.
I am looking in the direction of Vedic Mathematics to show me
a way to resort this issue in Gods desired way.
(iv) Representation of fractional numbers.
The representation of fractional numbers have always been a tricky problem in number
systems. For example if we were given to express .001 in binary system, the binary system
would go on generating a stream of numbers inching its value towards the desired value,
but alas it could'nt have reached within 99% of the desired value in the first five
significant digits. Again the tristate system would be very efficient in closing on to
nearest a value of a fractional number.
Let us begin with this hint.
The summation of 3^n where n tends to minus infinity is a convergent
series that equals exactly to .5.
In other words, if we added an infinite string of tristate numbers after the tristate
point, we could at best make up a number no greater than .5. This covers exactly half the
length between 0 and 1 on the number line. This might appear unpromising at first sight,
but actually this is exactly what ought to have been the case if we were to continue the
tristate miracle well into the real line. We can still represent all the numbers above the
value of .5 because the tristate closes in on a number from two directions. For all those
numbers above .5 (say .75) we would approach the number as a result of subtracting some
fractional terms from unity. This goes with the rest of the scheme and algorithm of
tristate. There is no change. But as a pay off from this two pronged approach to reaching
a number on the real plane is far greater resolution. By
resolution I mean that we can represent fractional numbers far more accurately without
running into huge strings of numbers after the tristate point (like decimal point,
binary point). To make a quantitative study of this increment of resolution we will
have to define certain new things. I am working on it. But if you get the idea, its
enough.
The discrete has become truly continuous.
You could
kindly write your comments to this theory to me at abhijit8086@yahoo.com. Or if you would
like to give the idea publicity or be reflected in the appropriate forum, you are
encouraged to do so but please keep me in picture by obtaining a written confirmation from
me.
Abhijit Bhattacharjee
5C, NILANJANA APTS.
43 Diamond Harbour Road.
Behala. Calcutta 34. INDIA.