Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Boolesche Funktionen (https://www.delphipraxis.net/152349-boolesche-funktionen.html)

Mr. Bool 19. Jun 2010 16:47

Boolesche Funktionen
 
Hi,

ich habe 2 kleine Fragen.

1. Ich habe eine Funktion mit 3 Variablen (b1, b2, b3) Elemente der Menge B {0, 1}. Die Funktion soll zu 1 werden, wenn b1 + b2 * 2 + b3 * 4 kongruent 2 modulo 3 ist. Danach sollen wir die KNF und DNF aufstellen.

Ich verstehe den Satz aber nicht so ganz. Bedeutet es, dass meine zu erstellende Boolesche Funktion 1 werden soll, wenn (b1 + b2 * 2 + b3 * 4) mod 3 = 2 ist? Dann muss ich mit den Binärwerten praktisch als Dezimalzahlen rechnen. Mit dem Begriff kongruent und dieser Schreibweise komme ich nicht so ganz klar. :stupid:

2. kleines Problem: Was ist eine n-stellige Funktion? Eine Funktion mit n Argeumenten oder eine Funktion, die in dem Term insgesamt n Variablen vorkommen hat?

Ist also folgende Funktion 3-stellig (Auch wenn die Funktion sinnfrei ist ^^)? f(b1, b2, b3) = 0 oder muss sie so aussehen, dass sie 3-stellig ist: f(b1, b2, b3) = (b1 v b2 v b3) AND 0

Klaus01 19. Jun 2010 17:07

AW: Boolesche Funktionen
 
Zitat:

Zitat von Mr. Bool (Beitrag 1030109)
...
1. Ich habe eine Funktion mit 3 Variablen (b1, b2, b3) Elemente der Menge B {0, 1}. Die Funktion soll zu 1 werden, wenn b1 + b2 * 2 + b3 * 4 kongruent 2 modulo 3 ist. Danach sollen wir die KNF und DNF aufstellen.

Hallo,

kongruent aus der Zahletheorie

Das würde dann heißen.

Code:
funktionsergebnis := ((b1 + b2 * 2 + b3 * 4) mod 3) = (2 mod 3);
Grüße
Klaus

idefix2 19. Jun 2010 17:20

AW: Boolesche Funktionen
 
Zu Frage 1:
Du kannst es direkt lösen, indem Du die Integerwerte (=ord(b1), ord(b2), ord(b3)) in der Formel verwendest (wie klaus schreibt).

Oder Du stellt fest, dass die möglichen Rechenergebnisse Zahlen zwischen 0 und 7 sind und true nur für die Ergebnisse 2 und 5 herauskommen soll, als in Binärdarstellung für 010 und für 101 - also (b1<>b2)and(b1=b3).


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz