
The problem
Write a program that inputs two integers n and k, where n>=k. Your program should calculate the number of different ways that k bishops could be placed on an nXn chessboard. Structure your program using the backtracking scheme that we have used for the eight queens problem. What needs to be modified is the “OK” function.
Input
Your main program should loop asking the user for values of n and k.
Output
Each time through the loop, output n, k and the number of configurations. Program Termination The program will terminate if the user enters a value of -1 for n.
Since you have not provided your language preference, I am providing the code in C++
CODE
=================
/*
Write a program that inputs two integers n and k, where n>=k. Your program should calculate
the number of different ways that k bishops could be placed on an nXn chessboard.
Structure your program using the backtracking scheme that we have used for the eight queens
problem. What needs to be modified is the “OK” function.
*/
#include <cstdlib>
#include <iostream>
using namespace std;
int k, n; //number of bishops, size of the board
//q is an array of squares, where b is a bishop and q[b] is the square the bishop occupies
bool ok(int q[], int b, int n){
//identify the row and column the bishop is in
int row = q[b]/n, column = q[b]%n, current_row, current_column;
for(int i=0; i<b; i++){ //for every bishop
current_row = q[i]/n;
current_column = q[i]%n;
//diagonal test
if(abs(row-current_row)==abs(column-current_column)) return false;
}
return true;
}
void backtrack(int &b, int count){
b--;
if(b==-1){
cout << k << " bishops can be placed on an " << n << " by " << n << " chessboard in " << count << " different ways.";
exit(1);
}
}
int vectors(){
while(true){
//User input
cout << "Enter n: ";
cin >> n;
cout << "Enter k: ";
cin >> k;
if(n<0) break;
//Solution/backtracking algorithm
int* q = new int[k]; //q[bishop] is a square on the n*n grid
int count = 0, b = 0, t;
q[b] = 0;
while(true){
//until we found all the possible solutions
while(b<k){
//for each bishop
while(q[b]<n*n){
//for each square
if(ok(q,b,n)) break;
else q[b]++;
}
if(q[b] == n*n){
backtrack(b, count);
q[b]++;
continue;
}else{
t = q[b];
b++;
q[b] = t;
}
}
count++;
backtrack(b, count);
q[b]++;
}
}
return 0;
}
The problem Write a program that inputs two integers n and k, where n>=k. Your program...
WRITE A JAVA PROGRAM using STACKS and backtracing to solves the N Queens Problem . The program takes the user's input integer for N and prints out all the solutions for N . The N Queen is the problem of placing N chess queens on an N×N chessboard so that no two queens attack each other. For example, the following is the output for 4 entered for userinput. Output for 4 Queens : 1- * * Q * Q *...
Main objective: Solve the n queens problems. You have to place n queens on an n × n chessboard such that no two attack each other. Important: the chessboard should be indexed starting from 1, in standard (x, y) coordinates. Thus, (4, 3) refers to the square in the 4th column and 3rd row. We have a slight twist in this assignment. We will take as input the position of one queen, and have to generate a solution with a...
Write a C program named space_to_line.c that features a while loop that continuously reads input from the user one character at a time and then prints that character out. The exception is that if the user inputs a space character (‘ ‘), then a newline character (‘\n’) should be printed instead. This will format the output such that every word the user inputs is on its own line. Other than changing the spaces to newlines, the output should exactly match...
can i get some help with this program
CMPS 12B Introduction to Data Structures Programming Assignment 2 In this project, you will write a Java program that uses recursion to find all solutions to the n-Queens problem, for 1 Sns 15. (Students who took CMPS 12A from me worked on an iterative, non-recursive approach to this same problem. You can see it at https://classes.soe.ucsc.edu/cmps012a/Spring l8/pa5.pdf.) Begin by reading the Wikipcdia article on the Eight Queens puzzle at: http://en.wikipedia.org/wiki/Eight queens_puzzle In...
Please write in the Julia Language. Consider a steel rod.
Write a program which will calculate the temperature profile in the
rod using a finite difference scheme. The user should enter the
length of the rod (L), the value for k (= 65 W/mK), and a value for
q in W/m^3. The user should also enter the number of intervals N
,(so you can calculate Δx=L/N). The user should also enter the end
temperatures.
Your program should create the matrix...
Write a Java program to prompt for inputting an integer N, then enter N integers (a loop is needed), print the numbers user entered, and the amount of even and odd numbers (zero is even number). (1) Prompt for the user to input an integer and output the integer. (1 pts) Enter an integer: You entered: 5 (2) Prompt for the user to input N integers, output the numbers entered and the amount of even and odd numbers (9 pts)...
Assignment 2 In this assignment, you will write two short programs to solve problems using recursion. 1. Initial Setup Log in to Unix. Run the setup script for Assignment 2 by typing: setup 2 2. Towers of Hanoi Legend has it that in a temple in the Far East, priests are attempting to move a stack of disks from one peg to another. The initial stack had 64 disks threaded onto one peg and arranged from bottom to top by...
Write a program that reads an integer k from user and finds the number of elements that are divisible by k in the file assignment4.txt. A number n is divisible by k if n = kx for some integer x > 0. You can use the mod operator % to test for divisibility. The file assign4.txt has integer values in the range [0,100 ]. You should use end-of-file controlled loop for this problem. Sample execution is given below. Assume the...
please explain/ comment
3. Eight Queens Write a program that places eight queens on a chessboard (8 x 8 board) such that no queen is "attacking" another. Queens in chess can move vertically, horizontally, or diagonally. How you solve this problem is entirely up to you. You may choose to write a recursive program or an iterative (i.e., non-recursive) program. You will not be penalized/rewarded for choosing one method or another. Do what is easiest for you. 3.1. Output Below...
21 Write a program that asks the user to input the length and breadth of a soccer field, and then computes and returns the number of square meters of grass required to cover the field The formula for the area is the product of length and breadth (5) 22 The following program uses the break statement to terminate an infinite while loop to print 5 numbers Rewrite the program to use a while loop to display numbers from 1 to...