• ベストアンサー

[至急]証明問題がわかりません。

[至急]証明問題がわかりません。 (1)Σ={0,1}のとき、 Σの語wを引数とし、2進数と解釈したときの値を返す関数 φ:Σ*→N を帰納的に定義せよ。( 0以外で先頭の0は無視し、 εに対する値は0 とする。) (2)(0以外に0から始まる語はない)正しい2進数およびその値を定義するように上を修正せよ。 εも除外のこと。 証明が苦手で、どのようにしたらよいか見当もつきません。丁寧に詳しく教えてください。よろしくお願いします。

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

  • ベストアンサー
  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.1

> 証明が苦手で、どのようにしたらよいか見当もつきません。 証明問題ではありません。 例えば(1)は「指示された関数を帰納的定義を用いて自由に作ってください」 という問題だと思います。 もしかして問題に取り組む以前に、 出題者が一体何を尋ねているのかが分からないのでしょうか? > (1)Σ={0,1}のとき、 Σの語wを引数とし、2進数と解釈したときの値を返す関数 φ:Σ*→N > を帰納的に定義せよ。( 0以外で先頭の0は無視し、 εに対する値は0 とする。) 語と数字を区別するため、語は""で囲むことにします。 また、語と語の連結を演算子・で表すとします。 例えばd = "id1"でe = "87"なら、d・e = "id187"です。 例えばですが、 「Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}とし、 Σの語wを引数とし、wを10進数と解釈した時の値を返す関数fを帰納的に定義せよ」 と聞かれたら、次のように答えれば良いと思います。 w = w'・d(ただしdは1文字の語)の時、 f(w) := 10f(w') + f(d) f("0") := 0 f("1") := 1 f("2") := 2 f("3") := 3 f("4") := 4 f("5") := 5 f("6") := 6 f("7") := 7 f("8") := 8 f("9") := 9 (記号:=は「定義」を表すものとします) こうすると例えばw = "29"の時、f(w)は次のように処理されます。 f(w) = 10f("2") + f("9") (f(w)において、w' = "2", d = "9") = 20 + 9 (定義よりf("2") = 2, f("9") = 9) = 29 w = "295"の時、f(w)は次のように処理されます。 f(w) = 10f("29") + f("5") (f(w)において、w' = "29", d = "5") = 10{ 10f("2") + f("9") } + f("5") (f("29")において、w = "2", d = "9") = 10(20 + 9) + 5 = 200 + 90 + 5 = 295 関数fの作り方は他にもあると思います。これは一例です。 別の方法で作れるなら、それを答えてもOKです。 結局のところ、私が作った例題で尋ねていることは 「とにかくどんな方法でもよいから、帰納的定義を使って関数fを作って下さい」 ということです。 質問者さんが取り組んでいる問題に関しても聞かれていることは同じだと思います。 「~~を証明して下さい」という問題ではなく、 「どんな方法でもよいから、再帰的定義を使って関数φを作ってください」という問題です。 ちなみに私は質問者さんの取り組んでいる分野にあまり詳しくありません。 なので的外れなことを言っているかもしれないので注意して下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 素数の問題

    「2以上の整数はすべて"素数"または"素数の積" で表すことができることを証明せよ。」 という問題です。m以下のすべての値で成り立つ ことを仮定して、m+1でも成り立つことを証明 する"強帰納法"では証明することができるのです が,"帰納法"ではどうしても証明することができ ません。どなたかよろしくお願いします。

  • nCrが整数になることを証明したいのですが・・・。

    nCrが常に整数になることを証明したいのですが、 私は帰納法を使って証明しようとして途中で行き詰ってしまいました。 これを証明できる人はいませんか? もちろん帰納法以外でも大歓迎です。 ただし、組み合わせの数だから整数になるは当たり前というのはなしでお願いします。

  • 複素数の問題

    z^3=1を満たす解をそれぞれα、β、γとする。(zは複素数) そのときにα^n+β^n+γ^n (nは自然数)を考える。このときnが3の倍数の時には1、それ以外では0になることを証明せよ。 という問題なんですが、言ってる意味はわかるんですが、きれいな証明の仕方がわかりません。 とりあえず、z^3=1を満たす解を極座標化して、指数表示してみました。そうすると|z|=1の円を2π/3ごとになり、しかも1以外の2つの解は交互に繰り返して式としては同じ値になることから、証明したいことの意味はわかりました。 そこで証明を考えたんですが、帰納法でやってみたんですが、なかなか思ったように変形できませんでした。 どなたかわかる方がいたら証明の仕方を教えてほしいです。

  • 1+1=2、2×3=6の証明のための、3変数関数fでの定義と帰納的定義は同値?

    過去の質問「1+1=2の証明って?」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=217225 を精読しました。 過去の質問では、小さい自然数の定義した上で、プラスの定義を3変数関数fを使って、 ●f(n,m,m)=n ●m≠kのとき、f(n,m,k) = f(s(n),m,s(k)) そして ●+(n,m)=f(n,m,0) とされていました。 ここでは少し違って考えます。 まず、自然数(ここでは0も含める)の定義ですが、Peano's Axioms http://mathworld.wolfram.com/PeanosAxioms.html をみていただくとして、 自然数 a の 後者を suc(a) と書くことにします。 小さい自然数では、 0 := {} 1 := suc(0) 2 := suc(1) 3 := suc(2) などとします。 次に+の定義ですが、帰納的に、 a+0:=a a+suc(b):=suc(a+b) で定義します。 すると、 1+1=1+suc(0)=suc(1+0)=suc(1)=2 と証明できたことになります。 ×の定義を、帰納的に、 a×0:=0 a×suc(b):=(a×b)+a で定義します。 すると、 2×3=2×suc(2) =(2×2)+2 =(2×suc(1))+2 =((2×1)+2)+2 =((2×suc(0))+2)+2 =(((2×0)+2)+2)+2 =((0+2)+2)+2 =((0+suc(1))+2)+2 =((suc(0+1))+2)+2 =((suc(0+suc(0)))+2)+2 =((suc(suc(0+0)))+2)+2 =((suc(suc(0)))+2)+2 =((suc(1))+2)+2 =(2+2)+2 =(2+suc(1))+2 =(suc(2+1))+2 =(suc(2+suc(0)))+2 =(suc(suc(2+0)))+2 =(suc(suc(2)))+2 =suc(3)+2 =4+2 =4+suc(1) =suc(4+1) =suc(4+suc(0)) =suc(suc(4+0)) =suc(suc(4)) =suc(5) =6 と証明できたことになります。 上記のプラスの3変数関数fでの定義と、今回のプラスやカケルの帰納的定義は同値ですか? 違いがあるとしたらそれは何ですか? ちなみに、s(n)=suc(n)です。

  • 引数について質問

    私プログラミング初心者ですので、できるだけ優しい解説をしていただければ幸いです! 引数について、以下のような解説がありました。 「引数には仮引数と実引数の2種類が存在する。仮引数は、関数を定義する際に変数で指定する引数である。また、実引数は、プログラムの実行時に関数に引き渡される値となる引数である。つまり、関数の実行時には、実引数の値が仮引数に代入されることになる。」 質問:1「関数を定義する際に変数で指定する引数である。」という記述の中で「関数を定義」とありますが、実際のソースコードにおいて何に対応するかわかりません。簡潔なソースコードを交えて解説していただければ幸いです。 質問2:「関数を定義」に限らず、プログラミングにおいて「定義」という言葉をよく見ますが、これは本質的にどういう意味をもっているのでしょうか?具体的なソースコースコードを交えて解説してくださると幸いです。 もしかして、その定義とは例えば「public static void main(String arg[]){」のような「メソッド宣言」のことですか? 質問3:「関数の実行時には、実引数の値が仮引数に代入されることになる。」と書いてありますが、 これはどういうことですか、僕が実際にソースコードで記述してみるので、その考えが正しいか判定してください package 第4章; public class A { public static void main(String arg[]){ double x; x=Math.sqrt(2.0); System.out.println("2.0の平方根は"+x); } } 僕の考え:String arg[]が仮引数で、実引数2.0がString arg[]に代入されるってことでしょうか? 「定義」といえば、上記のソースコードでは、public static void main(String arg[]){ 以外見当たらないので、、 僕の考え2:Mathクラスは、標準クラス(javaが最初から備えているクラス)だから、プログラマが「関数を定義」しなくても予め関数が定義されているから、関数を定義する必要がない、ということでしょうか?

    • ベストアンサー
    • Java
  • excel vbaのプログラムが作成できません

    プログラミングでexcel vbaを勉強しています。 excel vbaのプログラムでフィボナッチ数列のプログラムを作れという問題なんですけど、正直全くわかりません。誰かこのプログラミングを教えてください。お願いします。 フィボナッチ数列は次のように帰納的に定義される。 fib(1) = fib(2) = 1 fib(n) = fib(n - 1) + fib(n - 2) (ただしn >= 3) この関数fib(n)を定義せよ。ただし引数nはInteger型、fib関数の返す値はLong型とする。 またfib関数を呼び出す適当なメインプロシージャを定義し、A1セルからA20セルまでに fib数列の1~20番目の値を書き出すようにせよ。 という問題です。ほんとに困ってますお願いします

  • マクローリン展開と不等式の証明

    (1)関数e^(-x)にマクローリンの定理をあてはめた式を書け (2)上を用いて、mを2以上の自然数とするとき、不等式 0 < e^(-1)-(1/2!-1/3!+…-1/(2m-1)!) < 1/(2m)! が成立する事を示せ。 (3)mを3以上の自然数とするとき、不等式 0 < e^(-1)-(1/2!-1/3!+…-1/(2m-1)!) < 1/500 が成立する事を示せ。 という問題なのですが (1)はΣ(n=0~∞)(-1)^n/(n!)*x^nと解けて (2)は数学的帰納法で解こうとしてe^(-1)を(1)で求め 式にx=1を代入してn=5までの値で近似して (i)m=2の時それぞれの値の差をとって成り立つことを 証明できたのですが (ii)mの時 不等式は成り立つとして m+1の時も成り立つので不等式は成り立つと 証明したかったのですが良く分からなくて解けませんでした。 (3)については(2)と同様に解こうとしたのですが 良く分からなくて解けませんでした。 アドバイスよろしくお願いします。

  • y=|x|の証明について

    y=|x|は定義域を実際に持つ連続関数であることを示せ という問題なのですが、自分はx=0のときを考え f(0)=0より、 lim_x→0 f(x)=0を示す。 任意のε>0に対して、ある値δが存在して |x|<δならば、|f(x)-0|=|x|=|x|<δ<ε   したがって連続である。 と回答しようと思ったのですが、一応連続関数であることは証明できていると思うのですが、定義域を実数に持つという所に関しては、どうしたらいいのかわかりません。 多分ε-δ論法で証明していくと思うのですが、どうしたらいいのでしょうか。 回答の程、よろしくお願いします。

  • C言語(引数)

    はじめまして。 C言語を習い始めたものです。 関数を定義するとき、よく耳にする、仮引数や実引数があると思います。 仮引数は関数の定義内で値をうけとる変数のことであり 実引数は関数を呼び出す際に渡す値を実引数というらしいのですが どこからどこまでを仮引数と呼ぶのかわかりません。 例えば、 fの関数の定義内で ↓があるとします。 (関数にする意味はないのですが、確認のためあしからず・・・) double f(double x) {     x=5;     return(x); } この場合、仮引数とよばれるものは double f(double x)の xが仮引数であって x=5;のxは仮引数と呼ばないのでしょうか?? もしそうならば void f(double x) { printf("%f",x); } のprintf("%f",x);内のxは仮引数とよぶのでしょうか? 質問の内容が意味不明かもしれませんが よろしくお願いします。

  • 指数関数の定義と性質における証明問題について。

    大学数学における「指数関数の定義と性質」に関する証明問題の解法についてお聞きしたいです。全ての番号の問いに答えて頂かなくても構いませんので、わかる範囲だけでもよろしくお願いします。 「a>1として以下の(1)~(7)のそれぞれの問いに対する証明を考える。 (1)任意の自然数pに対して、x^p=aを満たすx(1<x)が、唯一つ存在する(このxをa^(1/p)と表す)。 (2)正の有理数rが、r=q/p=q'/p'(p,q,p',q'は自然数)と表されるとき、a^(q/p)=a^(q'/p')>1がなりたつ(この値をa^rで表す)。 (3)正の有理数r,sに対して、a^ra^s=a^(r+s)が成り立つ。 (4)正の有理数の列{Rn}がlim(n→∞)Rn=0を満たすならば、lim(n→∞)a^Rn=1となる。 (5)正数xに対して、{Rn}および{Rn'}をxに収束する単調増加な有理数の列とするとき、数列{a^Rn}および{a^Rn'}は収束して、 lim(n→∞)a^Rn=lim(n→∞)a^Rn'>1 が成り立つ(この値をa^xと表す)。 (6)正数x,yに対して、a^xa^y=a^(x+y)が成り立つ。 (7)関数f(x)=a^x(x>0)は連続関数である。」 以上の証明方法を教えて頂きたいと思います。分かりづらい点もあるかも知れませんが、よろしくお願い致します。

PX-S06W 印刷の一部が欠ける
このQ&Aのポイント
  • PX-S06Wで印刷をすると一部が欠けてしまいます
  • EPSONのPX-S06Wで印刷すると一部が表示されない問題が発生しています
  • PX-S06Wの印刷品質に問題があり、一部が欠けてしまいます
回答を見る