Sto scrivendo un risolutore per il sudoku del gioco. Sto cercando di implementare il controllo del set nascosto e non riesco a trovare un modo per farlo bene.
Ho bisogno di scoprire se c'è un insieme di celle di dimensione N in cui appare un numero di N candidati, dove quei N candidati non sono presenti in nessuna delle cellule al di fuori del set. Ad esempio supponiamo di avere le seguenti celle contenenti i possibili valori:
A={1,2,5} B={2,3,8} C={2,3,4,5,8} D={3,4,5} E={5,6,7}
Il set nascosto in questo caso è {1,2,8}
(e N in questo caso è 3)
{1}
viene visualizzato solo nella cella A
{2}
viene visualizzato solo nelle celle B e C
{8}
viene visualizzato solo nelle celle B e C
Non tutte e tre le celle contengono tutti e tre i numeri, ma insieme appaiono solo in tre celle.
Come controesempio, l'insieme {2,8}
non sarebbe valido, perché anche se la cella B contiene entrambi e anche la cella C lo fa, il numero 2 è anche incluso nella cella A, il che significa che ho due valori coperti da tre celle, e come ho detto all'inizio, ho bisogno che il numero di celle sia uguale al numero di valori nel set.
Va detto che non saprò per quali valori testare. L'unico input sarebbe l'elenco di celle e l'algoritmo deve trovare tutti i set che possono esistere in esso per N = 1 al numero di celle - 1.