Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.41
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
src /
Python-3.10.14 /
Tools /
demo /
Delete
Unzip
Name
Size
Permission
Date
Action
README
1.02
KB
-rw-r--r--
2024-03-19 22:46
beer.py
566
B
-rwxr-xr-x
2024-03-19 22:46
eiffel.py
3.82
KB
-rwxr-xr-x
2024-03-19 22:46
hanoi.py
4.5
KB
-rwxr-xr-x
2024-03-19 22:46
life.py
8.78
KB
-rwxr-xr-x
2024-03-19 22:46
markov.py
3.6
KB
-rwxr-xr-x
2024-03-19 22:46
mcast.py
2.17
KB
-rwxr-xr-x
2024-03-19 22:46
queens.py
2.22
KB
-rwxr-xr-x
2024-03-19 22:46
redemo.py
5.61
KB
-rwxr-xr-x
2024-03-19 22:46
rpython.py
811
B
-rwxr-xr-x
2024-03-19 22:46
rpythond.py
1.29
KB
-rwxr-xr-x
2024-03-19 22:46
sortvisu.py
19.52
KB
-rwxr-xr-x
2024-03-19 22:46
spreadsheet.py
25.02
KB
-rwxr-xr-x
2024-03-19 22:46
vector.py
1.83
KB
-rwxr-xr-x
2024-03-19 22:46
Save
Rename
#!/usr/bin/env python3 """ N queens problem. The (well-known) problem is due to Niklaus Wirth. This solution is inspired by Dijkstra (Structured Programming). It is a classic recursive backtracking approach. """ N = 8 # Default; command line overrides class Queens: def __init__(self, n=N): self.n = n self.reset() def reset(self): n = self.n self.y = [None] * n # Where is the queen in column x self.row = [0] * n # Is row[y] safe? self.up = [0] * (2*n-1) # Is upward diagonal[x-y] safe? self.down = [0] * (2*n-1) # Is downward diagonal[x+y] safe? self.nfound = 0 # Instrumentation def solve(self, x=0): # Recursive solver for y in range(self.n): if self.safe(x, y): self.place(x, y) if x+1 == self.n: self.display() else: self.solve(x+1) self.remove(x, y) def safe(self, x, y): return not self.row[y] and not self.up[x-y] and not self.down[x+y] def place(self, x, y): self.y[x] = y self.row[y] = 1 self.up[x-y] = 1 self.down[x+y] = 1 def remove(self, x, y): self.y[x] = None self.row[y] = 0 self.up[x-y] = 0 self.down[x+y] = 0 silent = 0 # If true, count solutions only def display(self): self.nfound = self.nfound + 1 if self.silent: return print('+-' + '--'*self.n + '+') for y in range(self.n-1, -1, -1): print('|', end=' ') for x in range(self.n): if self.y[x] == y: print("Q", end=' ') else: print(".", end=' ') print('|') print('+-' + '--'*self.n + '+') def main(): import sys silent = 0 n = N if sys.argv[1:2] == ['-n']: silent = 1 del sys.argv[1] if sys.argv[1:]: n = int(sys.argv[1]) q = Queens(n) q.silent = silent q.solve() print("Found", q.nfound, "solutions.") if __name__ == "__main__": main()