• 締切済み

トップダウン解析とボトムアップ解析について

recur(n){ if(n>0){ recur(n-3); recur(n); recur(n-1); } } というアルゴリズムの仮引数を5にした場合 トップダウン解析での出力結果は2,1,5,1,4,3,2,1の順で正しいでしょうか? また、ボトムアップ解析を用いて解析する場合どのように考えれば良いでしょうか? よろしくお願いします

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

どう考えても無限再帰しそうなんですが.... さておき, 「トップダウン解析」とか「ボトムアップ解析」を, どのような意味で使ってますか?

nullnull00
質問者

補足

回答ありがとうございます 自己解決しました すいません 出力はトップダウンでもボトムアップでも2,1,5,1,4,3,2,1で正解で、ボトムアップで考える場合は recur(0)→何もしない recur(1)→recur(-2),1,recur(0)→1 recur(2)→recur(-1),2,recur(1)→2,1 recur(3)→recur(0),3,recur(2)→3,2,1 recur(4)→recur(1),4,recur(3)→1,4,3,2,1 recur(5)→recur(2),5,recur(4)→2,1,5,1,4,3,2,1 と考えるようです

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

関連するQ&A

  • トップダウン解析について(困っています。大至急お願いしたいです。)

    大至急お願いしたいです。困っています。 次のプログラムで4を入力したときのトップダウン解析したいのですが #include <stdio.h> void recursion(int n); int main(void) { -----int a; -----printf("整数を入力:"); -----scanf("%d", &a); -----recursion(a); -----printf("\n"); -----return 0; } void recursion(int n) { -----if(n > 0) -----{ ----------recursion(n-1); ----------printf("%d", n); ----------recursion(n-2); -----} } 実行結果:1231412 この解析を行うための図は画像のようになるということですが、流れが分かりません。はじめ、4を入力するとプログラムのrecursion(n-1);よりrecursion(4-1);となり図の一番上の箱の中recursion(3)となるのはいいと思うのですが、その次はどうすればよいのでしょうか。 分かる方がいましたら回答よろしくお願いします。 画像について(流れ) (a) recursion(3) (b) 4を出力 (c) recursion(2)

  • トップダウン方式とボトムアップ方式

    トップダウン方式とボトムアップ方式とはどういう意味なのでしょうか?

  • ボトムアップ処理とトップダウン処理

    ボトムアップ処理とトップダウン処理とは何でしょうか。簡単にご説明をお願いします。

  • ボトムアップ処理・トップダウン処理について

    認知心理学の勉強をしています。 ボトム・アップ処理とトップ・ダウン処理をできるだけわかりやすく、教えてください。具体例を挙げて教えてくださると、嬉しいです。

  • 生態系におけるトップダウン・ボトムアップとは

    生態系における「トップダウン効果」「ボトムアップ効果」とはどういった意味でつかわれているのでしょうか? 化学(ナノテク)や経営戦略における意味ならわかるのですが、生態系に関してはいまいちわかりません。いろいろ調べたのですが、まだ意味をつかみきれていないので教えてください。 もうひとつ、同じく生態系の文脈で「不動化」と言った場合、「無機化された栄養素を微生物が利用する」という意味でいいのでしょうか?こちらは自信がないのでもし間違ってたら正しい意味を教えてください。

  • ボトムアップ型の利点とは?教えて下さい。

    日本の会社の傾向=ボトムアップ型意思決定 国際化の激しい時代でボトムアップ型は海外に支店を持つ会社には不適当なのでしょうか? トップダウン型に変える利点とは? また逆に日本のボトムアップ型にはどんな利点があるのですか? 教えて下さい。宜しくお願いします。

  • ボトムアップ経営について教えて下さい。

    トップダウン経営を取り入れやすい産業は、マニュアル経営などのタイプのサービス業だと思うのですが、ボトムアップ経営を取り入れやすい産業とは何ですか? 教えて下さい。お願いします。

  • Oracle8のトップN解析

    質問させていただきます。 Oracle8iの場合、トップN解析ということで select id, name from (select id, name from tmp order by id desc) where rownum <= 3; というSQLを作成してidを前から3つだけ検索できますが、 Oracle8の場合、インラインビューでの[order by]が 無効なので、困っています。 よければ、ほかの方法はないものでしょうか?

  • C言語<素数を求めるプログラム>

    #include<stdio.h> int j; int prime(int n) { int i; if(n < 2) return 0; if(n == 2) return 1; if(n%2 == 0) return 0; for(i = 3; i*i<= n; i += 2){ if(n%i == 0) return 0; } return 1; } int main(void) { int n; for(n=1; n <= 1000; n++) { if(prime(n)){ printf("%d\n",n); j++; } } printf("素数の個数は全部で %d 件見つかりました。\n",j); return 0; } このプログラムは1から1000までの素数のみを表示させるプログラムでありますが、このアルゴリズムが全くわかりません。 int prime(int n)の中身のアルゴリズムがどういう仕組みになっているのかお分かりになりますでしょうか?

  • Linuxについて

    Linuxのスクリプトについて Linuxのスクリプトについての質問です #/bin/sh n=$1 while [ $n -le $2 ]; do echo "year $n" cal $n n=`expr $n + $3` done という引数に応じてカレンダーを出力するスクリプトを作成しました。 このスクリプトは引数が2つの場合は、1年ごとのカレンダーが表示されます。 ここに、引数が2つより少ないときはエラーメッセージを出力してプログラムを終了する機能をつけたいのですが 方法がよくわかりません。 #!/bin/bash # 実行時に指定された引数の数、つまり変数 $# の値が 3 でなければエラー終了。 if [ $# -ne 3 ]; then echo "指定された引数は$#個です。" 1>&2 echo "実行するには3個の引数が必要です。" 1>&2 exit 1 fi # ヒアドキュメントでメッセージを表示する。 cat <<__EOT__ 指定された引数は、 $1 $2 $3 の$#個です。 __EOT__ exit 0 このスクリプトをなんとか応用すればできると思うのですが なにせ初心者なもので;; ちょっと複雑になるとすぐに頭が混乱してしまう所存です・・・ どなたかご親切な方のご回答をお待ちしています。