Beispiel #1
0
def queens_problem(n):
    board = make_board(n)
    return conjoin(
        flatten(exactly_one(row) for row in board),
        flatten(at_most_one(col) for col in transpose(board)),
        flatten(at_most_one(diag) for diag in rising_diagonals(board)),
        flatten(at_most_one(diag) for diag in falling_diagonals(board)))
Beispiel #2
0
def queens_problem(n):
    board = make_board(n)
    return conjoin(
        flatten(exactly_one(row) for row in board),
        flatten(at_most_one(col) for col in transpose(board)),
        flatten(at_most_one(diag) for diag in rising_diagonals(board)),
        flatten(at_most_one(diag) for diag in falling_diagonals(board)))
Beispiel #3
0
 def make_slot():
     slot = [make_variable() for i in range(n*n)]
     problem.extend(exactly_one(slot))
     return slot
Beispiel #4
0
 def make_slot():
     slot = [make_variable() for i in range(n * n)]
     problem.extend(exactly_one(slot))
     return slot