XOR Operator < Algorithmen < Schule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:24 Fr 09.05.2014 | Autor: | kolja21 |
Aufgabe | vereinfachen Sie
[mm] a\oplus!b\oplus(a\vee!b)\wedge [/mm] c |
Das [mm] \oplus [/mm] steht für ein XOR. Ich möchte, um es zu vereinfachen, in die UND, ODER schreibweise umformen. Wie das geht weiß ich. Ist die folgende Umstellung richtig?
(a [mm] \wedge [/mm] b [mm] \vee [/mm] !a [mm] \wedge [/mm] b) [mm] \wedge [/mm] !(a [mm] \vee [/mm] !b) v !(a [mm] \wedge [/mm] b [mm] \vee [/mm] !a [mm] \wedge [/mm] b) [mm] \wedge [/mm] (a [mm] \vee [/mm] !b) [mm] \wedge [/mm] c
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:35 Fr 09.05.2014 | Autor: | Ebri |
Von welcher Seite hast du den Ausdruck ausgewertet?
Von links: [mm]((a \oplus !b) \oplus (a \vee !b)) \wedge c[/mm]
Oder rechts: [mm]a \oplus (!b \oplus ((a \vee !b) \wedge c))[/mm]
Oder ganz anders? Unterschiedliche Klammerungen können zu verschiedenen Ergebnissen führen.
Ich tippe darauf, dass der Ausdruck von links ausgewertet werden soll, denn dann lässt er sich sehr vereinfachen.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:44 Fr 09.05.2014 | Autor: | kolja21 |
ich habe von links umgeformt. Zuerst a xor b. Dann dass Ergebnis xor den restlichen Teil
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 08:24 Sa 10.05.2014 | Autor: | Ebri |
> vereinfachen Sie
> [mm]a \oplus \overline{b} \oplus (a \vee \overline{b}) \wedge c[/mm]
> ich habe von links umgeformt. Zuerst a xor b. Dann dass Ergebnis xor den restlichen Teil
Der Ausdruck lässt gut vereinfachen. Dein Lösungsvorschlag kann ich nicht ganz nachvollziehen. Ich glaube er ist unnötig kompliziert und es fehlen ein paar Klammern.
Vereinfache den Ausdruck Stück für Stück. Zuerst den vorderen Teil:
[mm]((a \oplus \overline{b}) \oplus (a \vee \overline{b})) =
(\underbrace{\overline{(a \oplus \overline{b})} \wedge (a \vee \overline{b})}_{= I}) \vee
(\underbrace{(a \oplus \overline{b}) \wedge \overline{(a \vee \overline{b})}}_{= II})[/mm]
I: [mm]\overline{(a \oplus \overline{b})} \wedge (a \vee \overline{b}) = ...[/mm]
II: [mm](a \oplus \overline{b}) \wedge \overline{(a \vee \overline{b})} = ...[/mm]
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 15:39 Sa 10.05.2014 | Autor: | kolja21 |
> > vereinfachen Sie
> > [mm]a \oplus \overline{b} \oplus (a \vee \overline{b}) \wedge c[/mm]
>
> > ich habe von links umgeformt. Zuerst a xor b. Dann dass
> Ergebnis xor den restlichen Teil
>
> Der Ausdruck lässt gut vereinfachen. Dein
> Lösungsvorschlag kann ich nicht ganz nachvollziehen. Ich
> glaube er ist unnötig kompliziert und es fehlen ein paar
> Klammern.
>
> Vereinfache den Ausdruck Stück für Stück. Zuerst den
> vorderen Teil:
>
> [mm]((a \oplus \overline{b}) \oplus (a \vee \overline{b})) =
(\underbrace{\overline{(a \oplus \overline{b})} \wedge (a \vee \overline{b}}_{= I}) \vee
(\underbrace{(a \oplus \overline{b}) \wedge \overline{(a \vee \overline{b})}}_{= II})[/mm]
>
> I: [mm]\overline{(a \oplus \overline{b})} \wedge (a \vee \overline{b}) = ...[/mm]
>
> II: [mm](a \oplus \overline{b}) \wedge \overline{(a \vee \overline{b})} = ...[/mm]
>
Ich bin mir nicht sicher, ob das Stimmt. Um diesen Ausdruck zu vereinfachen, muss ich das XOR darausbekommen.
a XOR b = (a [mm] \wedge [/mm] !b) [mm] \vee [/mm] (!a [mm] \wedge [/mm] b)
Nach diesem Muster habe ich es entfernt. Dadurch wurde der Ausdruck unübersichtlicher. Aber nur, wenn ich es auf die UNDs, ODERs und NICHT reduziert habe, kann ich die Axiome anwenden, um zu kürzen.
Wo ich mir aber unsicher bin ist, ob ich die Übersetzung von Xor nach "UND/NICHT/ODER" richtig gemacht habe, da das XOR zwei mal vorkommt.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:36 Sa 10.05.2014 | Autor: | Ebri |
> > > vereinfachen Sie
> > > [mm]a \oplus \overline{b} \oplus (a \vee \overline{b}) \wedge c[/mm]
> >
> > > ich habe von links umgeformt. Zuerst a xor b. Dann dass
> > Ergebnis xor den restlichen Teil
> >
> > Der Ausdruck lässt gut vereinfachen. Dein
> > Lösungsvorschlag kann ich nicht ganz nachvollziehen. Ich
> > glaube er ist unnötig kompliziert und es fehlen ein paar
> > Klammern.
> >
> > Vereinfache den Ausdruck Stück für Stück. Zuerst den
> > vorderen Teil:
> >
> > [mm]((a \oplus \overline{b}) \oplus (a \vee \overline{b})) =
(\underbrace{\overline{(a \oplus \overline{b})} \wedge (a \vee \overline{b})}_{= I}) \vee
(\underbrace{(a \oplus \overline{b}) \wedge \overline{(a \vee \overline{b})}}_{= II})[/mm]
>
> >
> > I: [mm]\overline{(a \oplus \overline{b})} \wedge (a \vee \overline{b}) = ...[/mm]
>
> >
> > II: [mm](a \oplus \overline{b}) \wedge \overline{(a \vee \overline{b})} = ...[/mm]
> >
>
> Ich bin mir nicht sicher, ob das Stimmt. Um diesen Ausdruck
> zu vereinfachen, muss ich das XOR darausbekommen.
> a XOR b = (a [mm]\wedge[/mm] !b) [mm]\vee[/mm] (!a [mm]\wedge[/mm] b)
Stimmt, genau die Regel hab ich auch verwendet um das erste XOR "aufzulösen". (Nur [mm](a \wedge !b)[/mm] und [mm](!a \wedge b)[/mm] vertauscht.)
> Nach diesem Muster habe ich es entfernt. Dadurch wurde der
> Ausdruck unübersichtlicher. Aber nur, wenn ich es auf die
> UNDs, ODERs und NICHT reduziert habe, kann ich die Axiome
> anwenden, um zu kürzen.
> Wo ich mir aber unsicher bin ist, ob ich die Übersetzung
> von Xor nach "UND/NICHT/ODER" richtig gemacht habe, da das
> XOR zwei mal vorkommt.
Richtig, es kommt zwei mal vor. Das Erste habe ich oben "aufgelöst". Dann habe ich den enstehenden Ausdruck der Übersicht halber in I und II aufgeteilt. Dort muss man wieder die von dir genannte Regel anwenden. Ich mach mal den ersten Schritt für I.
I: [mm]\overline{(a \oplus \overline{b})} \wedge (a \vee \overline{b}) =
\overline{((\overline{a} \wedge \overline{b}) \vee (a \wedge b))} \wedge (a \vee \overline{b})[/mm] = ... (jetzt zB weiter mit DeMorgan)
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 16:40 Sa 10.05.2014 | Autor: | kolja21 |
ja, aber in deinem Ausdruck kommt das "c" nicht mehr vor. Ist das richtig?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:52 Sa 10.05.2014 | Autor: | Ebri |
Ich betrachte auch nur den vorderen Teil des gesamten Ausdrucks.
$ [mm] \underbrace{((a \oplus \overline{b}) \oplus (a \vee \overline{b}))}_{} \wedge [/mm] c $
Da taucht das c nicht auf. Sorry wenn das etwas missverständlich war.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 17:48 Sa 10.05.2014 | Autor: | kolja21 |
darf man das denn machen? Es rauslassen? Das "c" ist mit dem Ausdruck davor durch ein "und" verbunden.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:01 Sa 10.05.2014 | Autor: | Ebri |
> darf man das denn machen? Es rauslassen? Das "c" ist mit
> dem Ausdruck davor durch ein "und" verbunden.
Nein, natürlich nicht. Das "c" bleibt wo es ist. Man vereinfacht nur den vorderen Teil des Ausdrucks und ersetzt ihn durch die Vereinfachung.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 18:28 Sa 10.05.2014 | Autor: | kolja21 |
Spielt es prinzipiel eine Rolle, wenn man einen Ausdruck hat wie a [mm] \oplus [/mm] b [mm] \oplus [/mm] c, ob man erst a [mm] \oplus [/mm] b umrechnet, und dann das Resultat [mm] \oplus [/mm] c. Oder ob man gleich alles am Stück umwandelt? In diesem Fall würde das ja folgendermaßen aussehen:
[mm] (a\overline{b}\overline{c})\vee(\overline{a}b\overline{c})\vee(\overline{a}\overline{b}c)
[/mm]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:55 Sa 10.05.2014 | Autor: | Ebri |
> Spielt es prinzipiel eine Rolle, wenn man einen Ausdruck
> hat wie a [mm]\oplus[/mm] b [mm]\oplus[/mm] c, ob man erst a [mm]\oplus[/mm] b
> umrechnet, und dann das Resultat [mm]\oplus[/mm] c. Oder ob man
> gleich alles am Stück umwandelt? In diesem Fall würde das
> ja folgendermaßen aussehen:
>
> [mm](a\overline{b}\overline{c})\vee(\overline{a}b\overline{c})\vee(\overline{a}\overline{b}c)[/mm]
Beide XOR in einem Schritt mit der Regel a XOR b = (a $ [mm] \wedge [/mm] $ !b) $ [mm] \vee [/mm] $ (!a $ [mm] \wedge [/mm] $ b) umwandeln geht nicht.
Das muss man schon in zwei Schritten machen.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 21:16 Sa 10.05.2014 | Autor: | kolja21 |
Ich glaube da irrst du dich. Wenn du so einen Ausdruck hast wie a [mm] \oplus [/mm] b [mm] \oplus [/mm] c und du bearbeitest erst a [mm] \oplus [/mm] b und dann das Resultat [mm] \oplus [/mm] c dann passiert an folgender Stelle ein Fehler:
Wenn a=1 und b=1 und c=1, dann kommt deiner Formel nach eine 1 raus, weil a xor b = 0 und das Resultat also 0 xor c=1 ist 1. Das ist aber falsch, denn a [mm] \oplus [/mm] b [mm] \oplus [/mm] c bedeutet, es kommt nur dann eine 1 raus, wenn nur einer von allen eine 1 hat und der Rest 0. Bei a=1 und b=1 und c=1 muss 0 rauskommen. Ich glaube, wenn du a [mm] \oplus [/mm] b [mm] \oplus [/mm] c, musst du alle zusammen behandeln.
Als Hilfe kann man ja eine Wahrheitstabelle benutzen. Der folgende Ausdruck ist äquivalent [mm] (a\overline{b}\overline{c})\vee(\overline{a}b\overline{c})\vee(\overline{a}\overline{b}c) [/mm] = a [mm] \oplus [/mm] b [mm] \oplus [/mm] c
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:46 Sa 10.05.2014 | Autor: | felixf |
Moin!
> Das ist aber falsch, denn a [mm]\oplus[/mm] b [mm]\oplus[/mm] c
> bedeutet, es kommt nur dann eine 1 raus, wenn nur einer von
> allen eine 1 hat und der Rest 0.
Das wiederum ist eine sehr, sehr ungewoehnliche Definition (und ehrlich gesagt hab ich das noch nie so gesehen). Ueblich ist die von Ebri verwendete Vorgehensweise.
Wenn man das so machen sollte, sollte man es anders bezeichnen, um Missverstaendnisse zu vermeiden, etwa als 3-adische Funktion $XOR(a, b, c)$. Und jedes mal dabeischreiben was man meint.
XOR entspricht der Addition modulo 2, wenn man die Wahrheitswerte FALSE und TRUE als Restklassen 0 und 1 modulo 2 interpretiert. Und Addition ist assoziativ.
LG Felix
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 21:59 Sa 10.05.2014 | Autor: | kolja21 |
> Ueblich ist die von Ebri verwendete Vorgehensweise.
es klappt bei mir einfach nicht, es kommt der beschriebene Fehler. Wieso kann oder darf oder sollte man nicht alle 3 Ausdrücke gleichzeitig umwandeln?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:43 So 11.05.2014 | Autor: | kolja21 |
habe das Problem gelöst. Ich danke allen sehr, die geholfen haben!
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:20 Mo 12.05.2014 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:25 So 11.05.2014 | Autor: | RR2 |
> Moin!
>
> > Das ist aber falsch, denn a [mm]\oplus[/mm] b [mm]\oplus[/mm] c
> > bedeutet, es kommt nur dann eine 1 raus, wenn nur einer von
> > allen eine 1 hat und der Rest 0.
>
> Das wiederum ist eine sehr, sehr ungewoehnliche Definition
> (und ehrlich gesagt hab ich das noch nie so gesehen).
> Ueblich ist die von Ebri verwendete Vorgehensweise.
>
> Wenn man das so machen sollte, sollte man es anders
> bezeichnen, um Missverstaendnisse zu vermeiden, etwa als
> 3-adische Funktion [mm]XOR(a, b, c)[/mm]. Und jedes mal
> dabeischreiben was man meint.
>
> XOR entspricht der Addition modulo 2, wenn man die
> Wahrheitswerte FALSE und TRUE als Restklassen 0 und 1
> modulo 2 interpretiert. Und Addition ist assoziativ.
>
> LG Felix
Hallo kolja21,
Ich stimme Felix zu. In digitalen Schaltungen würde
eine 1 als Ergebnis rauskommen wenn die drei Eingänge
auf 1 sind. Damit kann m an z.B. die Parität bestimmen.
Für deine Beschreibung das nur eine Variable den
Wert 1 haben darf (und alle andere 0) gibt es den
Ausdruck one-hot (z.B. in Verilog hier
wird der Unterschied zu $onehot0 diskutiert).
Woher kommt deine Definition a [mm]\oplus[/mm] b [mm]\oplus[/mm] c
bedeutet, es kommt nur dann eine 1 raus,
wenn nur einer von allen eine 1 hat und
der Rest 0?
Viele Grüße [mm] RR^2
[/mm]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:00 So 11.05.2014 | Autor: | kolja21 |
> Woher kommt deine Definition a [mm]\oplus[/mm] b [mm]\oplus[/mm] c
> bedeutet, es kommt nur dann eine 1 raus,
> wenn nur einer von allen eine 1 hat und
> der Rest 0?
>
> Viele Grüße [mm]RR^2[/mm]
Nun, es ist meine. Ich habe es mir "abgeleitet" aus a xor b. Da würde bei 1 xor 1 = 0 rauskommen. Ich wusste nicht, dass, wenn 2 XORs 3 unbekannte verbinden, bei 1 xor 1 xor 1 = 1 rauskommen "darf". Aber, wenn das stimmt, hilft es mir sehr!
Ach, da stehts ja auch: http://en.wikipedia.org/wiki/Exclusive_or
|
|
|
|