-
Another C challenge
Greetings All !
Want to know what Towers Of Hanoi Problem is ??
Check Out this awesome site
http://www.superkids.com/aweb/tools/logic/towers/
Last year i had to write a program in C which solves the Towers Of Hanoi Problem Using Recursion as a part of my assignment. I tried my best to find a logic. I could manage to visualize solving the problem with 4 disks.I got a headache trying to find the logic !!.This code is available all over the net.But copying that wouldn't make my intellectual conscience happy.I know there that there are a lot of talented people out there in AO.Code this problem and explain the working ... if u can :D
-
arrrgh! so hard to find the real solution for it, I only have one move left and f@##$ck! I couldnt do it!
-
Hehe... takes some patience and moving them pieces around. I got it on 7 disks. Took me about 20 minutes. That said, I don't think I could necessarily explain how I did it... :D (although I will note that I didn't use "Solve the Puzzle" button).
-
Believe it or not ! .. There's actually a program in C which solves this problem using recursion.
Coding this is considered to be super elite !!
-
well, it isn't really that hard... as you see in the link you gave us, there is a "solve" button, so this means that they already coded it. however, i do not have the time (and interests) to solve this problem, cause although it isn't that hard, it will take a lot of time ;)
-
I solved it, I don't know how long it took me, probably somewheres between 15 and 25 minutes, it wasn't that hard to do, although it is indeed hard to explain how to do it. Basicly I moved two at a time, well, not at a time, but I mored a little one to one spot, and a bigger one to another, I placed the littler one on the bigger one, and replaced an even larger one on the open tower. Then I moved the smallest to the biggest tower, and moved one that was one step lower on top of the one that is one step bigger, the replaced the smallest on the tower of two (making it a tower of three) that I had made. I basicly did that for all of them, there was probably more to it, but I'm sure you get the general idea how I myself solved it.
microburn
-
Microburn... do u think its possible for you to make this work using recursion ? ..
Its this "recursion" thing that really screws my head up !! :confused:
-
I may be able to do it in java. I solved it by hand, but sheesh, how would you even know? You almost have to do it in gui just to track it. I think that might be beyond me to come up with a pattern to solve it. I guess maybe the key is to start small and make your way up. I may give it a shot :).
-
22 lines with recursion using c++, not to difficult if you think about it :)
-
You don't need a GUI to keep track of it. Instead, assign a "weight" to each block. That is the way the computer "sees" it.
The way to do this is to build multiple mini-towers. Pretty much what Microburn said. I think I'll take this challenge on after I play the game a bit more...
Edit: I can solve 7 in under 14 minutes while making mistakes, talking on MSN, and eating... I've come to notice some sort of even/odd pattern, but I haven't manged to form any definate rules to when it works or not...
Edit: Down to 10 minutes and I have found some sort of pattern... more playing before I get to coding...
-
Erm 7 minutes 57secs here lol..I timed myself;)
too lazy to do the coding though...isnt diffcult at all really...
-
I donno .. i solved 7 disks on the site ... managed to mentally solve 4 disks ..But i can't find a
RECURSIVE pattern !! ...
-
dont think of it in terms of the disks thats some advice
my solution is deffinatly recursive, so the solution exists iterative seems to be a bit harder actually
-
Well, if you study how the bricks are de-built and re-built, you would notice some sort of pattern. I've attached a screen capture that depicts doing a near perfect job with 6 of the 7 discs. I was going to include the 7th one, but I got lost and confused and didn't feel like redoing it. So think of it as a solution to the 6 disc problem. Time: 2:26. Practice: A total of ~8 tries including my first try ever.
As you watch, notice how the combinations start out pretty easy...
--------------------
Building a tower of 2 - move 1st brick to empty pole that won't be the base. Move the 2nd brick to the pole that will be the base. Put the 1st brick on the 2nd brick.
Building a tower of 3 - Build a tower of 2 where the tower of 3 won't be. Move the 3rd brick to an empty pole as the base. Move the 1st brick from the tower of 2 onto an empty pole. Put the 2nd brick from the tower of 2 on the 3rd brick. Move the 1st brick onto the 2nd brick.
Building a tower of 4 - Build a tower of 3 where the tower of 4 won't be. ... Note, this one doesn't acturally follow the above rules of 2 and 3 disc towers. The top disc of the tower of 3 will go on to the base of the tower of 4, instead of an empty pole...
--------------------
It is highly recursive. It is also even and odd. And probably some combination of building and de-building depending on how many discs there are. Hopefully watching me solve some of this gives some insight into how to solve this. I have tried coding it, but am unable to find a sane way to store the data, and don't have the time to continue it. May my video help you understand it :)
BTW, I haven't really reviewed the video in-depth to see if I made any blantly obvious mistakes. I just cut it after I built a tower of 6 because my tower of 7 was a mess...