From c24bf0c444d1977cc2ca660853699343bac8263b Mon Sep 17 00:00:00 2001 From: ahtazaz <57252754+ahtazaz@users.noreply.github.com> Date: Tue, 27 Oct 2020 17:28:33 +0500 Subject: [PATCH 1/2] Create Nqueen.py --- Nqueen.py | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 Nqueen.py diff --git a/Nqueen.py b/Nqueen.py new file mode 100644 index 0000000..6079462 --- /dev/null +++ b/Nqueen.py @@ -0,0 +1,163 @@ + +# Python program to solve N Queen +# Problem using backtracking + + + +global N + +N = 4 + + + +def printSolution(board): + + for i in range(N): + + for j in range(N): + + print board[i][j], + + print + + + + +# A utility function to check if a queen can +# be placed on board[row][col]. Note that this +# function is called when "col" queens are +# already placed in columns from 0 to col -1. +# So we need to check only left side for +# attacking queens + +def isSafe(board, row, col): + + + + # Check this row on left side + + for i in range(col): + + if board[row][i] == 1: + + return False + + + + # Check upper diagonal on left side + + for i, j in zip(range(row, -1, -1), range(col, -1, -1)): + + if board[i][j] == 1: + + return False + + + + # Check lower diagonal on left side + + for i, j in zip(range(row, N, 1), range(col, -1, -1)): + + if board[i][j] == 1: + + return False + + + + return True + + + +def solveNQUtil(board, col): + + # base case: If all queens are placed + + # then return true + + if col >= N: + + return True + + + + # Consider this column and try placing + + # this queen in all rows one by one + + for i in range(N): + + + + if isSafe(board, i, col): + + # Place this queen in board[i][col] + + board[i][col] = 1 + + + + # recur to place rest of the queens + + if solveNQUtil(board, col + 1) == True: + + return True + + + + # If placing queen in board[i][col + + # doesn't lead to a solution, then + + # queen from board[i][col] + + board[i][col] = 0 + + + + # if the queen can not be placed in any row in + + # this colum col then return false + + return False + + +# This function solves the N Queen problem using +# Backtracking. It mainly uses solveNQUtil() to +# solve the problem. It returns false if queens +# cannot be placed, otherwise return true and +# placement of queens in the form of 1s. +# note that there may be more than one +# solutions, this function prints one of the +# feasible solutions. + +def solveNQ(): + + board = [ [0, 0, 0, 0], + + [0, 0, 0, 0], + + [0, 0, 0, 0], + + [0, 0, 0, 0] + + ] + + + + if solveNQUtil(board, 0) == False: + + print "Solution does not exist" + + return False + + + + printSolution(board) + + return True + + +# driver program to test above function +solveNQ() + + From ea8a0cc6b78ce7390e6b9c2304cbcd522a94abbc Mon Sep 17 00:00:00 2001 From: ahtazaz <57252754+ahtazaz@users.noreply.github.com> Date: Tue, 27 Oct 2020 17:30:21 +0500 Subject: [PATCH 2/2] Create Random.py --- Random.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 Random.py diff --git a/Random.py b/Random.py new file mode 100644 index 0000000..a035d9f --- /dev/null +++ b/Random.py @@ -0,0 +1,6 @@ +# Program to generate a random number between 0 and 9 + +# importing the random module +import random + +print(random.randint(0,9))