論理関数についての質問

このQ&Aのポイント
  • 論理関数についての質問です。
  • 論理関数についての理解が進まず困っています。
  • 単調関数と論理関数の関係について教えてください。
回答を見る
  • ベストアンサー

論理関数について

論理関数について 現在論理回路を勉強している者です 授業が進むにつれて,よく分からない問題が出てきましたので質問させていただきました. よろしくお願いします. n変数論理関数f(x_1,x_2,...,x_n)が単調関数であることと以下の条件は必要十分条件であることを証明せよ. a_i <= b_i(i=1,2,...,n)を満たす任意のa_1,a_2,...,a_n∈{0,1}およびb_1,b_2,...,b_n∈{0,1}に対して,不等式f(a_1,a_2,...,a_n)<=f(b_1,b_2,...,b_n)が成り立つ. この問題がよく分からなかったので質問させていただきました.よろしくお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

『a_i <= b_i(i=1,2,...,n)を満たす任意のa_1,a_2,...,a_n∈{0,1}およびb_1,b_2,...,b_n∈{0,1}に対して,不等式f(a_1,a_2,...,a_n)<=f(b_1,b_2,...,b_n)が成り立つ.』 証明せよ・・・ていうか、これが単調関数であることの「定義」なのでは? もし別の単調関数の定義であれば、補足に書いてください。

