出産前後の痔にはご注意!

以下の4変数(X,Y,Z,W)の論理関数Fの真理値表からFの論理式を求めたいと思っています

X Y Z W | F
---------
0 0 0 0 | 0
0 0 0 1 | 0
0 0 1 0 | 1
0 0 1 1 | 1
0 1 0 0 | 0
0 1 0 1 | 0
0 1 1 0 | 0
0 1 1 1 | 0
1 0 0 0 | 0
1 0 0 1 | 0
1 0 1 0 | 1
1 0 1 1 | 1
1 1 0 0 | 1
1 1 0 1 | 1
1 1 1 0 | 0
1 1 1 1 | 0


最も単純に論理式を求めるならFが1のところだけを抜き出す方法です
F=(x*y*Z*w)+(x*y*Z*W)+(X*y*Z*w)+(X*y*Z*W)+(X*Y*z*w)+(X*Y*z*W)

※ +は論理和、*は論理積、小文字は否定を表します

しかし、恐らくこれは最も簡単な論理式じゃないと思うのです
もう少しマシな論理式の求め方も習ったような気はするのですが、思い出せずにいます
求め方のアドバイスをお願いします

A 回答 (1件)

要素が4つまでならカルノー図↓で楽に解けます。


答えを書くとマナー違反になりますので。ヒントだけ。

参考URL:http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AB% …
    • good
    • 0
この回答へのお礼

おおおー!!
思い出しました!
カルノー図、これは何度もやりました
助かりました。回答ありがとうございました。

お礼日時:2008/08/25 23:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q命題論理式の真理表の作り方が解りません。教えて下さい

(PならばQ)でないならば((QかつRでない)ならば((PならばQ)でない))
この問題の式の書き方と真理表の作り方が解りません、教えて下さい。

Aベストアンサー

真理値表は簡単です。
この場合,P,Q,R の3つの変数にそれぞれ 真、偽の2通りがあるので、
 2*2*2 = 8通り

まずは、その全組合せを列挙します。以下、t=真、f=偽とします
P,Q,R
f,f,f
t,f,f
f,t,f
t,t,f
f,f,t
t,f,t
f,t,t
t,t,t

漏らさずに列挙するコツは、
1つめは1個ずつ t,fを入れ替える
2つめは2個ずつ t,fを入れ替える
3つめは4個ずつ t,fを入れ替える
4つめは8個ずつ t,fを入れ替える
...
と機械的に基礎正しくやること。

そうしたら、一つずつ、その真偽の組合せで、元の式を評価します。
 (PならばQ)でないならば((QかつRでない)ならば((PならばQ)でない))
の場合、
P,Q,R=f,f,f なら
 (fならばf)でないならば((fかつfでない)ならば((fならばf)でない))
P,Q,R=t,f,f なら
 (tならばf)でないならば((fかつfでない)ならば((tならばf)でない))
P,Q,R=f,t,f なら
 (fならばt)でないならば((tかつfでない)ならば((fならばt)でない))
...


これをそれぞれ
P,Q,R,式
f,f,f,←のときの式の計算結果
t,f,f,←のときの式の計算結果
f,t,f,←のときの式の計算結果
...
と順番に計算して、表を埋めていくだけです。


式が簡単にできれば、計算も簡単になります。

真理値表は簡単です。
この場合,P,Q,R の3つの変数にそれぞれ 真、偽の2通りがあるので、
 2*2*2 = 8通り

まずは、その全組合せを列挙します。以下、t=真、f=偽とします
P,Q,R
f,f,f
t,f,f
f,t,f
t,t,f
f,f,t
t,f,t
f,t,t
t,t,t

漏らさずに列挙するコツは、
1つめは1個ずつ t,fを入れ替える
2つめは2個ずつ t,fを入れ替える
3つめは4個ずつ t,fを入れ替える
4つめは8個ずつ t,fを入れ替える
...
と機械的に基礎正しくやること。

そうしたら、一つずつ、その真偽の組合せで、元の式を評価します。
 (PならばQ)...続きを読む

Q真理値表から論理式を導く

A B C Z
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
という真理値表があります。A,B,Cが入力でZが出力です。
この場合ZをA,B,Cの論理式で表すとどうなるんでしょうか?また真理値表から論理式を求める手順を教えていただけるとさらにうれしいです。

Aベストアンサー

Z=a・B・C+A・b・C+A・B・c
小文字はnotを示します。

手順
Z=1のものだけを選んで論理式にする。

Q論理式の解き方

論理式
______________
(x+y)・(x+z)
―は否定
・は論理積
+は論理和
を[等価な論理式]にするとどうなりますか?
_
x は x の否定。

Aベストアンサー

ド・モルガンの定理ってご存知?
論理式の括弧を外すときによく使います。

^(A・B) = ^A + ^B ・・・(1)
^(A+B) = ^A ・^B ・・・(2)

これがドモルガンの定理です。(^ を否定の意味で使用しました。)
ここで、
A = x+y
B = x+z
として先ほどの式(2) に代入すると、

^(A・B) = ^A + ^B
= ^(x+y) + ^(x+z)
= (^x・^y) + (^x・^z)

