-
Posts
871 -
Joined
-
Last visited
-
Days Won
7
Content Type
Profiles
Forums
Events
Gallery
Blogs
Everything posted by Prime
-
Over the years, this puzzle comes in and out of fashion. I don't know who originally came up with it and what they meant. However, "treadmill matches the speed of the plane exactly" is ambiguous and does not seem to present a puzzle. If it means that the belt and the plane match their speed with respect to each other -- that is meaningless. Such is always the case, regardless whether the treadmill moves at all, and with what speed. If the belt matches planes speed with respect to the ground, but in the opposite direction -- there is no "puzzle" in it. The plane just has to overcome a bit of additional friction of faster rotating and/or skidding wheels. If its engines (of any kind) have enough power (and we expect, they do), then what's there to solve? On the other hand, if the belt matches the rotation of the wheels (no skidding is implied) -- that sends people on a cerebral jorney, considering all the irrelevant stuff, like type of engines, air speed/ground speed, etc.. While overlooking the fact that the puzzle practically states that the plane remains stationary. Though, difficult, if not impossible, it would be to create those conditions in practice. The version of that puzzle that I heard quite a while ago, was very careful to state that the belt was designed to match the rotation of the wheels.
-
Now let's write a program that has 1. One or more "Head", or START statements in the beginning. 2. One or more "Tail", or END statements at the end. 3. Produces and exact and functional copy of itself. The language is as Vimil has specified with few modifications: 1. START or HEAD statement must appear at the beginning of the program and may only be preceded by other START statements. 2. END or TAIL statements must appear at the very end and may not be followed by statements other than another END or TAIL. 3. DO(n) statement executes the command, which immediately follows it, n times. 4. PRINT statement prints everything on the line below. No other commands may follow PRINT on the same line. Everything on the line below is treated only as the text, which must be printed. Every time a PRINT statement is executed, it sends its output to a new line.
-
"x" is a pointer, if I ever saw one. It points to the relative address of a line. At the very least it is a variable. Let's take this new challenge and try to complement our program with head and tail. For without tail, no life form is complete. I'll specify conditions in the following post.
-
I think the OP misstated the problem. The way I heard it, the treadmill matches the speed of the plane's wheel rotation exactly -- not the planes speed. That way the puzzle practically states that the airplaine remains stationary. The Myth Busters' experiment completely failed to create those conditions. As you pull the runway from under the plane, its wheels compensate an rotate faster. It would be very difficult to create conditions stated in the puzzle. We'd have to use a chain for the treadmill and sprackets for the wheels. And the speed of the treadmill should be tremendous. The friction in the axels of the wheels would have to equalize the thrust of the jets. Fortunately, we need not bother to make the experiment, since the puzzle impicitly states that the plane remains stationary.
-
Does photon travel with the speed of light through the sun's core? Can it get to the surface at all? I was brought up to believe that light does not travel through non-transparent obstacles.
-
That would do(it)! The solution is almost identical to the one I had in mind. The copy is ready to run and produce more copies.
-
That's clearly a reference to outside the program. Besides, how can a program "be sure" about what's on the screen? All I am asking for is a self-replicating software. A basic building block of a new digital life form, future civilization... It must be simple. The newly created copy must be able to repeat the same. Do regular live organisms rely on their copy or reflection stored somewhere for reproduction, or do they carry their own "blueprint"?
-
I think it is a good and necessary enhancement. Here is a little twist on the idea: The categories need not be mutually exclusive. So here are some categories to start with: ALL NEW PUZZLES (same the present New Puzzles forum) UNSOLVED PUZZLES MYSTERIES WORD PUZZLES MATH PUZZLES (algebra, geometry, calculus, computer programming) LOGIC PUZZLES GAMES/BOARD Naturally, the UNSOLVED category, as well as other categories may require some consensus. I suggest using the board of Moderators and VIPs for that. Since the same category of all new puzzles, would remain, I don't see why this suggestion would draw any objections from members. The real issue is the programming effort. I'm guessing that would involve: 1. Change to Puzzle Database to add a puzzle type field. (Or reuse some of the available fields.) 2. Add code to display new categories, including new quireies to extract puzzles based on puzzle type. 3. Add code to implement mechanism for assigning a type to a puzzle. The last change is not entirely clear. I don't think simply posting new puzzle to a different forum, as it is done presently, is a viable solution. (You can never rely on individual posters' voluntary compliance.) So I would add a new field "puzzle type" to fill out with each new post along with the title and description. Then there would be a need to run one time conversion, adding new field to all existing puzzles. It is quite a bit of programming effort there. So a related suggestion to Rookie: find some way for programmer forum members to lend help.
-
That does not print its copy. The command line is not shown, nor it would be printed. The OP stated: no references outside the program and no use of pointers. Specifically, it said no file reading. Awk is based on file reading. I'm afraid this puzzle is misunderstood by computer programmers. The problem does not ask to look for some programming language with implied file reading and/or implied pointers. What problem asks is basically this: Suppose you have PRINT argument(s) command, wich prints the arguments that follow it. How do you write a program that would print an exact copy of itself? The output should include the name of the command PRINT and all the argumets that followed it. The difficulty is that argument(s) can not be the same as PRINT argument(s). The command name PRINT is on the outside of its arguments. The correct solution must be understandable to a person not familiar with computer programming.
-
There is a correct solution somewhere there, hiding deep in the forest of backslashes. All essential elements are there. Printing head and tail of the program and avoiding infinite regress. Alas, it is not easy to understand for non-programming folk and for programmers as well. And it does not seem to produce an exact copy, on the account of those backslashes and quotes. If I understand right, backslash is an "escape" character allowing to assigh values of special characters to variables. Then I see the output of the program as following: x = "PRINT "x=\"".x. "\""; PRINT x; and so on. If we compare that to the first line of the program, we find some slashes are missing. Let me try and make a simplifed form of that solution. Minding all those technical difficulties with quotes and statement delimeters, let me narrow down the OP some. Let's write a program, which makes an exact copy of itself WITHOUT USE OF VARIABLES as well.
-
If we go that route, why not define PRINTI statement, which can read our intentions and print what we meant? The suggestion to specify your own language was meant to make the problem more general and suitable to non-programmers. The language must not be geared specifically to solving this problem. Assume, PRINT statement simply prints the argument(s) immediately following it. Treat PRINT as a language statement, not a function. Variables should be of traditional kind too. They should allow assisgnment of different values. All constants must be defined within the program. Although your solution would produce the output as required, I have to reject it, because the programming language used is extraordinarily specialized. And the "$" variable in your language amounts to a pointer (pointing to the name of the function), or an outside reference, which were explicitly prohibited.
-
If your program were correct, it would print everything you wrote inside the spoiler exactly. As is, its output would be missing the words #include<stdio.h>, main(), printf, not to mention all those quotes and brakets.
-
Your program starts with the word START, whereas the first thing on the printout is x= That's not an exact copy.
-
Write a program that writes an exact copy of itself without using any outside references. You can specify your own programming language. It can define and use variables, assignment, and arithmetic: X = Y + 5, or X = "Myself". It can use decision statements, such as IF, ELSE, SWITCH. It can use any sequence of execution controls, like GOTO, or loops like DO WHILE, DO UNTIL, REPEAT x TIMES. It can use WRITE, or PRINT to produce the output (its own text). However, it cannot READ, nor it can refer to an absolute, or any outside address in memory. For that matter, let's prohibit the use of pointer variables. No solutions over 10 lines long, please.
-
That's the way! There are enough numbers to keep the difference at a minimum.
-
In problem A (the OP) we proved that there may not be any finite limit for the difference between two neighboring squares. This problem (part B) specifies a different kind of population of the infinite sheet. It implies that for that type of population, there is a finite number k such that it is possible to populate sheet and keep the difference between any two members less or equal to k+1. The tasks are: 1) Find k. 2) Show an arrangement for populating the sheet, such that the difference between any two neighbors does not exceed k+1.
-
In the end, all combinations in poker are constructed from 5 cards only. 6th card cannot be used, even to break a tie. 5 of a kind beats straight flush. Natural Ace beats Joker in tie-breaks. So whoever got flush with natural Ace wins. Otherwise, second "unnatural" Ace breaks the tie. Those are the rules that I remembered. I make no claim they are "official" rules. Interesting variation, when Joker is among the five face-up cards on the table. There is a possibility for more than one player getting flush with two different suits.
-
OK then. If capture is allowed here is a nice symmetrical set up of 20: Although, there is some ambiguity with respect to capture. If there are just 2 opposing sides -- black and white, like in chess, then after making a capture the knight is attacked only by its own color/side.
-
Thanks. And I am a little hesitant to post part "B" here. It is more difficult, and I can't see the proof yet. I will not be able to follow 3-page long proofs, which people may submit. But since so many people got interested in the problem, here it is, part B, but without any warranty from me, or obligation to follow up. PART B Now let each natural number n on the infinite square-ruled sheet occur exactly n times. Find the largest k such that there always will be neighboring squares with the difference not less than k. Show an example of an arrangement, where the difference between any two neighboring squares does not exceed k+1.
-
-
Now, that is a general proof. It takes an arbitrary reference square and shows that you can construct an area around it for which requirement to keep the difference of less than "m" between any two neighboring squares fails. Small correction: there are at the most 2mn - 1 available numbers for the area, not 2(m+1)n as you estimated. But that is even better for your proof. Here is an illustration and slight re-wording:
-
Upon further reflection, it is possible to put 8 queens on the board. Cannot do more than 8 (same proof as for rooks post #13). As for the proof that we can place 8 queens, we now have an example, which is a proof.
-
Several proofs posted on this topic zeroed in on the essence of the problem. I feel, however, that all of them rely on a method for filling out the infinite sheet. Here is a solution that does not: