あなたがそれを受け入れることを選択した場合、あなたの使命は、以下の論理演算子のための単純な真理値評価子を構築することです:
----------------------------------------------------------------------------------
Logical Name | Gate Name | Symbol | Symbol Name | Truth Table
----------------------------------------------------------------------------------
Identity | is | | (none) | 10
Negation | not | ~ | tilde | 01
Conjunction | and | & | ampersand | 1000
Disjunction | or | | | pipe | 1110
Negative Conjunction | nand | ^ | caret | 0111
Joint Denial | nor | v | "vee" | 0001
Exclusive Disjunction | xor | x | "ecks" | 0110
Equivalence | equals/xnor | = | equals | 1001
Implication | implies | > | greater than | 1011
真理値表は次の順序です。
- 1 1
- 1 0
- 0 1
- 0 0
入力は、0、1、および記号の単純な文字列になります。入力をパラメーターとして受け入れるか、ユーザーからstdinで読み取ることができます。次に、入力/出力ペアの例をいくつか示します。
Input: 1
Output: 1
Input: ~1
Output: 0
Input: 0|1
Output: 1
Input: 1>0
Output: 0
単項演算子(否定)は常にブール値の前に表示されますが、2項演算子は常に2つのブール値の間に表示されます。すべての入力が有効であると想定できます。文字列は通常のASCII文字列です。
必要に応じて、1と0ではなくTとFを使用できます。両方をサポートしている場合は、-6を文字数として使用できます 。
これはコードゴルフです:どの言語でも最短のコードが勝ちます!
^
シンボル名にはキャレットと書いておくべきだと思います。