Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > Mathematics and Algorithms > Discrete Mathematics > Boolean Computation >
Mathematica > Mathematics and Algorithms > Logic & Boolean Algebra > Boolean Computation >

BooleanCountingFunction

BooleanCountingFunction[kmax, n]
represents a Boolean function of n variables that gives True if at most kmax variables are True.
BooleanCountingFunction[{k}, n]
represents a function of n variables that gives True if exactly k variables are True.
BooleanCountingFunction[{kmin, kmax}, n]
represents a function that gives True if between kmin and kmax variables are True.
BooleanCountingFunction[{{k1, k2, ...}}, n]
represents a function that gives True if exactly ki variables are True.
BooleanCountingFunction[spec, {a1, a2, ...}]
gives the Boolean expression in variables ai corresponding to the Boolean counting function specified by spec.
BooleanCountingFunction[spec, {a1, a2, ...}, form]
gives the Boolean expression in the form specified by form.
At most two conditions are true:
Convert to a disjunctive normal form:
At most two conditions are true:
In[1]:=
Click for copyable input
Out[1]=
Convert to a disjunctive normal form:
In[2]:=
Click for copyable input
Out[2]=
Specify that f is true when at most 2 arguments are true:
Exactly 2 arguments are true:
Between 2 and 3 arguments are true:
1, 3 or 5 arguments are true:
Specify that f is true when exactly 1, 4 or 5 arguments are true:
BooleanCountingFunction is by default preserved in function form:
Use BooleanConvert to convert to other forms:
BooleanCountingFunction is automatically converted when given an explicit list of variables:
The expanded forms can be large when the number of variables grows:
The performance gain in evaluating the function form can be substantial:
Constant arguments are reduced:
Extreme cases are automatically converted to formulas:
Create new primitives that are true when at most, at least or exactly k arguments are true:
Create a number of disk regions along the unit circle:
Show the newly combined regions:
Integrate over these regions:
Define a Boolean function which is true when the number of true arguments is k modulo m:
When k=0 and m=2 then we get Xnor:
When k=1 and m=2 then we get Xor:
For other values of k and m we get new functionality:
The 2D truth table:
Define a Boolean function that sorts a list of truth values:
The resulting list is always in sorted order:
BooleanCountingFunction is symmetric in its arguments:
Logical combinations of BooleanCountingFunction correspond to set operations on indices:
The basic specification can equivalently be specified using Range:
Many primitives can be expressed in terms of BooleanCountingFunction:
And:
Or:
Nor:
Xor:
The size of the truth set for BooleanCountingFunction is the length of Subsets:
The size of the truth set for BooleanCountingFunction can be given by a combinatorial sum:
BooleanCountingFunction for when exactly i variables are true have disjoint truth sets:
New in 7
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team