Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

N-QueensA: Write a brief Python program to randomly generate a solution to the N-Queens problem (described on pages 71-72). Your program should: Prompt the user

N-QueensA: Write a brief Python program to randomly generate a solution to the N-Queens problem (described on pages 71-72). Your program should:

Prompt the user for a value for N (for an NxN board)

Generate a randomized candidate NQ solution

Count the number of conflicting pairs of queens

Repeat the previous two steps until you get a solution

Print the solution and the number of iterations the solution took

Submit your file as NQueensA_yourInitials.py (e.g. NQueensA_BRP.py), and note in the Submission Comments in D2L the largest n-queens solution it was able to generate in reasonable time (start at n=4 and work up) and how many iterations it took.

Pseudocode:

# NQueensA_yourInitials.py import random # ask the user for an N value # generate a candidate NQ solution [random.randint(0,n-1) for x in range(n)] # define a function to count number of conflicts() # while number of conflicts in NQ > 0 # randomize (or improve) NQ # print NQ # print number of iterations 

N-QueensB: Write a brief Python program to generate a more-informed random solution to the N-Queens problem (described on pages 71-72). Your program should:

Prompt the user for a value for N (for an NxN board)

Generate a smarter randomized candidate NQ solution (unique rows & columns)

Count the number of conflicting pairs of queens

Repeat the previous two steps until you get a solution

Print the solution and the number of iterations the solution took

Submit your file as NQueensB_yourInitials.py (e.g. NQueensB_BRP.py), and note in the Submission Comments in D2L one 8-queens solution it was able to generate and how many iterations it took.

Finally, run both programs A and B and note the largest N each program can solve in reasonable time, along with the number of iterations taken.

BONUS (10pts) - make your NQ app "pretty print" the nxn board of queens as follows (and include in your D2L submission):

n=4, NQ = [1,3,0,2]:

-Q-- ---Q Q--- --Q- 

Pseudocode:

# NQueensB_yourInitials.py import random # ask the user for an N value # generate a candidate NQ solution  list(range(n)) # define a function to count number of conflicts() # while number of conflicts in NQ > 0 # randomize (or improve) NQ  shuffle! # print NQ # print number of iterations 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

Develop skills for building positive relationships.

Answered: 1 week ago

Question

Describe techniques for resolving conflicts.

Answered: 1 week ago

Question

Give feedback effectively and receive it appropriately.

Answered: 1 week ago