「排他的論理和」を含む日記 RSS

はてなキーワード: 排他的論理和とは

2023-12-13

anond:20231213171234

論理和論理積否定否定論理和否定論理積排他的論理和理解してるんだけど、

問題としてXとYの否定論理積 X NAND Yは,NOT(X AND Y)として定義される。X OR YをNANDだけを使って表した論理式は?みたいなの出ると「……?」ってすげえ時間かかる

2022-02-01

anond:20220201214331

ここで排他的論理和だしてくるなんて、本当にand覚えたてかよw

じゃあxorで表してみろよw

2021-08-18

anond:20210818201548

じゃあC/C++には排他的論理和になるような論理演算子がないんだろ。

それが何?

ビット演算子問題とか、C/C++限定した話なら本題に全く関係ないんで他所でやってくれ。

anond:20210818194724

C++JavaC#Python排他的論理和あるぞ。

あとPerlにもあるね。

Rubyにはないけど。

手短に済まないのか

プログラミング基本的手法の1つに、論理演算というものがある。

これは真偽値(真=true、偽=false)同士の組み合わせを評価し、結果をtrue/falseで返すというものだ。

この演算のための演算子の代表的ものがANDとORで、それぞれ論理積論理和という。

式aとbにtrue/falseのいずれかが定義されているとして、

a AND bだったらaとb両方がtrueときのみ、演算結果がtrueになり、

a OR bだったらaとbいずれかがtrueであれば、演算結果がtrueになる。


ということは、

ANDの場合は左辺の式がfalseの時点で、右辺を評価するまでもなく演算結果はfalseとなり、

ORの場合は左辺の式がtrueの時点で、右辺を評価するまでもなく演算結果はtrueとなる。

これを短絡評価といい、今どきのプログラミング言語では必ずこの仕掛けが実装されていると。


この他に、XORという演算子がある。

これは排他的論理和といい、演算子の右辺と左辺の結果が違う組み合わせの場合のみtrueとなる。

まりa=trueかつb=false場合か、a=falseかつb=true場合のみ、演算結果(a XOR b)がtrueとなる。


問題は、どういうわけかこのXORには短絡評価存在しないのだ。

どのプログラミング言語を調べても短絡評価がないので、かなり驚いている。

一体どういうこと?


(追記)

トラバがやかましいから言っとくけど、bool型XOR比較できる仕組みのある言語限定の話な。

2020-11-16

習ったら言いたくなる言葉

排他的論理和って習ったとき馬鹿みたいに言ってた

書いてから思ったが排他的経済水域も好きだわ。排他的がつくと言いたくなる。

2020-07-11

anond:20200711130436

から法律用語の「または」は論理和(少なくとも一方)として定義して、排他的論理和場合は「どちらか一方」って定義すれば、元増田のような複雑な文章にしなくてもいいよね?ってこと。

「または」を論理和として使うのは、論理学では自然だし、法律でもそうやって定義することは可能だと思うのだが。定義なんだし。

anond:20200711125317

言いたいことはわかるけど、論理和論理和であってそれを「または」と読むのは解釈しかいからなぁ。

「または」は「または」であって、それは論理和のことを指すかもしれないし、排他的論理和を指すかもしれないし、別の何かを指すかもしれない。

2019-09-05

1+1が2にも3にも4にもなるってよく言うけど

1+1が2にも3にも4にもなるって脳筋陽キャがよく言うけど、

ここで謎の演算子「+」を持つモノイドを考えてみたい。

まず、前提として、1,2,3,...はモノイドの元 α1,α2,α3,...の簡易記法とする。

モノイドの単位元はα0とする。

モノイドの次の元を得る関数SUCCが存在し、

α_n+1 = SUCC(α_n)と表すことができることとする。

まり

α2 = SUCC(α1)
α3 = SUCC(α2) = SUCC(SUCC(α1))
...

である

α0 は単位元であるので、単位元定義より、

α0 = α0 + α0
α1 = α1 + α0
α2 = α2 + α0
...

である

ここで、1+1が2にも3にも4 という定義より、

α1 + α1 = α2 = SUCC(α1)
   = α3 = SUCC(SUCC(α1))
   = α4 = SUCC(SUCC(SUCC(α1)))
...

となる。

これを満たすことができる関数SUCCは幾つか考えられるが

その1:

defun SUCC(x) = α0

その2:

defun SUCC(x) =
        if (x equals to α0) then α0
        else x

