Page 1 of 1

#1 Can you follow instructions?

Posted: Thu Jun 22, 2006 4:32 pm
by Destructionator XV
Follow these instructions, post your response (what it tells you to write). I want to see what people do.

1) Write your name.
2) Read all other instructions before continuing.
3) Calculate 12 * 12 + 6, and write the answer under your name.
4) Write lol at the end of every line you write from here on.
5) Write your birthday on a new line.
6) Ignore instruction 4.
7) Write your favourite colour on a new line.
8) Calculate the energy required for a one kilogram mass to escape Earth's gravitational pull.
9) Ignore all instructions except instruction 1.

Ok, have at it!

#2

Posted: Thu Jun 22, 2006 4:36 pm
by Batman
Do you want me to ruin it for you, or shall I abstain?

#3

Posted: Thu Jun 22, 2006 4:37 pm
by Hotfoot
works better in a format that doesn't allow editing while writing

#4

Posted: Thu Jun 22, 2006 4:37 pm
by Shark Bait
shark bait

Edit: yeah i know i ruined the joke by being a smart ass and just litteraly doing what you said...

#5

Posted: Thu Jun 22, 2006 4:47 pm
by Destructionator XV
Batman wrote:Do you want me to ruin it for you, or shall I abstain?
You won't ruin it for me, when I post how I would do that, you will see what I mean. Just post how you do it.

#6

Posted: Thu Jun 22, 2006 4:50 pm
by Batman
In that case-
Batman

#7

Posted: Thu Jun 22, 2006 4:56 pm
by Shark Bait
damn now that i think about this it gets me caught in a really weird loops where you ignore and dont ignore instructions...

#8

Posted: Thu Jun 22, 2006 5:07 pm
by Narsil
They never get me with those.
Daniel-James MacFarlane

#9

Posted: Thu Jun 22, 2006 5:09 pm
by Mayabird
Mayabird

And people wonder why I take tests backwards (like, last question first, going towards the first question). There've been times where one question is partially answered by another question.

#10

Posted: Thu Jun 22, 2006 5:16 pm
by Destructionator XV
Mayabird wrote:And people wonder why I take tests backwards (like, last question first, going towards the first question). There've been times where one question is partially answered by another question.
I used to do that all the time. Very very useful strategy, because as you said, often later questions will have answers for eariler ones, or at the very least, you can form a progression of how the test is going to remind you of something you forgot (like in math tests, first question is something simply like polynomial integration, last question is integration of the product of trigometric funtions, and question in the middle that looks hard is actually easy (like find antiderivitive of sin(x) / tan(x) dx ), since test writers don't often toss multiple hard ones at you. The pattern is useful in making it easy.

#11

Posted: Thu Jun 22, 2006 5:37 pm
by Destructionator XV
Alright, I will finally answer/
Destructionator
150
Nov 21, 1986 lol
I like all of them!
WHA?! Let me explain why I did this. I will write the instruction I executed in bold, my output in normal text, comments in blue and errors in red.

1) Write your name.
Destructionator.
Simple enough.

2) Read all other instructions before continuing.
It said read the instructions, not execute them. Even if it did, how would I know which ones to execute? Explaination continues as we go on

3) Calculate 12 * 12 + 6, and write the answer under your name.
150
Again, a simple operation.

4) Write lol at the end of every line you write from here on.
Alright, sets a flag in my brain to do this.

5) Write your birthday on a new line.
Nov 21, 1986 lol
Simple enough, and remember the flag from instruction 4 is still set, so the lol is printed after it.

6) Ignore instruction 4.
Ambigious instruction, guessing.
This one gave me an error, but I guessed it meant to clear the lol flag that #4 set up. Why is it an error? It says ignore the command, but it has already been executed; it is no longer possible for me to jump over it when I see it.

7) Write your favourite colour on a new line.
But, I like all colors!
I like all of them!
Again, simple printing of information.

