【アルゴリズム入門】基本情報サンプル問題(科目B)問9

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 พ.ย. 2024

ความคิดเห็น • 40

  • @99a-t1q
    @99a-t1q 3 วันที่ผ่านมา

    再帰呼び出しの仕組みはわかっているはずなのに、全部トレースしてみようとしたところ全くトレースできず、色々な方の動画を見まくりました
    めちゃくちゃ丁寧でやっとやっと理解できました
    本当にありがとうございます!!

  • @品川EJ鈴木
    @品川EJ鈴木 ปีที่แล้ว +12

    いろいろ解説をあたってみましたが、わからないものばかりで閉口していましたが、本動画はサブタイトルにあるように素直で非常にわかりやすい説明で大変助かりました。再帰処理は追うのが面倒で難しいですね。この動画は一見ホワイトボードにごちゃくちゃ書かれていて見るのがめんどくさそう、という印象でしたが、本当にわからない問題に当たった時にはここまで親切に説明してもらわないと解決できないんだと感じました。これからも難問をどんどん解説していってください。今後お世話になります。

  • @まあさん-m4i
    @まあさん-m4i 9 หลายเดือนก่อน +10

    処理の文章には、引数など無いように見られますが、どうして8まで出力が終わると一つ前(4を出力した処理)に戻るのでしょうか?

  • @nastu2685
    @nastu2685 ปีที่แล้ว +1

    今この問題を解いていて、全く理解できずにこの動画に辿り着きました。
    私のアルゴリズムの理屈への理解が乏しいため少し時間はかかりましたが
    とても分かりやすく、助かりました。ありがとうございます。

  • @WYU1A
    @WYU1A 7 หลายเดือนก่อน +2

    この動画を見てやっと理解できました。ありがとうございます。

    • @bun_ai
      @bun_ai  7 หลายเดือนก่อน

      ありがとうございます!!

  • @セカンドスター
    @セカンドスター ปีที่แล้ว +1

    わからなくて困っていました。わかって嬉しいです。ありがとうございます。

  • @goldenfinger644
    @goldenfinger644 ปีที่แล้ว +2

    理解できました😆😆😆
    詳しい解説ありがとうございます。
    試験向けの言語とはいえ、分かりやすい擬似言語にすべきだと思う、

  • @高原大輔-h5t
    @高原大輔-h5t 2 หลายเดือนก่อน +1

    分かりやすいけど問題が難しくて頭パンクしちゃう

  • @benkyobenbenbenben
    @benkyobenbenbenben 3 หลายเดือนก่อน

    理解深まりました!!!!ありがとうございます!!

  • @ms-ws2xm
    @ms-ws2xm ปีที่แล้ว +1

    選択肢イは先行順、エが後行順ですかね。わかりやすかったです。ありがとうございました。

    • @bun_ai
      @bun_ai  ปีที่แล้ว +1

      その通りですね!
      ありがとうございます🙇‍♂️

  • @夏目一色
    @夏目一色 ปีที่แล้ว +7

    なぜ最初の8を見つけるまでnを出力しないのでしょうか?
    呼び出しで8の節まで潜っていく過程でn=1や2という値がでるのならそれを出力する必要があり、選択肢イではないのか?とおもってしまうのですが。。。
    if (tree[n]の要素数 が 2 と等しい)
    order(tree[n][1])
    nを出力     ←ここにもnを出力と書いてありますがこれは適応しないのですか?
    order(tree[n][2])

    • @bun_ai
      @bun_ai  ปีที่แล้ว +8

      8の節に辿り着くまでnが出力されないのは、「nを出力」の行まで到達していないからです。
      その直前のorder(tree[n][1])の行でorderが再帰呼び出しされるため、その再帰呼び出しの処理が終了するまで「nを出力」の行には到達しません。

    • @夏目一色
      @夏目一色 ปีที่แล้ว +1

      @@bun_ai わかりやすい説明ありがとうございます!

  • @ラテ-q9o
    @ラテ-q9o 6 หลายเดือนก่อน

    わかるようになりました!ありがとうございます

  • @yuto_taku
    @yuto_taku 4 หลายเดือนก่อน

    再起処理のプログラムはfactorialとorder以外にありますか?英単語( )の関数は再帰呼び出しと認識して良いのでしょうか?
    また、再帰呼び出し系の処理は今どこをやっているのか正直訳分からなくなります。何かコツは無いのでしょうか?

  • @のんぴ-d8g
    @のんぴ-d8g ปีที่แล้ว

    問題文が何を言っているのか、いきなりわからなかった。から助かったー
    解説してもらったら納得できるけど、一人で解けない、ひらめかない。

  • @osamu7163
    @osamu7163 ปีที่แล้ว +3

    本当にわかりやすかったです。ありがとうございました。
    ちなみに先行順?と後行順?のプログラムも教えていただければ助かります。
    試験に出そうな予感がします。

    • @bun_ai
      @bun_ai  ปีที่แล้ว +2

      先行順と後行順は動画の中で説明している通りで、手続orderのコードの順番を少し変える程度で実現できるので、じっくり考えてみていただきたいところです。
      (nを出力するタイミングがポイントです。)
      が、せっかくなので解説動画の作成も検討してみます!

  • @reina4179
    @reina4179 ปีที่แล้ว +1

    8.4.9が出力されるところまではわかったのですが、17:37くらいのIF文が終わったところで、n=2(4行目)に戻るというのがよくわかりません。どうやって判断すればよいでしょうか?

    • @bun_ai
      @bun_ai  ปีที่แล้ว +1

      order(tree[n][1])(今回はorder(4))の実行が終わった瞬間なので、order(4)の呼び出し元に戻ります。
      要するに、「どこから呼び出されたのか?」という観点で考えて、判断すればいいです!

  • @戸部カケル
    @戸部カケル 3 หลายเดือนก่อน

    処理が再帰呼び出しである、というのはどこで判断すればいいんでしょうか?f(x)というのは再帰関数というのは理解できるんですが,order(n)が再帰呼び出しになるのはorder=f で(n)=(x)なので再帰関数と判断できるんでしょうか?
    私の見間違いかもしれませんが()がつく疑似言語が他にもあるので混乱してしまうんですが・・・

    • @ぐちまさ-h7h
      @ぐちまさ-h7h 4 วันที่ผ่านมา +1

      〇order()と定義されているプログラム内でorder()と呼び出しているので再帰です。

    • @戸部カケル
      @戸部カケル 3 วันที่ผ่านมา +1

      @ぐちまさ-h7h 返信ありがとうございます。
      最近理解しました。
      たとえば
      ◯TH-cam()
      のプログラムの中でまたTH-cam()
      を使うから再帰なんですよね。

    • @ぐちまさ-h7h
      @ぐちまさ-h7h 3 วันที่ผ่านมา +1

      @@戸部カケル 偉そうにすみませんでした。
      僕も先日理解したばかりです。
      お互い頑張りましょう!!

  • @立石美結
    @立石美結 5 หลายเดือนก่อน

    tree [1][1]が、[2]を指すのが分かりません。
    「配列treeの要素は、対応する節の子の節番号を、左の子、右の子の順に格納した配列である」からどうやって読み取っているんでしょうか?
    →「tree[a][b]はa番目の節のb(左or右)を意味する」というのが読み取れないです。

    • @いんきち
      @いんきち 11 วันที่ผ่านมา

      左の[1]ではtree自体の配列なので{2,3}が配列の1番目になり、{4,5}は配列の2番目になります。右の[1]では配列1番目の中の左か右かを見ています。つまり{2,3}では2が[1]になり3が[2]になります。

  • @望月拓実-v9w
    @望月拓実-v9w 11 หลายเดือนก่อน

    自分用メモ📝
    5行目のアルゴリズム使わないのか?

  • @nosuke2284
    @nosuke2284 ปีที่แล้ว

    [1][1]と[1 , 1]は同じ意味ですか?私が持っているテキストでは二次元配列の場合、カンマで区切られています。「二次元配列」と「配列の配列」はそもそも考え方が違うということでしょうか?

    • @bun_ai
      @bun_ai  ปีที่แล้ว +1

      同じだと解釈していただいて問題ないと思います。
      ただしより正確には、二次元配列と配列の配列は異なる概念です。(文脈によっては同じ意味で使われることも多いですが)
      この擬似言語の仕様としては、array[i, j]は二次元配列、array[i][j]は配列の配列としているのだと思います。

  • @hirokiyamada-f3z
    @hirokiyamada-f3z ปีที่แล้ว

    なぜ8の次に9ではなく4を出力するのかが分かりません....

    • @user-og5gq8xc2k
      @user-og5gq8xc2k ปีที่แล้ว +2

      8を出力した後はorder(4)の手続きに戻りますよね。
      order(4)の手続きは3行目までは終わってるので飛ばして、
      4行目に“nを出力"とあるから4を出力すると思います。
      (的外れだったらすみません🙇🏻‍♀️)

  • @クリリンのことカァー
    @クリリンのことカァー ปีที่แล้ว

    なぜ、最初のオーダーの後のn=4は出力されないのですか💦
    初心者で申し訳ないです。

    • @bun_ai
      @bun_ai  ปีที่แล้ว

      n=4のときのorderの処理では、order(tree[n][1])(つまりorder(8))の実行が終了してから、n(つまり4)を出力しています。
      もし再帰呼び出しの部分で混乱されている場合は、再帰的アルゴリズムの解説をご覧ください。

    • @クリリンのことカァー
      @クリリンのことカァー ปีที่แล้ว +2

      @@bun_ai
      ありがとうございました!
      600点超えました!!
      解説のおかげです🙇🙇🙇

  • @望月拓実-v9w
    @望月拓実-v9w 11 หลายเดือนก่อน

    10:43
    復習andよく分かってない

  • @snakano2431
    @snakano2431 ปีที่แล้ว +1

    出力までの流れとしては分かったのですが、そもそもtree[n][1]が左でtree[n][2]が右のことを表しているというのは、どのように判断してるのですか?単純に問題文の解釈が出来ていないことによる躓きなのか分かりません…

    • @sherawings
      @sherawings ปีที่แล้ว

      問題文の「配列treeの要素は、対応する節の子の節番号を、左の子、右の子の順に格納した配列である」から読み取るのではないでしょうか。
       私はこの動画を見ても理解できないレベルなので、的外れでしたらすみません。

    • @倒置爆破
      @倒置爆破 ปีที่แล้ว

      その解釈であってます