等とすることができる。

その1は 1bit の排他的論理和

α0 + α0 = α0
α0 + α1 = α1
α1 + α0 = α1
α1 + α1 = α2 = SUCC(α1) = α0

その2は 1bit の論理和

α0 + α0 = α0
α0 + α1 = α1
α1 + α0 = α1
α1 + α1 = α2 = SUCC(α1) = α1

である

脳筋って頭いいんだね

2019-01-01

AとBが共存できないってことを

何て言ったのでしょうか・・・

排外処理とかそんな名前だった筈なのですが・・・


追記:(2019/1/1 14:00)

排他的論理和

排他制御

このあたりが正解だったのかな、と考えています

新年早々、色々とアドバイスありがとうございます

今年が皆さんにとって良い年となりますように。

2016-12-15

複数の集合の関係を整理してみよう

プログラマ「いやぁ、論理演算パターン多すぎてマジ混乱してきた・・・

?????「困っているようだね」

プログラマ「そうなんです。論理和 , 論理和否定, 排他的論理和...。いくつもあって頭が混乱してきたんです。」

?????「それならこれを使いなさい」

プログラマ「ぎゃー!!!あんなにイミフだったif文が視覚的に図式化されてスラスラ書けるぅぅうううう!!!!!あばばばばば!!!!」

?????「ククク・・・興味を持ったようだな」

?????「そうだろう。君がこの仕事を続ける限り、各集合をひとつの閉曲線(例えば円)の内部で表し、相関関係をその閉曲線の交わり方によって表す図を知っているということは一生役に立つぞ。」

?????「もうひとつ情報を与えてやろう」

?????「ド・モルガン・・・

プログラマ「え・・?」

?????「暗黒に染まったif文をキレイに書き直す度にパワーがはるかに増す・・その更新無限にオレは残している・・その意味がわかるな?」

プログラマ「いきなり意味がわからないことを言いやがって!!こいつ、なんかやばいぞっ!!!!」

ゴゴゴゴゴ....

プログラマ「だめだ!暗黒の力が強烈過ぎて僕のスパゲッティコードの力では太刀打ち出来無い(´・_・`)...!!」

プログラマ「きさま!まさか!!(((((((( ;゚Д゚))))))))ガクガクブルブルガタガタブルブル」

ベン図 「フハハハハ!!!!!!!!!!!そのまさかだ!」

2009-03-31

http://anond.hatelabo.jp/20090330183554

それ以上でもそれ以下でもない

とりあえず以上と以下の慣用的な意味はおいとくとしても、空集合とは限らない。

「AがB以上でもB以下でもない」というとき、

AとBの間に順序関係定義されていないことのほうが多いんじゃない?

たとえば「珈琲紅茶以上でも紅茶以下でもない」と言うとき、

珈琲紅茶の間の順序関係定義されていないだけにすぎない。

ついでに言えば、慣用表現と学術用語に差があるのはしかたがないでしょう。

珈琲紅茶」という表現の「か」が一般的には論理和でなく、排他的論理和であることにまであなたはケチをつけるの?

まあ、「加速度的」みたいなのは一般的でもないし、単なる誤用だろうけど。

2008-03-03

[]内部的に数値か文字かを判別する

どうーでもいいーですよー。

どうでもいい話ー、聞いてください。

Perlというやつは一応内部的には数値か文字列かをちゃんと分けて変数の管理をしているのです。

でわ、現在ある変数が内部的に数値なのか?内部的に文字列なのか?判別しようと思ったらどうしますか?

こうしてみます。


 my @data = (
     100,      # 100は内部的に数値
     '200'     # 200は内部的に文字
 );
 
 foreach my $d ( @data ) {
     if( ($d ^ $d) eq '0' ){
         print $d . " = It's numeric\n";
     }
     else {
         print $d . " = It's string\n";
     }
 }

同じ変数同士を排他的論理和(^)すると、その変数が数値の場合は0になり、その変数が文字列の場合は空文字になるのです。

なぜかって?そりゃ同じ値同士で排他的論理和したら必ず00000000になるでしょう?

で00000000は、数値なら数字の0だし、文字列なら制御コードのNUL文字になるので上記のような処理が成り立つというわけです。

あってますよね?

ってか判別できたからなんだというんだと問われたらぐうの音すら出ません。まったくもってどうでもいい話でした。

プログラ増田のあなぐら

 
ログイン ユーザー登録
ようこそ ゲスト さん