Discussion about math, puzzles, games and fun.   Useful symbols: ÷ × ½ √ ∞ ≠ ≤ ≥ ≈ ⇒ ± ∈ Δ θ ∴ ∑ ∫ • π ƒ -¹ ² ³ °

You are not logged in.

|
Options

irspow
2006-01-23 07:08:08

I guess this case is closed.  Now I have to find what the implications of this arrangement have on spheres occupying space in general.

One that I have found already is that this pattern is repeated again and again when maximizing the number of spheres within an enclosed container.  Any other arrangement leads to more wasted volume.  I guess that this arrangement also suggests a point of stable equilibrium for potential energy.

Well, thanks to everyone who I pestered on this topic.  I appreciate all of the input, as even the now irrelevant posts did serve to drive me closer to the solution that I was looking for.

Ricky
2006-01-23 06:54:26

Ah, you're right.  I completely forgot about roots.

irspow
2006-01-23 06:41:26

You are still missing something, Ricky. The function;

R = [2sin((90n - 180)/n) / sin(360/n)] - 1

Does not even have a solution when x = 0 at n = 2.
This makes sense as n is the number of spheres enveloping a single inner sphere.
Actually n has a domain of 3 to ∞.

The successive Rs are:

((2√3)/3)-1,  n=3
√(2) - 1,  n=4
[(√(5) + 1)√(2)] / [√(√(5) + 5)],  n=5
1,  n=6

Essentially, the sin((90n - 180)/n) / sin(360/n) part has to be rational.  You are only multiplying this value by 2 and then subtracting 1 to get R.

I put this function into my TI-89 and then looked at the table.  After scanning up to n = 1000, it seems clear that this function does not produce any further rational ratios.  I guess that I will not be able to prove it mathematically at this time.

The implication is that a 1:1 ratio (exterior spheres radius to the interior sphere radius) is the only time when such an arangement can be made where all spheres touch each other.  This occurs when n = 6, meaning that the seven sphere arrangement is unique.

Ricky
2006-01-23 03:30:21

Scratch all of that.  What you are doing is dividing xπ/yπ, in which both pi's cancle out.  The only time there are no pi's (starting to get a bit hungry), is when x=0 or y=0.  If x=0, xπ/yπ = 0.  If y = 0, you don't have a real value.  So every number is rational.

irspow
2006-01-23 03:23:36

Again, I got a rational R of 1 when x, as defined above, equalled 60, neither of the conditions above when n = 6.

x = 180n = 180*6 ≠ 60
x = 360ny = 360(6)(60) ≠ 60

Ricky
2006-01-23 03:13:53

People who use degrees are just afriad of Pi.

Heh, just kidding of course.  Degrees works just as well.

sin(x)/sin(y) is only rational when x = 180*n or x = 360*n*y, where n is an integer.

irspow
2006-01-23 03:03:56

But I got a rational answer when x, as in sin(x)/sin(y), equalled 60 at n=6.  Perhaps your definition of when this function is rational only applies if I was using radians?  This function is predicated on the fact that I am using degrees.  I could adapt it to radians if you feel that this would be beneficial.

Ricky
2006-01-22 19:53:40

Oh, is there C++ code that mimmicks trigonomic functions?  I will need them if I am going to use the computer to do this one.

#include <math.h>

http://www.cplusplus.com/ref/cmath/

R = [2sin((90n - 180)/n) / sin(360/n)] - 1

sin(x)/sin(y) is only rational when x = 0 or x = 2Pi*n*y, where n is an integer.  It should be easy to solve from there.

Ricky
2006-01-22 19:17:35

R = [2sin((90n - 180)/n) / sin(360/n)] - 1

The problem with a rational test is that 1.1 / 2.4 is rational.  That's 11 / 24.  And there's even more problems with that.  Values such as 1.1 can not be stored entirely in binary.  You can get close, but not exact.  So you can't tell the difference between 1.1 and 1.1000000000000001.  And further more, irrational numbers can't be stored on the computer anyways.  You can have an approximation, but that's it.

I'll think more on this problem tonight, but I believe it can not be solved through a computer.

Ricky
2006-01-22 19:06:01

A rounding function should be relativly easy to write, though.

float y;
int x = y + 0.5;

Here are my functions >smile
y = 1
y = |x| / x
y = sqrt(x^2)

Those are not natural numbers.

You want a cool function?  Take the binary value stored in a float, and save that value in an unsigned integer.  This can easily be done with pointers:

#include <iostream>

using namespace std;

int main()
{
float *f = new float;
*f = -5.3;
cout << *((unsigned int *)f) << endl;

delete f;
}

The output is:  3232340378

The thing that's cool about this function is that (on a computer) it's 1-1 and onto.  Of course, in real life it's not because there are a greater amount of fractions (rationals) than there are integers.

God
2006-01-22 11:24:42

Here are my functions >
y = 1
y = |x| / x
y = sqrt(x^2)

irspow
2006-01-22 11:18:57

I think that I have let this topic spiral out of control.  I just want to find when;

n≥3 gives a rational value of R other than when n = 6

R = [2sin((90n - 180)/n) / sin(360/n)] - 1

At n = 6, R = 1,  but most other values take the form of √(4/3) - 1 at n = 3 and √(2) - 1 at n = 4 and so forth.  I'm looking for ratios that I can actually produce in the real world.

From what I have computed so far, there doesn't seem to be another case of a rational R, but I cannot prove it.

mikau
2006-01-22 10:57:35

irspow  I think all you have to do is declare a variable

unsigned int x;

If you were to assign a float or decimal value to it, it would automaticly be converted to an int and change the sign if its negative I think.... But I believe, the drawback is it doesn't round. Thus if you assigned a value of 3.9999999999 to an int it would have a value of 3. A rounding function should be relativly easy to write, though.

irspow
2006-01-22 09:17:33

I just mention C++ because I have a compiler for it.  I guess that I'll Google it like you suggest.

By the way, do you think that you can solve the problem above for integer values of R without a computer? Techically, R does not have to be an integer either but rather a real value.

MathsIsFun
2006-01-22 09:09:33

But before you get too involved,  there are many different programming languages to choose from, each with their advantages and disadvantages.

C++ is elegant and fast, but misses out on its ability to put it live on a website. At the other end, Javascript is a bit "slack", but can be added to a website with great ease. And many choices inbetween !

I see programming as part of Mathematics, but proofs are better done with "pencil and paper" for the simple reason that to use a program as proof would require a complete description of the program, right down to the algorithm used by the sin() function.

Having said that - a program will give you many insights, and allow you to experiment freely with your ideas. And it is fun!