と展開できます。ということで、ご質問の論理式と等価な論理式は
^(x+y) + ^(x+z)  とか
(^x・^y) + (^x・^z) ですね。

Q論理式の求め方

A,B,C,Dの4つの入力と出力Yで、入力に1の数が2個の時は0、それ以外の時は1を出力する論理回路についてNOTとANDだけの論理式にしたいのですが、どうしても簡単化をしてまとめることができません。わかるかたがいればぜひおしえて下さい。よろしくお願いします。

Aベストアンサー

カルノー図を書いてみたけど、とくに簡略化できるところはなさそう。

ということで、そのまま項を列挙するだけで良いと思います。

以下検証:

%cat a.rb
bool = [false, true];
bool.each do |a|
bool.each do |b|
bool.each do |c|
bool.each do |d|

r = !(!a & !b & c & d) & !(!a & b & !c & d) & !(!a & b & c & !d) & !(a & !b & !c & d) & !(a & !b & c & !d) & !(a & b & !c & !d);
print a ? '+' : '-';
print b ? '+' : '-';
print c ? '+' : '-';
print d ? '+' : '-';
print ' = ', r, "\n";
end
end
end
end
%ruby a.rb
---- = true
---+ = true
--+- = true
--++ = false
-+-- = true
-+-+ = false
-++- = false
-+++ = true
+--- = true
+--+ = false
+-+- = false
+-++ = true
++-- = false
++-+ = true
+++- = true
++++ = true
%

一応、NOTとANDの論理ゲートだけで構成できてるかと。

カルノー図を書いてみたけど、とくに簡略化できるところはなさそう。

ということで、そのまま項を列挙するだけで良いと思います。

以下検証:

%cat a.rb
bool = [false, true];
bool.each do |a|
bool.each do |b|
bool.each do |c|
bool.each do |d|

r = !(!a & !b & c & d) & !(!a & b & !c & d) & !(!a & b & c & !d) & !(a & !b & !c & d) & !(a & !b & c & !d) & !(a & b & !c & !d);
print a ? '+' : '-';
print b ? '+' : '-';
print c ? '+' : '-';
print d ? '+' : '-';
print ' =...続きを読む

Q論理式の解き方

次の論理式が推論として正しいことを図か行で示せ、という問題なのですが

(A∧B) → C
~D → E
C → ~E
------------------
A → (B→C)

↑これがその問題です。ノート見ても授業を聞いてた時にはそれでわかったのですが、今見るとどうやってといたのかよくわからなくなってしまいました。究極の条件はなんとかわかるのですが推論をどうすればよいのか、というところで詰まってしまいました、しかも3行あるというところでも悩んでます。どなたか解き方を講義してくれませんか?よろしくお願いします。

Aベストアンサー

結論が「A→(B→D)」だと考えると、過不足なく前提を使うことができます。
というわけで、ご参考までに、「A→(B→D)」を導出する方法を示しておきます。

(1) (A∧B)→C (前提)
(2) ~D→E (前提)
(3) C→~E (前提)

(4) (A∧B)→~E ((1)(3)と推移律より)
(5) ~E→D ((2)の対偶より)
(6) (A∧B)→D ((4)(5)と推移律より)
(7) A→(B→D) ((6)と移出律より)。以上。

ただし、
推移律:A→BとB→Cから、A→Cを導出できる。
対偶律:A→Bから~B→~Aを導出できる。
移出律:(A∧B)→CからA→(B→C)を導出できる。
これらが成り立つことについては、真理値表をつくってみて自分なりに納得してください。

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む

Q組み合わせ論理回路。半加算器と全加算器の違いが分かりません。

半加算器と全加算器の違いが分かりません。

桁上げを扱わない加算器を半加算器という、とあるのですが、桁上げというのは繰り上げのことですよね?
でも真理値表を見るとちゃんとAとBが両方1の時はCが1になっていて、これは繰り上げを考慮している、となるような気がするのですが…?

よろしくお願いします。

Aベストアンサー

#3です。
補足質問の解答

> 平たく言えば、半加算器は入力が2ビットの計算が出来て、全加算器は3ビットの計算が出来る。
> ということの違い、と言えるのでしょうか…?
入力信号の意味を無視してもよければその通りです。

参考URLに半加算器と全加算器の論理回路図と真理値表が掲載されていますのでご覧下さい。
同URLには
複数ビットの加算器を
半加算器と全加算器で構成した回路図も載っています。

被加数ビット入力A、加数ビット入力B、上位桁への桁上げビット出力C、
下位桁からの桁上げビット入力X、和Sの接続関係をよくご覧になって、理解するようにして下さい。

参考URL:http://ja.wikipedia.org/wiki/%E5%8A%A0%E7%AE%97%E5%99%A8

Q積分で1/x^2 はどうなるのでしょうか?

Sは積分の前につけるものです
S dx =x
S x dx=1/2x^2
S 1/x dx=loglxl
まではわかったのですが
S 1/x^2 dx
は一体どうなるのでしょうか??

Aベストアンサー

