1 / 9

Please snarf the code for today’s class.

Please snarf the code for today’s class. Then think about the famous 8-Queen’s Puzzle. The question is: is there a way to arrange 8 queens on a (8x8) chessboard so that no 2 queens can attack each other (queens can attack horizontally, vertically, and diagonally).

dobry
Télécharger la présentation

Please snarf the code for today’s class.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Please snarf the code for today’s class. Then think about the famous 8-Queen’s Puzzle. The question is: is there a way to arrange 8 queens on a (8x8) chessboard so that no 2 queens can attack each other (queens can attack horizontally, vertically, and diagonally) The above board is 2 Queens short of a solution. Find the solution!

  2. So how could we solve this problem computationally? • I could solve this problem with a couple of carefully constructed loops • I think recursion is needed to solve this problem • I think stacks and queues are needed to solve this problem • I think some new secret technique is needed that I’m guessing will be revealed today

  3. The Basic Recursive Backtracking Solution • I start at a particular state, where I have to make a decision from a list of options • For each option: • Try deciding on that option • UPDATE THE STATE • Recursively call myself to try all subsequent paths from that point • If I find a solution…do something (maybe return, maybe increment a counter) • UNDO the state change I just made • At this point I’ve done everything I can do in this state

  4. Recursive Backtracking • You will be able to describe the basic approach of recursive backtracking • We will look at a very simple recursive backtracking problem. • You will solve a slightly more complicated recursive backtracking problem • We will go over a solution to the n-queens problem, and you’ll edit the solution

  5. Go to codingBat.com/java/Recursion-2 • Solve groupNoAdj • If you finish that one, try and solve splitArray (this can be solved using a simple for loop and groupSum or by using a separate helper function) • Put the code into a file in the code you snarfed for today – you’ll submit that directory via ambient

  6. Modify the code of 8-Queens • First figure out how to modify the code to solve the 8 Rooks problem (Rooks can only attack horizontally and vertically, not diagonally). Get your code working and then change it back to queens when you’re done. • Modify the code to count the number of solutions to the 8 Queens problem. There should be 92 solutions. • When you’re finished, submit the result via ambient

  7. Recursive Backtracking • You will be able to describe the basic approach of recursive backtracking • We will look at a very simple recursive backtracking problem. • You will solve a slightly more complicated recursive backtracking problem • We will go over a solution to the n-queens problem, and you’ll edit the solution

More Related