8) Calculate the energy required for a one kilogram mass to escape Earth's gravitational pull.
Temporary value not used; discarded.
This one told me to cauclate the number, but not write it down, so the calculated number remains unused.

9) Ignore all instructions except instruction 1.
Now, it tells me to ignore them, but how was I to know to execute this instruction first? Surely they were numbered for a reason. If this one was to be executed sooner, it should have been given sooner. Sure, I knew it was there, as an effect of reading it in instruction 2, but I had no way of knowing it was supposed to be executed first. If you do this one first, why didn't you print your birthday first? Or do the math first? Either one of those choices would have been just as right as doing this one first, or should I say just as wrong?

Segmentation fault
Never received a stop command, so I kept going forward in memory looking for the next instruction, and ended up dumping core. Oh well.



See how the most common response here is wrong? If you do the last one first, then why not execute them in any arbitrary order? It is not logical to do what so many think is right with these.

Also, if I were a computer programming teacher, I would give this test to my students first day, to see if they think logically. That would be interesting pointing out to them how wrong the common interpretation is.

#12

Posted: Thu Jun 22, 2006 8:47 pm
by Brother-Captain Gaius
Ha, as I was reading it I thought "Hey, this would be a good programming excercise to think like a computer," but it seems like that was Destructionator's intention.


But, in the context of the OP, it never specified to do things as a compiler might. I would argue that in this case simply writing one's name is correct, as humans are not generally expected to take such trivial concerns as the numbering and precise wording of the list utterly literally, as well as drawing strict conclusions from limited data, again as a compiler might.

Of course, if it was a joke all along (as it is in Testing I suspect it is) playing on these sort of "LRN 2 REED INSTRUCTIONZ NOOBZ" tests, then by all means run with it.

#13

Posted: Thu Jun 22, 2006 9:24 pm
by Destructionator XV
Brother-Captain Gaius wrote:Ha, as I was reading it I thought "Hey, this would be a good programming excercise to think like a computer," but it seems like that was Destructionator's intention.
With all the coding I've done, thinking like this is more and more how I think myself, and learning to think like this really is an important lesson for newbie programmers to learn.
But, in the context of the OP, it never specified to do things as a compiler might.
It never told you otherwise either though. What would be your justification in doing it some other way? Why skip to the last instruction instead of going somewhere else? It starts to become arbitrary: there is no rational reason to pick the lazy one apart from the others.

What if it was reworded like this:

1) Write your name.
2) Read all other instructions before continuing.
3) Skip instruction 4 and 5.
4) Skip instruction 3 and 7.
5) Write "wtf" under your name.
7) Write "whoa".
8) END

What would you do then? Do 4 first, hence skipping 3 and 7? Or skip 4 and 5? Would you write whoa and wtf even if you do run 3 or 4?

Doing it out of sequence does not make sense; it introduces too many ambiguities and arbitrary decisions.
I would argue that in this case simply writing one's name is correct, as humans are not generally expected to take such trivial concerns as the numbering and precise wording of the list utterly literally, as well as drawing strict conclusions from limited data, again as a compiler might.
But, is doing it any other way still following the instructions correctly? I am obviously arguing it does not.
Of course, if it was a joke all along (as it is in Testing I suspect it is) playing on these sort of "LRN 2 REED INSTRUCTIONZ NOOBZ" tests, then by all means run with it.
eh, I put it in testing because it was at first simply going to be a quiz for my own curiosity. I wasn't going to actually argue the point here, but since I am I might move the thread in a bit (I put alot of crap in testing, not sure if I want spam to laugh at or a serious discussion of some sort..).

#14

Posted: Thu Jun 22, 2006 9:57 pm
by Kreshna Aryaguna Nurzaman
Destructionator XV wrote: What if it was reworded like this:

1) Write your name.
2) Read all other instructions before continuing.
3) Skip instruction 4 and 5.
4) Skip instruction 3 and 7.
5) Write "wtf" under your name.
7) Write "whoa".
8) END
Kreshna
whoa

:wink:

#15

