Śledzenie stanów

W artykule Generating Sudoku opublikowanym w „The Perl Review” Eric Maki używa wektorów bitowych do reprezentowania możliwych rozwiązań łamigłówki Sudoku. Każdy rząd łamigłówki reprezentuje za pomocą 9 bitów, po jednym na pole, i włącza bit, kiedy odpowiednie pole ma wartość. Rząd może wyglądać tak:

0 0 0 1 0 1 1 0 0

Dla każdego z dziewięciu rzędów łamigłówki Eric dodaje kolejne dziewięć bitów, otrzymując łańcuch bitowy o długości 81 bitów (równej liczbie pól). Jego rozwiązanie jest nieco bardziej skomplikowane, ale nas interesują wyłącznie operacje bitowe.

Sprawdzenie potencjalnego rozwiązania jest bardzo proste. Kiedy jakiekolwiek pole zawiera wartość, Eric może wyeliminować wszystkie inne rozwiązania, które również zawierają ...

Get Perl. Mistrzostwo w programowaniu now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.