まず、全部 積分定数Cが抜けています。また、積分の前につけるものは “インテグラル”と呼び、そう書いて変換すれば出ます ∫

積分の定義というか微分の定義というかに戻って欲しいんですが
∫f(x)dx=F(x)の時、
(d/dx)F(x)=f(x)です。

また、微分で
(d/dx)x^a=a*x^(a-1)になります …高校数学の数3で習うかと
よって、
∫x^(a-1)dx=(1/a)*x^a+C
→∫x^adx={1/(a+1)}*x^(a+1)+C
となります。

つまり、
∫1/x^2 dx=∫x^(-2)dx
={1/(-2+1)}*x^(-2+1)+C
=-x^(-1)+C
=-1/x+C

です。

Q真理値表と論理回路

写真の真理値表のような動作をする論理回路の作り方がまったくわかりません。
あとこの回路に名前があるらしいのですが教えてください<(_ _)>

Aベストアンサー

まず、こう言う時は、こう考えます。
1.まず、真理値表から 結果が1のところに注目します。

2.今回の場合はF1、F2とありますから、それぞれ一個ずつ考えることにします。

3.(1)F1について1になっている行はAが1であり、かつBが0の時 と、Aが0であり、かつBが1の時となります。これを論理式で表しますが、入力が1のものはそのまま、0のものは否定してそしてそれを論理積(AND)でくっつけます。 A・B(否定)という式とそれともう一つは A(否定)・B となります。この式二つを論理和(OR)で結びます A・B(否定)+A(否定)・Bとなります。これ以上は計算するのは難しいのでここで終わります。
3.(2)F2について、AとBが双方とも1のとき(言い換えるとA=1 かつ B=1)ですから A・Bとなります。これ以上計算しようがないです。
4.以上からそれぞれ、論理回路を作ると図のようになります(手描きなので本当に醜いです汚いですが)。

5.この回路、見覚えがあったらいいのですが、実は「半加算器(Harf adder)」です。
よく真理値表を見てみてください。まず、F1に注目しますと、「入力のどちらかが1ならば1を出力しなさい、入力が両方共同じであるならば0を出力しなさい。つまり、二進数の数学的に0+1をしたときは下一桁1です。次に両方共0ならば、二進数の数学的に0+0であるから0ですね。問題は両方共1なのに、どうして0なのかですが、2進数なので1+1=10になるはずです。つまり、下一桁、この場合はF1なのですが、これが、0ですよね。で、繰り上がりがありますので、その分(F2)が1にならなければならない。
ということになるのです。
わかりにくい説明とずで申し訳ないですが、図に関しては半加算器 論理回路とかで調べると出てくると思います。(私は最初から計算したので、4の段階でようやく半加算器だと気づきました)。ご参考になれば幸いです。一応二種情報処理(現、基本情報技術者)資格は持ってますのでご指名あればわかる限りお答えいたしますのでよろしくお願いします。

参考URL:http://homepage2.nifty.com/ttoyoshima/Computer/Logic.htm

まず、こう言う時は、こう考えます。
1.まず、真理値表から 結果が1のところに注目します。

2.今回の場合はF1、F2とありますから、それぞれ一個ずつ考えることにします。

3.(1)F1について1になっている行はAが1であり、かつBが0の時 と、Aが0であり、かつBが1の時となります。これを論理式で表しますが、入力が1のものはそのまま、0のものは否定してそしてそれを論理積(AND)でくっつけます。 A・B(否定)という式とそれともう一つは A(否定)・B となります。この式二つを論理和(OR)...続きを読む

Q三相交流のV結線がわかりません

V結線について勉強しているのですが、なぜ三相交流を供給できるのか理解できません。位相が2π/3ずれた2つの交流電源から流れる電流をベクトルを用いて計算してもアンバランスな結果になりました。何か大事な前提を見落としているような気がします。

一般にV結線と言うときには、発電所など大元の電源から三相交流が供給されていることが前提になっているのでしょうか?

それとも、インバータやコンバータ等を駆使して位相が3π/2ずれた交流電源2つを用意したら、三相交流を供給可能なのでしょうか?

Aベストアンサー

#1です。
>V結線になると電源が1つなくなりベクトルが1本消えるということですよね?
●変圧器のベクトルとしてはそのとおりです。

>なぜ2つの電源の和を「マイナス」にして考えることができるのかが疑問なのです。
●もっと分かりやすいモデルで考えてみましょう。
乾電池が2個あってこれを直列に接続する場合ですが、1個目の乾電池の電圧をベクトル表示し、これに2個目の乾電池の電圧をベクトル表示して、直列合計は2つのベクトルを加算したものとなりますが、この場合は位相角は同相なのでベクトルの長さは2倍となります。

同様に三相V結線の場合は、A-B,B-Cの線間に変圧器があるとすれば、A-C間はA-B,B-Cのベクトル和となりますが、C-A間はその逆なのでA-C間のマイナスとなります。

つまり、どちらから見るかによって、マイナスにしたりプラスにしたりとなるだけのことです。

端的に言えば、1万円の借金はマイナス1万円を貸したというのと同じようなものです。


人気Q&Aランキング