0 Daumen
286 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 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

Ich weiß nicht, ob die Erklärungsversuche hilfreich sind.
M.E. sagt die Implikation eigentlich nichts über die Fälle aus, wenn A nicht eintritt.
Was also tun, wenn A nicht eintritt? Man könnte sagen, diese Fälle sind nicht definiert und beläßt es dabei.
Aber es ist einfach eine sehr nützliche Konvention/Definition die sich sehr bewährt hat, diesen beiden Fällen den Wahrheitswert ‚Wahr‘ zuzuordnen (statt nicht definiert). Z.B. weil das logische System sehr kompliziert zu handeln wäre, wenn es darin nicht definierte Fälle gäbe (also einen dritten Zustand neben wahr und falsch).

Aussagen kann man einen eindeutigen Wahrheitswert zuordnen. Es gibt dabei keine undefinierte dritte Option.

Die Aussage "Karl ist über 80 kg schwer" wäre nur falsch, wenn Karl höchstens 80 kg schwer ist. In allen anderen Fällen ist die Aussage wahr.

Wäre die Aussage nicht definiert oder gar falsch, nur weil Egon höchstens 80 kg schwer ist? Nein, denn über Egon wurde ja keine Aussage getroffen.

Genau so verhält es sich mit der Aussage: "Wenn A wahr ist, dann ist auch B wahr." Diese Aussage ist nur dann falsch, wenn A wahr ist und B falsch ist. In allen anderen Fällen ist diese Aussage wahr.

@Der_Mathecoach

Also kann man sich das so merken, wenn die Aussagen A falsch ist \((A\implies B)\) folgt das die Implikationen \((A\implies B)\) wahr ist.

A: z. B. Döschwo mag keine Bananen (falsche Aussage)

Deshalb ist er so groß geworden Aussage (B)

Die implikation \((A\implies B)\) ist wahr, weil die Aussagen A falsch ist, egal wie groß Döschwo in wirklichkeit ist.

Hab ich das so richtig verstanden ?

Hab ich das so richtig verstanden ?

Ja. Das hast du richtig verstanden.

Deine Aussage B sollte korrekt lauten:

B: Döschwo ist groß geworden.

Wenn mein Auto lila ist, scheint morgen die Sonne ist eine wahre Aussage, weil mein Auto ja nicht lila ist.

Wenn eine Zahl durch 6 teilbar ist, dann ist die Zahl auch durch 2 teilbar ist ebenso eine Wahre aussage, denn für 3 und 4, die ja nicht durch 6 teilbar, treffe ich ja keine Aussage, die falsch sein kann.

2 Antworten

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 von 1,1 k
0 Daumen

Aloha :)

Betrachte die falsche Aussage: \(A=\) "Alle ungeraden Zahlen sind Primzahlen."

Daraus können wir etwas Wahres folgern, z.B. : \(B=\) "\(7\) ist eine Primzahl."

Wir können aber auch etwas Falsches folgern, z.B. \(C=\) "\(9\) ist eine Primzahl."

Aus etwas Falschem \((A)\) kann man etwas Wahres \((B)\) oder etwas Falsches \((C)\) folgern.

Daher sind \((A\implies B)\) und \((A\implies C)\) beide "wahr".

Avatar vor von 153 k 🚀

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community