Eight queens经典回溯算法
def conflict(state, nextX): print('state:',state) nextY = len(state) for i in range(nextY): print("i=",i) if abs(state[i]-nextX) in (0, nextY-i): print('confict') return True return False def queens(num=8, state=()): for position in range(num): print('***') print('pos:',position) if not conflict(state, position): if len(state) == num-1: print('back to 1st_space_____________position:',position) yield (position,) else: print('Into 2nd_space__________recursive') for result in queens(num, state + (position,)): print('membersihip position:',position) print('membership result:',result) yield