0 Daumen
62 Aufrufe

Aufgabe:

Folgendes hat Chatgbt gesagt

Wir sollen die logische Funktion „Implikation“ in C programmieren.
1. Was ist eine Implikation?
Eine Implikation ist eine logische Aussage, die man so liest:
„Wenn A wahr ist, dann ist B wahr.“
Beispiele:
A = „Es regnet“
B = „Die Straße wird nass“
Dann bedeutet A → B = „Wenn es regnet, wird die Straße nass.“
Wichtig:
Wenn es nicht regnet (A = falsch), ist die Aussage automatisch wahr – egal, ob die Straße nass ist oder nicht.
Die Aussage ist nur falsch, wenn es regnet (A = wahr) und die Straße nicht nass ist (B = falsch).

Es geht um die Boolsche Algebra und Wahrheitstabellen  jedoch verstehe ich den Roten Satz nicht Wenn es nicht regnet A = falsch wie ist die Aussage A—> B automatisch wahr?


A ist doch falsch also wird die Straße auch nicht nass

Avatar vor von

Warum fragst du nicht den Bot um eine Erklärung?

Hab ich, die verstehe ich nur nicht.

Wenn A dann B macht nur eine Aussage über den Fall, in dem A wirklich gilt.
Wenn A gar nicht zutrifft, ist die Aussage nicht verletzt – also gilt die Implikation automatisch.

Die Implikation A⇒B ist logisch äquivalent (hat dieselben Wahrheitswerte) wie ¬A∨B

Das mag vielleicht auch helfen.

A ist doch falsch also wird die Straße auch nicht nass

Du meinst, wenn es nicht regnet, dann darf die Straße nicht nass sein?

Also als ich heute mit dem Fahrrad von der Arbeit gekommen war, war die Straße nass, aber es hat trotzdem nicht geregnet. Überlege jetzt also mal, wie das sein kann.

Wie ist das z.B. mit

B: Das Viereck ist ein Parallelogramm.
A: Das Viereck ist ein Rechteck.

Prüfe, ob folgende Implikationen wahr oder falsch sind:

A → B
B → A

1 Antwort

0 Daumen

Was du beschreibst, ist ein sehr häufiger und normal erscheinender Einwand. Wenn \(A\) falsch ist, wieso ist die Implikation \((A\implies B)\) dann wahr, egal was \(B\) ist?

Der springende Punkt ist: Es geht nicht darum, ob \(B\) wahr oder falsch ist, sondern ob \((A\implies B)\) wahr oder falsch ist. Dass zweiteres wahr ist, macht keine Rückschlüsse auf \(B\) möglich. Das ist wichtig, denn rein intuitiv sollte aus den beiden Informationen "Wenn A, dann B" und "Es gilt aber A gar nicht" nichts weiter über B herausfindbar sein, und das ist hier so.

Du könntest es dir vom anderen Blickwinkel anschauen: Wann soll \((A\implies B)\) denn falsch sein? Wenn du es dir ein bisschen von der Richtung überlegst, merkst du vielleicht irgendwann, dass der einzige Weg, wie \((A\implies B)\) falsch sein kann, daraus besteht, dass \(A\) wahr aber \(B\) falsch ist.

Vielleicht ganz konkret: Wenn ich behaupte "Wenn es regnet, wird die Straße nass", wie würdest du versuchen meine Behauptung zu widerlegen. Wenn es gerade nicht regnet, würdest du dann sagen "Aha, du liegst falsch!"? Nein, dein einziger Weg ist darauf zu warten, dass es regnet, und dann auf die Straße zu schauen. Dass du mich nicht beim lügen erwischen kannst, bis es regnet aber trotzdem die Straße trocken ist, ist genau der Zusammenhang, dass die Implikation wahr ist, bis die Präzedenz wahr und die behauptete Konsequenz falsch ist.

A ist doch falsch also wird die Straße auch nicht nass

Wieso bist du dir da so sicher? Es könnte ja auch nicht geregnet haben, aber ein joners läuft mit nem Gartenschlauch rum. Das macht die Behauptung "Wenns regnet, wird's nass" nicht falsch, oder? Du gewinnst also dadurch, dass es nicht regnet, keine neuen Informationen und das ist das wichtige.

Aus beiden Blickwinkeln ist die einzige sinnvolle Wahrheitstabelle:

\(A\)\(B\)\((A\implies B)\)
ffw
fww
wff
www

Wie du es genau in C implementieren würdest: Kommt auf den Datentyp der Inputs an. Wenn du z.B. chars hast (in den meisten Architekturen 1 byte, quasi ein unsigned short), die die Werte 0 und 1 haben, ist eine Möglichkeit:

char implikation(char a, char b) {
//a impliziert b
return 1-(a*b);
}

Avatar vor von 1,1 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community