Posted: Thu Jun 22, 2006 10:45 pm
by Stofsk
New one:

Stofsk
wtf
END

Though I'm not sure now. Is this one of those 'there is no wrong answer' kind of things? Or have I screwed it and appeared dumb?

Want me to move it, btw? I feel a need to earn my keep as a super-moderator.

#16

Posted: Thu Jun 22, 2006 10:50 pm
by Destructionator XV
Stofsk wrote:Though I'm not sure now. Is this one of those 'there is no wrong answer' kind of things? Or have I screwed it and appeared dumb?
There is a right answer, which I will explain tomorrow (almost 1am here, and I am going to bed very soon)
Want me to move it, btw? I feel a need to earn my keep as a super-moderator.
Yeah, I think it has earned its stay. Move it to wherever you think it belongs. (I'm honestly not sure which forum is best)

#17

Posted: Thu Jun 22, 2006 11:05 pm
by Stofsk
Lock pending move. Stand by.

whee I'm a poser

Moved to Science & Logic because this is really a logic puzzle.

#18

Posted: Fri Jun 23, 2006 12:56 pm
by JEAP
The "before continuing" in 2 is the improtant part, isn't it? You must read all the instructions before continuing with this exercise. Therefore you will read instructions 3-9. You will reach 9, having followed instruction 2, reading all the instructions before continuing, and see that instruction 1 is the only one that had to be done.

Or atleast thats how I see it as a non-programmer.

#19

Posted: Fri Jun 23, 2006 1:47 pm
by Something Awesome
Humans don't always operate strictly in a linear fashion, anyway. I remember watching an episode of Nova about Chaos Theory, and they applied it to practical purposes like in the medical field. They said that our brains work in a random fashion, and that's how we solve problems: we randomly stumble across the solution.

Since we can work nonlinearly, we can see the list of instructions and see each item at once, before we execute any of them. Instruction 9 tells us to ignore all except 1, and since we haven't executed any yet, we assume that this one is going to take priority. And in fact, we could execute multiple instructions simultaneously. No instruction contradicts it by advocating ignoring Instruction 9, other than itself. But let's just ignore that for now.

Also, "ignore" has more meaning to us as humans than it does to a computer program because we have the ability to not only see the instruction before it comes up, but also to reason and try to infer the intent of the instructions' author. Instruction 9 is assumed to take priority because it tells us to disregard all others except 1. If the author had wanted me to execute Instruction 7, 9 would have stated so. If Instruction 6 told us to ignore Instruction 9, though, we would have a contradiction that would have to be resolved, most easily by following a linear process.

I feel like I'm rambling and repeating myself, so I'll stop now.

#20

Posted: Fri Jun 23, 2006 7:47 pm
by Destructionator XV
Something Awesome wrote: Also, "ignore" has more meaning to us as humans than it does to a computer program because we have the ability to not only see the instruction before it comes up, but also to reason and try to infer the intent of the instructions' author.
So can computers. Modern processors pref etch [annoying server issue breaking up my word] the following instructions and can calculate with pretty good accuracy what is going to happen (jumps and branch prediction) and hence be ready to do the instructions faster.

So consider you had these instructions:

1) Turn on your stereo.
2) Adjust the volume.
3) Open the tape door
4) Put the tape in the deck
5) Close the door.
6) Press play.

If you read ahead and say #4, you would get the tape ahead of time, so you can open the door and put it in very quickly. Computers can do the same thing: read ahead, see what memory is going to be accessed, and pref etch [annoying server issue breaking up my word] it into the cache.

But, just because it knew what was coming didn't mean it decided to start doing the instructions themselves out of order, because that would possibly lead to error. Whomever wrote the instructions put them in that order for a reason, and deciding to start skipping steps is surely not intended.

Having an ignore instruction at the end might make sense if you were having to do it again, like in the above example, it might add "next time, skip steps 1 and 2", which would make sense, since it was already turned on and volume adjusted. But saying that at the end of just one iteration does not make sense, and should be ignored for consistency.