Dualitatea și funcții booleene auto-duală, starter IT-

Binare opus operațiunii predeterminată poate fi obținută întotdeauna negație la nivel de bit (în sensul de bitwise nu limbajul Turbo Pascal), dintr-un set dat.

De exemplu, pentru <0010 1111> opusul ar fi setat <1101 0000> și, desigur, vice-versa. Ie seturi <0010 1111> și <1101 0000> opuse (unul de altul).

Noi ar trebui să acorde o atenție deosebită faptului că definiția 1 nu este vorba doar despre combinațiile binare opuse ale valorilor variabile ale funcțiilor f și g. dar de valori opuse ele funcționează f și g în aceste kituri (f (...) = nu g (...)).

Luați în considerare mulțimea tuturor BF n-Ary și o relație binară de dualitate pe acest set. Orice două Fct f n și g n sunt, în acest sens (îi aparțin), dacă și numai dacă g n dublă f n.

Evident, acest raport nu este reflexiv. Nu tranzitiv (l arată!), dar simetric.

Ie în cazul în care relația dualitate pentru a desemna, de exemplu, prin "

“Atunci, pentru orice BF f n și g n al setului luat în considerare este întotdeauna implicația: (g n

Acest lucru ne permite să vorbim pur și simplu de (mutuală) dualitate / dualitate nu este considerată nici două funcții n-ary luate în orice ordine.

Acestea fiind spuse, putem da următoarea definiție (mutuală) dualității BF.

Definiție 2. Două funcții booleene același aritatea a spus să fie dublă unul cu altul. în cazul în care acestea sunt opuse la toate seturile ia valorile opuse.

Rețineți că cerința de aceeași aritatea în definițiile de mai sus nu este critică, deoarece (Și avem deja să știm nu numai, dar, de asemenea, să fie în măsură să arate!) Oricare doi dintre BF poate duce întotdeauna la adăugarea aceluiași aritatea, dacă este necesar, variabile fictive.

Construirea de funcții duble.

Introducem notația standard de. Funcția booleană, dublă f va fi notată cu f *.

Masa să TION set-f f cu o ordonare standard rânduri. Arătăm modul în care acest tabel pentru f pot fi construite în așa fel încât tabelul comandat pentru f *.

  1. Deschide coloană n f valori în jurul punctului central 180 o (ultima valoare din coloana va fi de 1, penultima - 2 m, etc.);
  2. Efectuați o negare bitwise a valorilor la scară naturală într-o coloană (de exemplu, înlocuiți-zerouri pe unitate și unitatea la zero);
  3. Coloana rezultată anterior acțiunii scrise în tabelul comandat standard, ca valori coloană ale funcției f *.

Motivul pentru acest algoritm cititorului. Să considerăm un exemplu.

Mă îndoiesc, ci o relație de dualitate, dacă există un f (a1, ..., an) nu = g (nu a1, ..., nu o), nu reflexiv, deoarece
f (a1, ..., an) nu este egal cu a nu f (nu a1, ..., nu o) și
g (a1, ..., an) nu este egal cu a nu g (nu a1, ..., nu o)?
De exemplu, f = (0001)
f (0, 1) = 0
Nu (f (1, 0)) = 1.
Această relație este simetrică, deoarece g (a1, ..., an) = nu f (nu a1, ..., nu o). Simetria poate fi verificată prin construirea unei duble funcții f * pentru o funcție f și f ** funcție dublă f *. f ** coincide cu f.
Tranzitiv mă îndoiesc de asemenea. Dacă f (a1, ..., an) = nu g (nu a1, ..., nu o), atunci g (a1, ..., an) = nu f (nu a1, ..., nu o). Ie funcție dublă f la g, având în vedere simetria. Dar tranzitivitate trebuie să fie efectuate f (a1, ..., o) = nu f (nu a1, ..., nu o), dar acest lucru nu este adevărat virtute nu este reflexiv.

Exemple de funcții auto-duală:
f (x) = (0, 1)
f (x, y) = (0 1 0 1)
f (x, y) = (1 0 1 0)
f (x, y) = (0 0 1 1)
f (x, y) = (1 1 0 0)
f (x, y, z) = (0 1 0 1 0 1 0 1)
f (x, y, z) = (1 0 1 0 1 0 1 0)
f (x, y, z) = (0 0 0 0 1 1 1 1)
f (x, y, z) = (1 1 1 1 0 0 0 0)
f (x, y, z) = (0 0 1 1 0 0 1 1)
f (x, y, z) = (1 1 0 0 1 1 0 0)
coloană funcția de auto dublă Coloana este o variabilă sau o negare a coloanei la o variabilă? Dar apoi se dovedește că toate celelalte variabile sunt false și pot fi șterse, iar funcția va fi redusă funcții de o variabilă.

articole similare