Questo è un problema di lingua inglese. Ti è stata fornita una specifica in linguaggio naturale e stai lottando per trasformarla in logica esplicita.
Gli interruttori A e B sono entrambi attivi.
Hai usato una porta AND per questo, corretto, quella clausola è (a AND b), chiamiamo questo risultato parziale e.
Lo switch C o lo switch D sono attivi, ma non entrambi.
Hai usato una porta XOR per questo, corretto, quella clausola è (c XOR d), chiamiamo questo risultato parziale f.
Finora hai ridotto l'intera espressione a ...
Una lampada si accenderà solo se si verifica quanto segue: e? f
Ora, "solo se" significa che si accende se e AND f, o significa e OR f?
Questo è il motivo per cui gli ingegneri si mettono nei guai, accettano un lavoro con una specifica scritta in inglese e poi si rendono conto che in realtà non sanno cosa sta chiedendo finché non vengono a implementarlo. "Solo se" suona un po 'logico, non è vero.
"Solo se" non viene utilizzato nella logica. Esiste un termine "se e solo se", solitamente espresso come IFF. Tuttavia, IFF è un bicondizionale, è progettato per esprimere una verità su un sistema, piuttosto che come una formula per ottenere un risultato dagli input. Ad esempio "Ho un fratello IFF, mio fratello è maschio". (Qualcosa) IFF (condizionale).
Poiché stai cercando di far funzionare una formula logica, chiaramente non significa IFF, ma IF. Quindi abbiamo ...
(Si accenderà una lampada) IF (e? f).
L'IF ancora non ha chiarito se questo? dovrebbe essere AND o OR, o anche qualcos'altro. L'inglese non è abbastanza preciso. Potrebbe significare uno di questi.
Rimettiamo di nuovo "solo", per vedere se aiuta a qualificarsi se è AND o OR.
Una lampada si accenderà SOLO se si verificano ENTRAMBE le seguenti condizioni: e? f
Una lampada si accenderà SOLO se si verifica una delle seguenti condizioni: e? f
In quanto madrelingua inglese, il primo suona ragionevole, anche se insolito, ma il secondo suona davvero strano.Se l'inglese non fosse la mia prima lingua, potrei non arrivare a questa conclusione.
Questa potrebbe essere una domanda progettata per verificare se è possibile individuare ambiguità come questa e dire che la domanda è sottodeterminata.
Tuttavia, se dovessi sostenere un esame e credessi che "ci fosse solo una risposta corretta", allora preferirei AND, che è la mia migliore lettura dell'inglese.
Se stavo implementando un prodotto dalle specifiche di un cliente, tornerei da lui e chiedevo loro se questo è ciò che realmente intendevano.