To jest problem z językiem angielskim. Otrzymałeś specyfikację w języku naturalnym i starasz się przekształcić ją w jawną logikę.
Przełączniki A i B są włączone
Użyłeś bramki AND do tego, zgadza się, ta klauzula to (a AND b), nazwijmy ten wynik częściowy e.
Albo przełącznik C, albo przełącznik D jest włączony, ale nie oba.
Użyłeś do tego bramki XOR, zgadza się, ta klauzula to (c XOR d), nazwijmy ten wynik częściowy f.
Do tej pory całe wyrażenie zredukowałeś do ...
Lampa zapali się tylko w następujących sytuacjach: e? f
Otóż, czy „tylko jeśli” oznacza, że zapala się, jeśli e AND f, czy też oznacza e LUB f?
To dlatego inżynierowie wpadają w kłopoty, akceptując pracę ze specyfikacją napisaną w języku angielskim, a następnie zdając sobie sprawę, że tak naprawdę nie wiedzą, o co proszą, dopóki nie zaczną jej wdrażać. „Tylko jeśli” brzmi trochę logicznie, prawda?
„Tylko jeśli” nie jest używane w logice. Istnieje termin „jeśli i tylko wtedy”, zwykle wyrażany jako IFF. Jednak IFF jest dwuskładnikowy, ma na celu wyrażanie prawdy o systemie, a nie jako wzór na uzyskanie wyniku z danych wejściowych. Na przykład „Mam brata IFF, moje rodzeństwo jest mężczyzną”. (Coś) IFF (warunkowe).
Kiedy próbujesz sprawić, by formuła logiczna działała, wyraźnie nie oznacza to IFF, ale IF. Więc mamy ...
(Zapali się lampka) IF (e? f).
IF nadal nie wyjaśniło, czy to? powinno być AND lub OR, a nawet czymś innym. Angielski nie jest wystarczająco precyzyjny. To może oznaczać jedno z nich.
Ponownie wpiszmy „tylko”, aby sprawdzić, czy pomoże to zakwalifikować, czy jest to AND czy OR.
Lampa zaświeci się TYLKO, jeśli wystąpią OBIE następujące zdarzenia: e? f
Lampa zapali się TYLKO, jeśli wydarzy się jedna z następujących sytuacji: e? f
Pierwsza z nich brzmi rozsądnie, choć nietypowo, jako native speakera, ale druga brzmi naprawdę dziwnie.Gdyby angielski nie był moim pierwszym językiem, to mógłbym nie dojść do takiego wniosku.
Może to być pytanie, które ma na celu sprawdzenie, czy potrafisz dostrzec takie niejasności i powiedzieć, że jest niedokładne.
Jednak gdybym przystępował do egzaminu i uważał, że „jest tylko jedna prawidłowa odpowiedź”, to postawiłbym na AND, to moja najlepsza lektura angielskiego.
Gdybym wdrażał produkt ze specyfikacji klienta, wracałbym do niego i pytał, czy tak naprawdę ma na myśli.