ブール関数(ブールかんすう、: Boolean function)は、ブール領域の非負整数回の直積定義域とし、ブール領域の元のうち片方を返す関数である。

ブール値関数の特殊なものである。

X = M = {1, 2, 3, …} であるとき、f は無限の「二値数列; binary sequence」すなわち 0 と 1 の無限である。X = [k] = {1, 2, 3, …, k} であるとき、f は長さ k の二値数列である。そのような関数は 個存在する。これは計算複雑性理論における問題で基本的な役割を果たす。

効率的表現

編集

命題論理の)論理式で表現できるが、効率的な表現としては次のようなものがある。

簡単化

編集

簡単な表現に変換する手法として次のようなものがある。

  • カット・アンド・トライ法
ブール代数の定義を用い、効率的な表現に変形していく。
  • ベン図
ベン図を用いて視覚的にわかりやすい表現にする。

以上は人間の直感によるものであり「変換する手法」と言えたものではない。

  • カルノー図法
カルノー図を用い、効率的な表現に変形していく。
  • クワイン・マクラスキー法
クワイン・マクラスキー法を用い、効率的な表現に変形していく。計算機で簡単化するのに適している。

標準形

編集

選言標準形連言標準形が代表的である。他に、リード-マラー標準形などがある。

リード-マラー標準形

編集

リード-マラー標準形(en:Algebraic normal form)は、積(AND)の排他的論理和(XOR)による標準形である。

ここで である。

従って、列 の値の列もブール関数を一意に表している。ブール関数の代数的次数は、1つの(AND)項に現われる の個数で表される。つまり、 の次数は 1(線形)であり、 の次数は 3(立方)である。

関連項目

編集

📚 Artikel Terkait di Wikipedia

Scala

Int = 0): Boolean = { if (i == s.length) return false if (s(i) == 'a') return true return hasLowerCaseA(s, i + 1) } Scalaの部分関数 (partial function)

ブーリアン型

ブーリアン型(ブーリアンがた、英: Boolean datatype)は、真理値の「真 = true」と「偽 = false」という2値をとるデータ型である。ブーリアン、ブール型、論理型(logical datatype)などともいう。2種類の値を持つ列挙型とも、2進で1ケタすなわち1ビットの整数型とも、見ることもできる。

ヨーダ記法

lang.Booleanからプリミティブ型booleanへの暗黙的なボックス化解除(オートアンボクシング)が実行されることで異常動作を引き起こす例である。 Boolean myBoolean = true; /* ... */ if (myBoolean = null) { /*

二分決定図

Algorithms for Boolean Function Manipulation". IEEE Transactions on Computers, C-35(8):677–691, 1986. ^ R. E. Bryant, "Symbolic Boolean Manipulation with

ブール値関数

ブール値関数(ブールちかんすう、英: Boolean-valued function)は、述語や命題の一種の総称であり、f : X → B という形式の関数として表される。ここで、X は任意の集合であり、B はブール領域である。 ブール領域 B とは、2つの元からなる集合であり、B = {0, 1}

連言標準形

equivalent) ではない。 [脚注の使い方] ^ Randal E. Bryant. "Graph-Based Algorithms for Boolean Function Manipulation". IEEE Transactions on Computers, C-35(8):677–691, 1986

呼出規約

. function foo : Boolean; begin foo := i > 0; i := 1 end; function bar : Boolean; begin bar := i > 0; i := -1 end; function foobar(f, b : Boolean) :

If文

else { // x の値が 123 でないとき。 } Javaのif文は条件式としてboolean型のみを許可する。boolean型の変数への代入またはプリミティブラッパークラスjava.lang.Boolean型の変数への代入を除き、代入式を記述することはできない。