関連するQ&A

  • 4変数の論理関数

    この4変数の論理回路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

  • マルチプレクサによる論理関数の実現

    はじめまして。 現在、大学のテスト勉強をしているのですが、次の問題に手も足も出ない状態です。。 「2^n入力マルチプレクサを用いると、任意の(n+1)変数論理関数を実現できる。次の論理関数をマルチプレクサで実現せよ。 (1) f(x,y,z)=xy+yz+zx 」 3変数論理関数なので4入力マルチプレクサを使うとは思うのですが、どのように使うのかがさっぱりです。 マルチプレクサを用いずにandとorゲートを用いるだけなら、できそうなのですが… ヒント・考え方等ご教授よろしくお願いします。

  • 論理演算について

    はじめまして。検索して調べたんですが、どうも分からないので 質問させていただきます。 レジュメに書いてある数値が少し違う問題には解答がありますが、 何がどうなっているのやら、さっぱりわかりませんでした・・・。 そしてこの問題の解答は時間の関係で教えてもらえないまま。 昼ごろから自分の力で解こうとしたのですが解き方が分からないで、 どうしようもありません。 どなたかお教えくださいませんでしょうか。よろしくお願いします。 f(0,0)=0 , f(0,1)=1 , f(1,0)=0 , F(1,1)=1 を満足する2変数の論理関数をf(A,B)とする。 X=f(A,B)を展開定理を用いてA,Bの論理式で表現せよ。 ただし、できるだけ簡単な論理式とせよ。

  • scanf関数のプログラムをgetchar関数で

    scanf関数を使って四則演算、論理輪、論理積をint、float、double型で表示するプログラムを作ったのですが これをscanf関数ではなく、getchar関数で組みなおし、関数化する課題が出ました。 そのままscanf関数のところだけを変えても型が違うというエラーが出てうまくいきません。 どうすればいいでしょうか? 一応scanf関数で組んだプログラムの一部を載せておきます。 #include <stdio.h> #include <math.h> main() { float a , b; float x[5]; printf("正の数字を2つ入力して下さい(小数点を含めて4ケタまで):\n"); for(;;) { printf("\na="); scanf("%f" , &a); if(a>=0 && a<=9999 && a) { break; } else { printf("****aに入力エラー****\n"); printf("数字は4ケタ以内の正数を入力:\n"); continue; } } for(;;) { printf("b="); scanf("%f" , &b); if(b>=0 && b<=9999 && b) { break; } else { printf("****bに入力エラー****\n"); printf("数字は4ケタ以内の正数を入力:\n"); continue; } } x[0] = a+b; x[1] = a-b; x[2] = a*b; x[3] = a/b; x[4] = a||b; x[5] = a&&b; printf("\n"); printf("int型 結果:\n足し算=%d\n" , (int)x[0]); printf("引き算=%d\n" , (int)x[1]); printf("掛け算=%d\n" , (int)x[2]); printf("割り算=%d\n" , (int)x[3]); printf("論理和=%d\n" , (int)x[4]); printf("論理積=%d\n" , (int)x[5]); printf("\n"); printf("float型 結果:\n足し算=%f\n" , x[0]); printf("引き算=%f\n" , x[1]); printf("掛け算=%f\n" , x[2]); printf("割り算=%f\n" , x[3]); printf("論理和=%f\n" , x[4]); printf("論理積=%f\n" , x[5]); ・ ・ ・ getchar(); }

  • n変数論理関数

    n変数論理関数の総数が2^2^n個である理由って なんて答えればいいのでしょうか?

  • 論理回路の問題

    3入力1出力の多数決論理回路を2入力NAND回路を用いて論理回路を作れという問題なのですが、 真理値表 a b c f 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 1 論理関数 f=a・b+a・c+b・c までは分かっているのですが、2入力NAND回路を使って論理回路をどのように作ればよいかわかりません。どなたかアドバイスください。よろしくお願いします!

  • 集合と論理

    「f(x)=x^2+ax+b とする。∀n∈Z に対して、f(n)が偶数となるためのa,bの条件を求めよ。」 この問題に対して私は以下のように解答しました。 「(ⅰ)nが偶数 つまりn=2p(p∈Z)と表わせるとき   f(n)=f(2p)=2*2p^2+2ap+b   f(n)が偶数となるとき bが偶数であることが必要  (ⅱ)nが奇数 つまりn=2q+1(q∈Z)と表わせるとき   f(n)=f(2q+1)=2*2q^2+2(a+2)q+a+b+1   f(n)が偶数となるとき a+b+1が偶数であることが必要  (ⅰ),(ⅱ)より   f(n)が∀n∈Z に対して偶数となるとき   aは奇数、bは偶数であることが必要  逆にaは奇数、bは偶数 すなわち a=2s+1(s∈Z), b=2t(t∈Z) であるとき f(x)=x^2+(2s+1)x+2t となり (a)nが偶数 つまりn=2p(p∈Z)と表わせるとき f(n)=2*2p^2+2p(2s+1)+2t となり f(n)は偶数  (b)nが奇数 つまりn=2q+1(q∈Z)と表わせるとき f(n)=2*2q^2+2(2s+3)q+2t+2 となり f(n)は偶数  となるから f(n)は∀n∈Z に対して偶数となる  以上よりn∈Z に対して、f(n)が偶数となるためのa,bの条件は  aが奇数で、bが偶数であること」 設問に対する証明はこれで良いのでしょうか。   

  • 解析の問題です。

    解析の問題です。 Iを開区間、a∈I、f(x):I→RをC^n級関数とする。 f'(a)=f''(a)=・・・=f^(n-1)(a)=0 , f^(n)(a)≠0 と仮定する。このとき次を示せ。 1)nが偶数でf^(n)(a)>0ならば、fはx=aで極小 2)nが偶数でf^(n)(a)<0ならば、fはx=aで極大 3)nが奇数でf^(n)(a)>0ならば、fはx=aのまわりで単調増加 4)nが奇数でf^(n)(a)<0ならば、fはx=aのまわりで単調減少 の示し方がわかりません。 わかる方は教えてください。

  • 合成関数について

     こんばんは!ちょっと気になったのですが、  "f'(x)"が関数f(x)の導関数,"C"が積分定数を表すとき、  合成関数の微分法 [{f(x)}^n]' = nf'(x){f(x)}^n-1 が成り立つという事は、この関数の不定積分は、  ∫{f(x)}^n dx = [{1/(n+1)f'(x)}{f(x)}^n+1]+C としてもかまわないのでしょうか。  f(x)=ax+b のとき、  ∫(ax+b)^n dx = [{1/(n+1)a}(ax+b)^n+1]+C が成り立つので、関数全体としてはどうかなぁと思ったのですが・・・  よろしくお願いします。

  • Parsevalの等式と指示された関数を使ってΣ[k=1..∞]1/(2k-1)^2とΣ[k=1..∞]1/k^2の和を求めよ

    [問] (1) 直交系{sin(nx)}は[0,π]で完全とする。Parsevalの不等式は Σ[n=1..∞](b_n)^2=2/π∫[0..π](f(x))^2dxとなる。但し ,b_n=2/π∫[0..π]f(x)sin(nx)dx (2) Parsevalの等式と指示された関数を使って次の級数の和を求めよ。 (i) Σ[k=1..∞]1/(2k-1)^2,f(x)=1 (ii) Σ[k=1..∞]1/k^2,f(x)=x で(2)の求め方が分かりません。 b_n=2/π∫[0..π]1・sin(nx)dx=2/π∫[0..π]sin(nx)dx=2/π[-1/ncos(nx)]^π_0=4/(nπ) Σ[n=1..∞](b_n)^2=2/π∫[0..π]f(x)^2dx=2/π∫[0..π]1dx=2/π[x]^π_0=2/π・π=2 となったのですがこれからどうすればいいのでしょうか?