私が代わりにいくつかの条件文のブール代数を使用したい、例えばの代わりに、私はブール代数を使用したい文、
def boo(x,y):
if x==3 and y==1: return 4
if x==3 and y==4: return 1
if x==4 and y==1: return 2
if x==4 and y==2: return 1
if x==5 and y==1: return 3
場合、私は何をしたいのか、いくつかを使用すると、
def simple(x,y):
return x#y
です合計12の方程式がありますが、私はちょうどブール演算子である(x#y)を直接返したいと思います。私はこれを、幸いなことに関係を見つけた小さな問題にしました。この場合も同じことをしたいのですが、どのように進めるのですか?
これはいくつかのif条件を通過しないため、パフォーマンスが向上しますか? これは通常の練習ですか?
サンプル:
x y output
1 2 3
1 3 2
1 4 5
1 5 4
ここでは、単純なビット単位のXORゲートは
def(x,y): return x^y
あなたの関係の性質についてもっと詳しく教えてください。その制約をあまり知らずに、問題の表現を数学的に最適化する方法を言うのは難しいです。ネストされた 'dictionary 'を使うよりももっとエレガントな方法があるかもしれませんが、おもちゃの問題でよく見られるように、あなたが何を期待できるのか正確に理解する必要があります。 –
私はビット賢明な操作を使ってこれを行う一般的な手順を探しています。私は、学部のエレクトロニクスクラスでこのような問題を覚えています。小さな例で質問を更新してください。私はちょうど興味があります。通常のケースでは、ディクショナリを使う方がよりエレガントな方法です。 – syllogismos
入力がブール値でないときにブール代数を使う方法を想像することはできません。あなたが関係を知る方法については、よく...あなたが関係を知らないなら、あなたはどのようにして12の別々の入力に対する正しい答えを知っていますか? –