python实现八皇后
额,暑假想学学python,所以就边学边练习,就着《算法导论》一块了,这是大二时算法的一道考试题,以前没意识到算法的重要性,现在才开始恶补,鄙视一下自己。实现很简单,就是用了个递归,代码如下,留作备份:
#!/usr/bin/python # -*- coding: utf-8 -*- import sys QueenSize = 8 count = 0 site = [0 for a in range(QueenSize)] board = [[0 for a in range(QueenSize)] for b in range(QueenSize)] def Queen(n): if n == QueenSize: OutPut() return else: for i in range(0, QueenSize, 1): site[n] = i if IsValid(n): Queen(n + 1) def IsValid(n): for i in range(0, n, 1): if site[i] == site[n]: return False if abs(site[i] - site[n]) == (n - i): return False return True def OutPut(): j = 0 global count count = count + 1 print "第%d种输出为:" %count for i in range(0, QueenSize, 1): board[j][site[i]] = 1 j = j + 1 for i in range(0, QueenSize, 1): for j in range(0, QueenSize, 1): print "%d " %board[i][j], print for i in range(0, QueenSize, 1): for j in range(0, QueenSize, 1): board[i][j] = 0 Queen(0)