ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
再帰呼び出しの仕組みはわかっているはずなのに、全部トレースしてみようとしたところ全くトレースできず、色々な方の動画を見まくりましためちゃくちゃ丁寧でやっとやっと理解できました本当にありがとうございます!!
いろいろ解説をあたってみましたが、わからないものばかりで閉口していましたが、本動画はサブタイトルにあるように素直で非常にわかりやすい説明で大変助かりました。再帰処理は追うのが面倒で難しいですね。この動画は一見ホワイトボードにごちゃくちゃ書かれていて見るのがめんどくさそう、という印象でしたが、本当にわからない問題に当たった時にはここまで親切に説明してもらわないと解決できないんだと感じました。これからも難問をどんどん解説していってください。今後お世話になります。
処理の文章には、引数など無いように見られますが、どうして8まで出力が終わると一つ前(4を出力した処理)に戻るのでしょうか?
今この問題を解いていて、全く理解できずにこの動画に辿り着きました。私のアルゴリズムの理屈への理解が乏しいため少し時間はかかりましたがとても分かりやすく、助かりました。ありがとうございます。
この動画を見てやっと理解できました。ありがとうございます。
ありがとうございます!!
わからなくて困っていました。わかって嬉しいです。ありがとうございます。
理解できました😆😆😆詳しい解説ありがとうございます。試験向けの言語とはいえ、分かりやすい擬似言語にすべきだと思う、
分かりやすいけど問題が難しくて頭パンクしちゃう
理解深まりました!!!!ありがとうございます!!
選択肢イは先行順、エが後行順ですかね。わかりやすかったです。ありがとうございました。
その通りですね!ありがとうございます🙇♂️
なぜ最初の8を見つけるまでnを出力しないのでしょうか?呼び出しで8の節まで潜っていく過程でn=1や2という値がでるのならそれを出力する必要があり、選択肢イではないのか?とおもってしまうのですが。。。 if (tree[n]の要素数 が 2 と等しい)order(tree[n][1]) nを出力 ←ここにもnを出力と書いてありますがこれは適応しないのですか? order(tree[n][2])
8の節に辿り着くまでnが出力されないのは、「nを出力」の行まで到達していないからです。その直前のorder(tree[n][1])の行でorderが再帰呼び出しされるため、その再帰呼び出しの処理が終了するまで「nを出力」の行には到達しません。
@@bun_ai わかりやすい説明ありがとうございます!
わかるようになりました!ありがとうございます
再起処理のプログラムはfactorialとorder以外にありますか?英単語( )の関数は再帰呼び出しと認識して良いのでしょうか?また、再帰呼び出し系の処理は今どこをやっているのか正直訳分からなくなります。何かコツは無いのでしょうか?
問題文が何を言っているのか、いきなりわからなかった。から助かったー解説してもらったら納得できるけど、一人で解けない、ひらめかない。
本当にわかりやすかったです。ありがとうございました。ちなみに先行順?と後行順?のプログラムも教えていただければ助かります。試験に出そうな予感がします。
先行順と後行順は動画の中で説明している通りで、手続orderのコードの順番を少し変える程度で実現できるので、じっくり考えてみていただきたいところです。(nを出力するタイミングがポイントです。)が、せっかくなので解説動画の作成も検討してみます!
8.4.9が出力されるところまではわかったのですが、17:37くらいのIF文が終わったところで、n=2(4行目)に戻るというのがよくわかりません。どうやって判断すればよいでしょうか?
order(tree[n][1])(今回はorder(4))の実行が終わった瞬間なので、order(4)の呼び出し元に戻ります。要するに、「どこから呼び出されたのか?」という観点で考えて、判断すればいいです!
処理が再帰呼び出しである、というのはどこで判断すればいいんでしょうか?f(x)というのは再帰関数というのは理解できるんですが,order(n)が再帰呼び出しになるのはorder=f で(n)=(x)なので再帰関数と判断できるんでしょうか?私の見間違いかもしれませんが()がつく疑似言語が他にもあるので混乱してしまうんですが・・・
〇order()と定義されているプログラム内でorder()と呼び出しているので再帰です。
@ぐちまさ-h7h 返信ありがとうございます。最近理解しました。たとえば◯TH-cam()のプログラムの中でまたTH-cam()を使うから再帰なんですよね。
@@戸部カケル 偉そうにすみませんでした。僕も先日理解したばかりです。お互い頑張りましょう!!
tree [1][1]が、[2]を指すのが分かりません。「配列treeの要素は、対応する節の子の節番号を、左の子、右の子の順に格納した配列である」からどうやって読み取っているんでしょうか?→「tree[a][b]はa番目の節のb(左or右)を意味する」というのが読み取れないです。
左の[1]ではtree自体の配列なので{2,3}が配列の1番目になり、{4,5}は配列の2番目になります。右の[1]では配列1番目の中の左か右かを見ています。つまり{2,3}では2が[1]になり3が[2]になります。
自分用メモ📝5行目のアルゴリズム使わないのか?
[1][1]と[1 , 1]は同じ意味ですか?私が持っているテキストでは二次元配列の場合、カンマで区切られています。「二次元配列」と「配列の配列」はそもそも考え方が違うということでしょうか?
同じだと解釈していただいて問題ないと思います。ただしより正確には、二次元配列と配列の配列は異なる概念です。(文脈によっては同じ意味で使われることも多いですが)この擬似言語の仕様としては、array[i, j]は二次元配列、array[i][j]は配列の配列としているのだと思います。
なぜ8の次に9ではなく4を出力するのかが分かりません....
8を出力した後はorder(4)の手続きに戻りますよね。order(4)の手続きは3行目までは終わってるので飛ばして、4行目に“nを出力"とあるから4を出力すると思います。(的外れだったらすみません🙇🏻♀️)
なぜ、最初のオーダーの後のn=4は出力されないのですか💦初心者で申し訳ないです。
n=4のときのorderの処理では、order(tree[n][1])(つまりorder(8))の実行が終了してから、n(つまり4)を出力しています。もし再帰呼び出しの部分で混乱されている場合は、再帰的アルゴリズムの解説をご覧ください。
@@bun_aiありがとうございました!600点超えました!!解説のおかげです🙇🙇🙇
10:43 復習andよく分かってない
出力までの流れとしては分かったのですが、そもそもtree[n][1]が左でtree[n][2]が右のことを表しているというのは、どのように判断してるのですか?単純に問題文の解釈が出来ていないことによる躓きなのか分かりません…
問題文の「配列treeの要素は、対応する節の子の節番号を、左の子、右の子の順に格納した配列である」から読み取るのではないでしょうか。 私はこの動画を見ても理解できないレベルなので、的外れでしたらすみません。
その解釈であってます
再帰呼び出しの仕組みはわかっているはずなのに、全部トレースしてみようとしたところ全くトレースできず、色々な方の動画を見まくりました
めちゃくちゃ丁寧でやっとやっと理解できました
本当にありがとうございます!!
いろいろ解説をあたってみましたが、わからないものばかりで閉口していましたが、本動画はサブタイトルにあるように素直で非常にわかりやすい説明で大変助かりました。再帰処理は追うのが面倒で難しいですね。この動画は一見ホワイトボードにごちゃくちゃ書かれていて見るのがめんどくさそう、という印象でしたが、本当にわからない問題に当たった時にはここまで親切に説明してもらわないと解決できないんだと感じました。これからも難問をどんどん解説していってください。今後お世話になります。
処理の文章には、引数など無いように見られますが、どうして8まで出力が終わると一つ前(4を出力した処理)に戻るのでしょうか?
今この問題を解いていて、全く理解できずにこの動画に辿り着きました。
私のアルゴリズムの理屈への理解が乏しいため少し時間はかかりましたが
とても分かりやすく、助かりました。ありがとうございます。
この動画を見てやっと理解できました。ありがとうございます。
ありがとうございます!!
わからなくて困っていました。わかって嬉しいです。ありがとうございます。
理解できました😆😆😆
詳しい解説ありがとうございます。
試験向けの言語とはいえ、分かりやすい擬似言語にすべきだと思う、
分かりやすいけど問題が難しくて頭パンクしちゃう
理解深まりました!!!!ありがとうございます!!
選択肢イは先行順、エが後行順ですかね。わかりやすかったです。ありがとうございました。
その通りですね!
ありがとうございます🙇♂️
なぜ最初の8を見つけるまでnを出力しないのでしょうか?
呼び出しで8の節まで潜っていく過程でn=1や2という値がでるのならそれを出力する必要があり、選択肢イではないのか?とおもってしまうのですが。。。
if (tree[n]の要素数 が 2 と等しい)
order(tree[n][1])
nを出力 ←ここにもnを出力と書いてありますがこれは適応しないのですか?
order(tree[n][2])
8の節に辿り着くまでnが出力されないのは、「nを出力」の行まで到達していないからです。
その直前のorder(tree[n][1])の行でorderが再帰呼び出しされるため、その再帰呼び出しの処理が終了するまで「nを出力」の行には到達しません。
@@bun_ai わかりやすい説明ありがとうございます!
わかるようになりました!ありがとうございます
再起処理のプログラムはfactorialとorder以外にありますか?英単語( )の関数は再帰呼び出しと認識して良いのでしょうか?
また、再帰呼び出し系の処理は今どこをやっているのか正直訳分からなくなります。何かコツは無いのでしょうか?
問題文が何を言っているのか、いきなりわからなかった。から助かったー
解説してもらったら納得できるけど、一人で解けない、ひらめかない。
本当にわかりやすかったです。ありがとうございました。
ちなみに先行順?と後行順?のプログラムも教えていただければ助かります。
試験に出そうな予感がします。
先行順と後行順は動画の中で説明している通りで、手続orderのコードの順番を少し変える程度で実現できるので、じっくり考えてみていただきたいところです。
(nを出力するタイミングがポイントです。)
が、せっかくなので解説動画の作成も検討してみます!
8.4.9が出力されるところまではわかったのですが、17:37くらいのIF文が終わったところで、n=2(4行目)に戻るというのがよくわかりません。どうやって判断すればよいでしょうか?
order(tree[n][1])(今回はorder(4))の実行が終わった瞬間なので、order(4)の呼び出し元に戻ります。
要するに、「どこから呼び出されたのか?」という観点で考えて、判断すればいいです!
処理が再帰呼び出しである、というのはどこで判断すればいいんでしょうか?f(x)というのは再帰関数というのは理解できるんですが,order(n)が再帰呼び出しになるのはorder=f で(n)=(x)なので再帰関数と判断できるんでしょうか?
私の見間違いかもしれませんが()がつく疑似言語が他にもあるので混乱してしまうんですが・・・
〇order()と定義されているプログラム内でorder()と呼び出しているので再帰です。
@ぐちまさ-h7h 返信ありがとうございます。
最近理解しました。
たとえば
◯TH-cam()
のプログラムの中でまたTH-cam()
を使うから再帰なんですよね。
@@戸部カケル 偉そうにすみませんでした。
僕も先日理解したばかりです。
お互い頑張りましょう!!
tree [1][1]が、[2]を指すのが分かりません。
「配列treeの要素は、対応する節の子の節番号を、左の子、右の子の順に格納した配列である」からどうやって読み取っているんでしょうか?
→「tree[a][b]はa番目の節のb(左or右)を意味する」というのが読み取れないです。
左の[1]ではtree自体の配列なので{2,3}が配列の1番目になり、{4,5}は配列の2番目になります。右の[1]では配列1番目の中の左か右かを見ています。つまり{2,3}では2が[1]になり3が[2]になります。
自分用メモ📝
5行目のアルゴリズム使わないのか?
[1][1]と[1 , 1]は同じ意味ですか?私が持っているテキストでは二次元配列の場合、カンマで区切られています。「二次元配列」と「配列の配列」はそもそも考え方が違うということでしょうか?
同じだと解釈していただいて問題ないと思います。
ただしより正確には、二次元配列と配列の配列は異なる概念です。(文脈によっては同じ意味で使われることも多いですが)
この擬似言語の仕様としては、array[i, j]は二次元配列、array[i][j]は配列の配列としているのだと思います。
なぜ8の次に9ではなく4を出力するのかが分かりません....
8を出力した後はorder(4)の手続きに戻りますよね。
order(4)の手続きは3行目までは終わってるので飛ばして、
4行目に“nを出力"とあるから4を出力すると思います。
(的外れだったらすみません🙇🏻♀️)
なぜ、最初のオーダーの後のn=4は出力されないのですか💦
初心者で申し訳ないです。
n=4のときのorderの処理では、order(tree[n][1])(つまりorder(8))の実行が終了してから、n(つまり4)を出力しています。
もし再帰呼び出しの部分で混乱されている場合は、再帰的アルゴリズムの解説をご覧ください。
@@bun_ai
ありがとうございました!
600点超えました!!
解説のおかげです🙇🙇🙇
10:43
復習andよく分かってない
出力までの流れとしては分かったのですが、そもそもtree[n][1]が左でtree[n][2]が右のことを表しているというのは、どのように判断してるのですか?単純に問題文の解釈が出来ていないことによる躓きなのか分かりません…
問題文の「配列treeの要素は、対応する節の子の節番号を、左の子、右の子の順に格納した配列である」から読み取るのではないでしょうか。
私はこの動画を見ても理解できないレベルなので、的外れでしたらすみません。
その解釈であってます