De binaire puzzel

De binaire puzzel is een uitdagende puzzel die je op kunt lossen door logisch te redeneren. Hoewel de binaire puzzel slechts bestaat uit nullen en enen, is het oplossen zeker niet gemakkelijk.

Regels

  1. In elke lege cel moet een nul of een één ingevuld worden.
  2. Er mogen niet meer dan twee dezelfde cijfers direct naast of direct onder elkaar staan.
  3. Elke rij en elke kolom is uniek. Er mogen dus geen twee identieke rijen of kolommen voorkomen.
  4. In elke rij en kolom moet evenveel nullen als enen voorkomen.

Voorbeeld

Opgave van een eenvoudige 6x6 binaire puzzel:

Opgave
Opgave 6x6 binaire puzzel.

Oplossing van deze puzzel:

Oplossing
Oplossing 6x6 binaire puzzel.

Deze oplossing stellen we in python voor door een geneste lijst met 6 sublijsten die elk een rij van deze oplossing voorstellen. Elke sublijst bevat 6 elementen.

Lijstvoorstelling oplossing
Lijstvoorstelling oplossing 6x6 binaire puzzel.

Opgave

Schrijf een functie is_correct die nagaat of een oplossing voldoet aan alle regels voor een binaire puzzel.

De functie heeft 1 argument: een geneste lijst die de representatie is van een vierkante n x n matrix (n is even) met enkel nullen en enen. Dit moet je niet controleren.

De functie gaat na of voldaan is aan deze regels:

De functie retourneert True of False.

Voorbeelden

>>> is_correct([[1, 1, 0, 1, 0, 0], [0, 1, 0, 0, 1, 1], [0, 0, 1, 0, 1, 1], [1, 0, 1, 1, 0, 0], [0, 1, 0, 1, 1, 0], [1, 0, 1, 0, 0, 1]])
True

>>> is_correct([[0, 1, 1, 1, 0, 0], [0, 1, 0, 0, 1, 1], [0, 0, 1, 0, 1, 1], [1, 0, 1, 1, 0, 0], [0, 1, 0, 1, 1, 0], [1, 0, 1, 0, 0, 1]])
False