Wie trägt man eine Funktion in eine Funktionstabelle ein (Digitaltechnik)?
Hey, ich wollte für f1 so eine ähnliche Wertetabelle aufstellen.
Bloß wie komme ich darauf welche Werte denn nun für die Funktion 0 oder 1 annehmen? Das auslesen aus einem KV-Diagramm verstehe ich und wie man eine KNF und DNF bildet, aber die Tabelle für eine Funktion dazu aufzustellen, dass geht einfach nicht in meinen Kopf.
2 Antworten
Nutzer, der sehr aktiv auf gutefrage ist
Du setzt einfach die Werte für a, b, c und d ein und wertest die Funktion aus.
Kann man auch programmieren:
def f1(a, b, c, d):
return((d & c | ~(b & (~(a & d) | ~d))) & 1)
print('a b c d | f1')
print('--------+---')
for x in range(0, 16):
a = (x >> 3) & 1
b = (x >> 2) & 1
c = (x >> 1) & 1
d = x & 1
print(a, b, c, d, '| ', f1(a, b, c, d))
Raus kommt dann das:
a b c d | f1
--------+---
0 0 0 0 | 1
0 0 0 1 | 1
0 0 1 0 | 1
0 0 1 1 | 1
0 1 0 0 | 0
0 1 0 1 | 0
0 1 1 0 | 0
0 1 1 1 | 1
1 0 0 0 | 1
1 0 0 1 | 1
1 0 1 0 | 1
1 0 1 1 | 1
1 1 0 0 | 0
1 1 0 1 | 1
1 1 1 0 | 0
1 1 1 1 | 1
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Elektrotechnik
- Die eine Möglichkeit ist, alle 16 Fälle durchzutesten und jedesmal den Funktionswert auszurechnen. Ein Programm ist dazu natürlich sehr hilfreich.
- Die zweite Möglichkeit, die du offenbar beherrschst, ist die Vereinfachung des Terms mit KV-Diagramm. Die Hoffnung wäre, dass dabei ein sehr einfacher Ausdruck übrigbleibt. Z.B. (stimmt jetzt nicht, nur erfunden):
f1 = (a AND b) OR (c AND d)
Das heisst: f1=1, wenn a und b oder c und d = 1 sind. Also