ブール関数 bf に引数として渡された場合にTrueを与える変数値の可能な組合せの数を数える.
SatisfiabilityCount[expr,{a1,a2,…}]
ブール式 expr が真となる aiの可能な組合せの数を数える.
SatisfiabilityCount
ブール関数 bf に引数として渡された場合にTrueを与える変数値の可能な組合せの数を数える.
SatisfiabilityCount[expr,{a1,a2,…}]
ブール式 expr が真となる aiの可能な組合せの数を数える.
詳細
- SatisfiabilityCount[expr]はSatisfiabilityCount[expr,BooleanVariables[expr]]と等価である.
例題
すべて開く すべて閉じる例 (3)
SatisfiabilityCount[Xor[a, b], {a, b}]これは,真理値表のTrueの数に対応する:
BooleanTable[Xor[a, b], {a, b}]Count[%, True]SatisfiabilityCount[BooleanFunction[30, 3]]BooleanTable[BooleanFunction[30, 3]]Count[%, True]SatisfiabilityCount[BooleanCountingFunction[{200, 1200}, 2000]]N[%]アプリケーション (1)
確率 (1)
あるイベントが起る確率を全体に対する真となる場合の比として計算する:
BooleanProbability[e_, v_] := SatisfiabilityCount[e, v] / 2 ^ Length[v]BooleanProbability[f_] /; IntegerQ[BooleanVariables[f]] := SatisfiabilityCount[f] / 2 ^ BooleanVariables[f]BooleanProbability[x∧y, {x, y}]BooleanProbability[Xor[x, y, z, w], {x, y, z, w}]100の変数のうち真となるものが20から40の間である確率:
BooleanProbability[BooleanCountingFunction[{20, 40}, 100]]N[%]BooleanProbability[x∨y, {x, y}]BooleanProbability[x, {x, y}] + BooleanProbability[y, {x, y}] - BooleanProbability[x∧y, {x, y}]特性と関係 (11)
変数が
個である関数のSatisfiabilityCountは常に
から
の間である:
Table[SatisfiabilityCount[BooleanFunction[i, 3]], {i, 0, 2 ^ 2 ^ 3 - 1}]{Min[%], Max[%]}SatisfiabilityCountは,事実上BooleanTable中のTrue要素の数を数える:
Count[BooleanTable[BooleanFunction[200!, 10]], True]SatisfiabilityCount[BooleanFunction[200!, 10]]この場合,BooleanTableには
個の要素があると考えられる:
SatisfiabilityCount[BooleanCountingFunction[500, 1000]]SatisfiableQはSatisfiabilityCountがゼロより大きいかどうかを効率よくテストする:
SatisfiabilityCount[¬Implies[Implies[a, b]∧a, b], {a, b}]SatisfiableQ[¬Implies[Implies[a, b]∧a, b], {a, b}]TautologyQは n 変数の関数についてSatisfiabilityCountが
であるかどうかを効率よくテストする:
SatisfiabilityCount[Implies[Implies[a, b]∧a, b], {a, b}]TautologyQ[Implies[Implies[a, b]∧a, b], {a, b}]n 個の変数のプリミティブについてのSatisfiabilityCountは簡単である.Andについては常に
である:
Table[SatisfiabilityCount[And@@Array[x, n]], {n, 5}]Orについては
である:
Table[SatisfiabilityCount[Or@@Array[x, n]], {n, 5}]Table[2 ^ n - 1, {n, 5}]Nandについては
である:
Table[SatisfiabilityCount[Nand@@Array[x, n]], {n, 5}]Table[2 ^ n - 1, {n, 5}]Norについては
である:
Table[SatisfiabilityCount[Nor@@Array[x, n]], {n, 5}]Xorについては
である:
Table[SatisfiabilityCount[Xor@@Array[x, n]], {n, 5}]Xnorについては
である:
Table[SatisfiabilityCount[Xnor@@Array[x, n]], {n, 5}]Table[2 ^ (n - 1), {n, 5}]Equivalentについては
である:
Table[SatisfiabilityCount[Equivalent@@Array[x, n]], {n, 5}]Majorityについては,
が奇数の場合は
,
が偶数の場合は
である:
Table[SatisfiabilityCount[Majority@@Array[x, n]], {n, 5}]Table[If[OddQ[n], 2 ^ (n - 1), 2 ^ (n - 1) - Binomial[n, n / 2] / 2], {n, 5}]BooleanCountingFunctionの真理集合の大きさはSubsetsの長さである:
SatisfiabilityCount[BooleanCountingFunction[{5, 10}, 15]]Length[Subsets[Range[15], {5, 10}]]BooleanCountingFunctionの真理集合の大きさは組合せ総和で与えられる:
SatisfiabilityCount[BooleanCountingFunction[{300, 700}, 1000]@@Array[a, 1000]]Sum[Binomial[1000, k], {k, 300, 700}]%% == %指標付きBooleanFunctionのSatisfiabilityCountはDigitCountで与えられる:
SatisfiabilityCount[BooleanFunction[3 ^ 10000, 20]]DigitCount[3 ^ 10000, 2, 1]変数が n 個の場合,その数はMod[k,2^2^n]のDigitCountで与えられる:
SatisfiabilityCount[BooleanFunction[3 ^ 10000, 10]]DigitCount[Mod[3 ^ 10000, 2 ^ 2 ^ 10], 2, 1]DigitCount[3 ^ 10000, 2, 1]BooleanMintermsのSatisfiabilityCountは指標リストの長さで与えられる:
SatisfiabilityCount[BooleanMinterms[{1, 3, 5, 7, 9}, 7]]Length[{1, 3, 5, 7, 9}]indexes = RandomSample[Range[0, 2 ^ 10 - 1], 333];{SatisfiabilityCount[BooleanMinterms[indexes, 10]], Length[indexes]}BooleanMaxtermsについては,2nから指標リストの長さを引いた数として与えられる:
SatisfiabilityCount[BooleanMaxterms[{1, 3, 5, 7, 9}, 7]]2 ^ 7 - Length[{1, 3, 5, 7, 9}]indexes = RandomSample[Range[0, 2 ^ 10 - 1], 333];{SatisfiabilityCount[BooleanMaxterms[indexes, 10]], 2 ^ 10 - Length[indexes]}SatisfiabilityInstancesを使って明示的な場合を求める:
SatisfiabilityInstances[Xor[a, b, c, d], {a, b, c, d}]SatisfiabilityInstances[Xor[a, b, c, d], {a, b, c, d}, 3]CountRootsを使って実数値区間における多項式の根の数を数える:
CountRoots[(x - 1)(x - 2)(x - 3)(x - 4), {x, 0, 10}]CountRoots[(x ^ 2 - 2)(x ^ 4 - 20), {x, -2 - 2I, 2 + 2I}]おもしろい例題 (1)
Table[SatisfiabilityCount@BooleanFunction[i, 2], {i, 0, 15}]ListPlot[%, Filling -> Axis]Table[SatisfiabilityCount@BooleanFunction[i, 3], {i, 0, 255}];ListPlot[%, Filling -> Axis]ListLinePlot[Table[SatisfiabilityCount@BooleanFunction[i, 4], {i, 0, 2 ^ 2 ^ 4 - 1}], Filling -> Axis]関連するガイド
-
▪
- ブール計算
テキスト
Wolfram Research (2008), SatisfiabilityCount, Wolfram言語関数, https://reference.wolfram.com/language/ref/SatisfiabilityCount.html.
CMS
Wolfram Language. 2008. "SatisfiabilityCount." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SatisfiabilityCount.html.
APA
Wolfram Language. (2008). SatisfiabilityCount. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SatisfiabilityCount.html
BibTeX
@misc{reference.wolfram_2026_satisfiabilitycount, author="Wolfram Research", title="{SatisfiabilityCount}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/SatisfiabilityCount.html}", note=[Accessed: 04-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_satisfiabilitycount, organization={Wolfram Research}, title={SatisfiabilityCount}, year={2008}, url={https://reference.wolfram.com/language/ref/SatisfiabilityCount.html}, note=[Accessed: 04-November-2026]}