Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
This is the (orthogonal projection of the) front view of a polyhedron: The left, right, up, down and back views are identical to that. Draw the polyhedron from a different angle (that makes clear what its shape is). Note that no two adjacent faces are parallel.
Player (146)
Joined: 7/16/2009
Posts: 686
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Correct. For the fun of it, I made a rendering:
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Btw, what's the volume of a stellated octahedron?
Player (146)
Joined: 7/16/2009
Posts: 686
Warp wrote:
Btw, what's the volume of a stellated octahedron?
This is the most useless spoiler tag ever.
Editor, Expert player (2080)
Joined: 6/15/2005
Posts: 3284
Scepheo wrote:
Warp wrote:
Btw, what's the volume of a stellated octahedron?
This is the most useless spoiler tag ever.
Wolfram Alpha is wrong. The volume is not 1/(3√2), regardless if unit edge length means the side length of the large tetrahedron that is intersected with its dual (volume is √2/8), or unit edge length means the side length of the tetrahedra extending out from the octahedron (volume is √2).
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
What's the volume if the unit length is the length of the side of the cube that contains the stellated octahedron (iow. the side length of the square I posted, ie. the distance between the tips of two adjacent "spikes", ie. the height of the polyhedron when it's on the floor like on the rendering I posted)? Or in other words, how much of the volume of the containing cube does the stellated octahedron take?
Player (146)
Joined: 7/16/2009
Posts: 686
FractalFusion wrote:
Wolfram Alpha is wrong. The volume is not 1/(3√2), regardless if unit edge length means the side length of the large tetrahedron that is intersected with its dual (volume is √2/8), or unit edge length means the side length of the tetrahedra extending out from the octahedron (volume is √2).
Huh, that's weird, using Google's formula for the volume of a tetrahedon, I tried taking two tetrahedrons and subtracting their intersection, which gave me 5/(16√2) and is equivalent to your first case (which you said was √2/8). If I, however, take it as the length of the protruding tetrahedra, it gives me (2√2)/3, not √2 ...
Editor, Expert player (2080)
Joined: 6/15/2005
Posts: 3284
Scepheo wrote:
If I, however, take it as the length of the protruding tetrahedra, it gives me (2√2)/3, not √2 ...
That's just the volume of the 8 protruding tetrahedra. The volume of the octahedron (whose edge length is also 1) is √2/3; add it to the volume of the 8 tetrahedra to get √2.
Warp wrote:
What's the volume if the unit length is the length of the side of the cube that contains the stellated octahedron (iow. the side length of the square I posted, ie. the distance between the tips of two adjacent "spikes", ie. the height of the polyhedron when it's on the floor like on the rendering I posted)?
If the length between the tips of two adjacent spikes is 1, then the length of an edge of a protruding tetrahedron is √2/2 (think of two adjacent spikes at (1/2,1/2,1/2) and (1/2,1/2,-1/2), and a corner where the respective tetrahedra meet which is at (1/2,0,0)). Since the volume of a stellated octahedron where the unit length is the edge of a protruding tetrahedron is √2, then the volume of this stellated octahedron is √2 (√2/2)3=4/8=1/2. So, the stellated octahedron takes up half of the volume of the cube it is contained in. Now that Warp suggested it, there is actually another way to compute the volume. The stellated octahedron is a cube with (non-regular) tetrahedra cut out from each of its edges. If the cube has unit side length, then each of the tetrahedra cut out clearly has base area 1/4 and height 1/2, and so the volume cut out by each one is (1/3)(1/4)(1/2)=1/24. Since 12 of them are cut out, a total volume of 12(1/24)=1/2 is cut out of the cube, leaving a remaining volume of 1-1/2=1/2.
Player (146)
Joined: 7/16/2009
Posts: 686
FractalFusion wrote:
That's just the volume of the 8 protruding tetrahedra. The volume of the octahedron (whose edge length is also 1) is √2/3; add it to the volume of the 8 tetrahedra to get √2.
Ah, I don't know where my head was. I forgot to account for the fact that the intersection is an octahedron in the first case and that there is an intersection in the second case. Silly me. Thanks for the explanation, though.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Bisqwit noticed something about the divisibility of numbers of the form 2x*y-1, where x is an integer > 0 and y is an integer constant, so out of curiosity I investigated a bit further and noticed that (although with the caveat that I only tested with 64-bit integers, so there's room for error): All 2x*2-1 are divisible by 3. All 2x*3-1 are divisible by 7. All 2x*5-1 are divisible by 31. All 2x*7-1 are divisible by 127. All 2x*13-1 are divisible by 8191. All 2x*17-1 are divisible by 131071. All 2x*19-1 are divisible by 524287. Moreover: Only numbers where y is a prime have a divisor that's different from all previous divisors. All numbers of that form where y is even are divisible by 3. All such numbers where y is a multiple of 3 (and not even) are divisible by 7. All such numbers where y is a multiple of 5 (and not divisible by either 2 or 3) are divisible by 31. And so on. All those divisors seem to be prime. Moreover (and this is only a conjecture because of the limits of 64-bit arithmetic), it seems that the divisors always increase, and they seem to themselves by of the form 2z-1 where z is a prime. Even more curiously, the z in that formula is the same as the y in the original numbers 2x*2-1 are divisible by 3; 3 = 22-1 2x*3-1 are divisible by 7; 7 = 23-1 2x*5-1 are divisible by 31; 31 = 25-1 2x*7-1 are divisible by 127; 127 = 27-1 2x*13-1 are divisible by 8191; 8191 = 213-1 2x*17-1 are divisible by 131071; 131071 = 217-1 etc. Thus a conjecture can be formulated from the above: All numbers of the form 2x*y-1, where x and y are integers, x>0 and y is prime, are divisible by 2y-1. I don't know, however, if it's reasonable to conjecture that 2y-1 is always prime (because it would always be a Mersenne prime, which seems unlikely). Edit: I actually noticed that I inadvertently skipped a crucial value: All 2x*11-1 are divisible by 23. There doesn't seem to be a clear connection between 11 and 23. I suppose the conjecture holds for Mersenne primes, but not others. However, it could still be conjectured that the divisor itself is always prime. Its form is more complex than simply 2y-1, though.
Joined: 2/3/2013
Posts: 320
Location: Germany
Warp wrote:
Bisqwit noticed something about the divisibility of numbers of the form 2x*y-1, where x is an integer > 0 and y is an integer constant, so out of curiosity I investigated a bit further and noticed that (although with the caveat that I only tested with 64-bit integers, so there's room for error): ...
Interesting, I'll write a Haskell program for this when I'm home as an exercise and edit this post with results for higher numbers. Edit: Doh, let me get home first. Now you took all my motivation. I admit, this may be in part because the weekend started.
All syllogisms have three parts, therefore this is not a syllogism.
Skilled player (1653)
Joined: 7/25/2007
Posts: 299
Location: UK
This is more simple than it looks. Just rearranging the power, and taking 22x-1 modulo 3, we have 22x-1=(22)x-1=(4)x-1≡(1)x-1≡1-1≡0 Hence 3 divides 22x-1. Similarly for the other numbers 23x-1=(23)x-1=(8)x-1≡(1)x-1≡0 Mod 7 25x-1=(25)x-1=(32)x-1≡(1)x-1≡0 Mod 31 27x-1=(27)x-1=(128)x-1≡(1)x-1≡0 Mod 127 213x-1=(213)x-1=(8192)x-1≡(1)x-1≡0 Mod 8191 217x-1=(217)x-1=(131072)x-1≡(1)x-1≡0 Mod 131071 219x-1=(219)x-1=(524288)x-1≡(1)x-1≡0 Mod 524287 Or more generally, just taking the numbers inside, then going modulo (2p-1) in order to reduce this value to 1, gives 2x*p-1=(2p)x-1≡(1)x-1≡0 mod (2p-1). Hence (2p-1) divides (2x*p-1). This works for all p, even for values not prime. EG 2x*4-1 will be divisible by 24-1=16-1=15. Now this itself is a composite number, but since composite numbers have prime factors it immediately follows that there exists a prime (3 or 5 here) which divides this expression. Now, for the case P=11, that's not an exception, it's just that you're choosing to focus on the wrong information. We have 211-1=2048-1=2047. So the formula predicts it will be divisible by 2047, but since this is a composite number, we have 2047=23*89 then it is also true to say it is always divisible by 23 (or 89) as well. So there always exists a prime which divides every term in such a sequence.
Amaraticando
It/Its
Editor, Player (162)
Joined: 1/10/2012
Posts: 673
Location: Brazil
More generally, an - 1 = (a-1)*(an-1 + an-2 + an - 3 + ... + a2 + a + 1) Proof: fix a and use mathematical induction over n. So, make a = 2y and n = x, like Flip did.
Player (98)
Joined: 12/12/2013
Posts: 380
Location: Russia
pff you don't need to proove that complicated thing. It's much easier. You must know well known property: (a*b) mod c = (a mod c)*(b mod c) proof: a = u*c + (a mod c) (select right u) b = v*c + (b mod c) (select right v) then (a*b) = (u*c + (a mod c))*(v*c + (b mod c)) rearrange a*b = u*v*c*c + ((a mod c)+(a mod c))*v*c + (a mod c)*(a mod c) remove all what is multiplied by c and you'll get (a*b) mod c. so you can always use (a mod c) instead of a. a^x - 1 = 0 (mod b) a^x = 1 (mod b) (a mod b)^x = 1 (mod b) your question is: what b I need to pick, so it would work for any x? It must work for x = 1, so you need to pick any such b: (a mod b) = 1 (mod b) in other words a = 1 (mod b) also if it's so, then (a^x) = 1 (mod b) because ((a mod b)^x) = (1^x) = 1 (mod b) how many of such b? a = 1 (mod b) a - 1 = 0 (mod b) in other words, a - 1 must be devisible by b. a^x - 1 divisible by b for any x if and only if (a-1) divisible by b. So, factorize (a-1) and make all combinations of factors: you'll get all such b.
Editor
Joined: 11/3/2013
Posts: 506
Is there any way to get Fermat's little theorem out of this? (Fermat's little theorem states that if p is prime, a^p - a is a multiple of p).
Amaraticando
It/Its
Editor, Player (162)
Joined: 1/10/2012
Posts: 673
Location: Brazil
thatguy wrote:
Is there any way to get Fermat's little theorem out of this? (Fermat's little theorem states that if p is prime, a^p - a is a multiple of p).
I don't think so. The previous problem is just a matter of simplification and doesn't depend on the primality of any of the numbers.
Warp wrote:
Thus a conjecture can be formulated from the above: All numbers of the form 2x*y-1, where x and y are integers, x>0 and y is prime, are divisible by 2y-1.
This works for all integers x and y, even if y is not prime. 2x*y - 1 ≡ (2y)x - 1 ≡ (2y - 1) * ( (2y)x-1 + (2y)x-2 + ... + (2y)2 + (2y)1 + 1 ) This last identity comes from the sum of the terms of a geometric progression. Therefore, 2x*y - 1 is multiple of 2y - 1.
Warp wrote:
All 2x*11-1 are divisible by 23. There doesn't seem to be a clear connection between 11 and 23. I suppose the conjecture holds for Mersenne primes, but not others. However, it could still be conjectured that the divisor itself is always prime. Its form is more complex than simply 2y-1, though.
In this case, 2x*11 - 1 = (211)x - 1 = 2048x - 1 = (2048-1) * something = 2047 * something As 2047 = 23*89, then 23 divides 2x*11 - 1 for all x.
Player (98)
Joined: 12/12/2013
Posts: 380
Location: Russia
thatguy wrote:
Is there any way to get Fermat's little theorem out of this? (Fermat's little theorem states that if p is prime, a^p - a is a multiple of p).
I don't know how to get it from what I post... but if you want to know easy proof. This is easiest what I know.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
I was thinking whether a problem like this is provably unsolvable, or simply extremely hard: "What is the smallest positive integer that cannot be computed with a C++ program of at most 1000 characters?" (Note that this doesn't mean that there aren't larger integers than the answer that can't be computed by such a program. The problem is asking for the smallest positive integer that cannot be, even if there exist larger ones that can.) I know this is (probably) related to Kolmogorov complexity, but that subject is a bit too complex for my knowledge. (Also, I'm not sure if the concept of Kolmogorov complexity actually answers my question, ie. whether that problem is unsolvable or just very hard.)
Player (80)
Joined: 8/5/2007
Posts: 865
Warp wrote:
I was thinking whether a problem like this is provably unsolvable, or simply extremely hard: "What is the smallest positive integer that cannot be computed with a C++ program of at most 1000 characters?" (Note that this doesn't mean that there aren't larger integers than the answer that can't be computed by such a program. The problem is asking for the smallest positive integer that cannot be, even if there exist larger ones that can.) I know this is (probably) related to Kolmogorov complexity, but that subject is a bit too complex for my knowledge. (Also, I'm not sure if the concept of Kolmogorov complexity actually answers my question, ie. whether that problem is unsolvable or just very hard.)
Since, for starters, all ~1000 digit numbers are computable under that criterion, I imagine the answer is very large. To throw out a guess, perhaps one million or so digits.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Bobo the King wrote:
Since, for starters, all ~1000 digit numbers are computable under that criterion, I imagine the answer is very large. To throw out a guess, perhaps one million or so digits.
I'm not asking what the number is (because it's practically, perhaps even provably, impossible to calculate). I'm asking whether the problem is unsolvable or simply very hard. One could naively think "it's not unsolvable; simply go through every possible valid C++ program of 1000 characters or less, and for each one see which numbers it outputs, if any". However, that method might not be usable because you may encounter the halting problem: You cannot know if a given program will ever halt. Of course the halting problem is related to programs of any arbitrary size. Here we are talking about programs of a limited size, so perhaps the halting problem doesn't apply? Perhaps it's possible to simply list which programs halt and which won't? Of course then there's the problem of programs that don't halt but do print numbers. If they just keep printing numbers, can you ever find out which ones? An unbounded version of the problem is probably unsolvable. In other words, if we modify the problem like this: "For any given n, what is the smallest positive integer that's not computable by a C++ program of at most n characters?" Here we probably stumble across the halting problem outright.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
I forgot to mention that, obviously, for the problem to make sense, the program has to be a terminating one. In other words, there has to be an ending condition. (Else it could simply print increasing integers forever.) An interesting variant of the problem is this: "What is the largest integer that can be computed by a terminating C++ program of at most 1000 characters?" The condition that the program must terminate actually puts an upper limit to how big the computer number can be. Since the program has a limited size, the computed number also must have a limited size. Thus the core question is whether this problem is unsolvable or just very hard.
Player (80)
Joined: 8/5/2007
Posts: 865
Warp wrote:
Bobo the King wrote:
Since, for starters, all ~1000 digit numbers are computable under that criterion, I imagine the answer is very large. To throw out a guess, perhaps one million or so digits.
I'm not asking what the number is (because it's practically, perhaps even provably, impossible to calculate). I'm asking whether the problem is unsolvable or simply very hard. One could naively think "it's not unsolvable; simply go through every possible valid C++ program of 1000 characters or less, and for each one see which numbers it outputs, if any". However, that method might not be usable because you may encounter the halting problem: You cannot know if a given program will ever halt. Of course the halting problem is related to programs of any arbitrary size. Here we are talking about programs of a limited size, so perhaps the halting problem doesn't apply? Perhaps it's possible to simply list which programs halt and which won't? Of course then there's the problem of programs that don't halt but do print numbers. If they just keep printing numbers, can you ever find out which ones? An unbounded version of the problem is probably unsolvable. In other words, if we modify the problem like this: "For any given n, what is the smallest positive integer that's not computable by a C++ program of at most n characters?" Here we probably stumble across the halting problem outright.
Ah, I see. I think you're right, however, that we could simply list all programs with 1000 or fewer characters and analyze whether they halt or not. I see no reason why that shouldn't be possible. Then, as you say, just look at the numbers output. (I assume you're talking about programs that output one number. We would want to disallow, for example, while true do print i; i++; end. Excuse my pseudocode.) I think it is interesting that this seems to imply that the halting problem is solvable for any program of finite length. It's only when you allow programs of infinite length (which are physically unrealizable) that you run into problems. Any experts on this topic?
Player (146)
Joined: 7/16/2009
Posts: 686
It is definitely possible to take any arbitrary program and analyze it so see if it halts or not; the halting problem is that there is no algorithm to determine this. Programs of infinite length aren't necessary for that. So while, to me, it seems "possible" to analyze all programs of length N and determine whether they halt and if so, what number they output, the halting problem means that you can't do this algoritmically. In other words, I think the answer to Warp's question is "simply extremely hard".
Player (80)
Joined: 8/5/2007
Posts: 865
Scepheo wrote:
It is definitely possible to take any arbitrary program and analyze it so see if it halts or not; the halting problem is that there is no algorithm to determine this. Programs of infinite length aren't necessary for that. So while, to me, it seems "possible" to analyze all programs of length N and determine whether they halt and if so, what number they output, the halting problem means that you can't do this algoritmically. In other words, I think the answer to Warp's question is "simply extremely hard".
Yeah, but what is the human thought process (as it applies to analyzing halting problem) other than an extremely complex algorithm? I'm not convinced that our thinking "transcends algorithms" and so the distinction is irrelevant. I agree with your answer, however.