- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
99 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 07:30:46.76 ID:z69KZ2wJ - >>97
別に俺にとって、再帰処理について、このスレで新たな知見なんてないし、変わるはずがないよ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
100 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 07:39:15.86 ID:z69KZ2wJ - >>95
何が怖いの?next()が書けない? for文 func(v) { for(i; i < size(v); i++) { do_something(v[i]); } return; } 再帰関数 next(v);//再帰の次の順番のノードを返す func(v) { if(size(v) == 0) { return; } do_something_push(v); v = next(v); func(v); do_something_pop(v); return; }
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
101 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 07:52:34.61 ID:z69KZ2wJ - どうやらやっと、これが再帰じゃないと
認めたようだな。 int sum = 0; for(int i = 1; i <= 10; i++) { sum = sum + i; } 認めるも何も間違った知見に、すり寄る気なんてさらさらありません
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
102 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 07:58:38.43 ID:z69KZ2wJ - int sum = 0;
for(int i = 1; i <= 10; i++) { sum = sum + i; } これは再帰関数ではもちろんないけど 再帰処理というのがあやふやならば 少なくとも再帰的アルゴリズム その理由は 左辺はn+1項までの和 それを右辺のn項までの和を使って再定義しているから
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
110 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 13:16:13.43 ID:z69KZ2wJ - >>105
変数の代入は、変数の再定義だろ 再定義って言葉が気に入らないなら つうか単語をいちいち突っ込む基地外に付き合ってやるけど *1 左辺はn+1項までの和 右辺のn項までの和を使って、左辺に代入しているから 再帰的とは あるものが定義されている場合, その定義の中に,更にその定義されるべきものが,簡単化されて,含まれているとき, それは「再帰的である」と言われます。 循環論法に似ていますが,少し違います。 再帰的はその部分に含まれるものが全く同じものではなくて, 簡単になったもので,最終的終了条件が明示されているものです。 に従って、*1は再帰的アルゴリズムである
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
111 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 13:32:36.36 ID:z69KZ2wJ - あるものが定義されている場合,
その定義の中に,更にその定義されるべきものが,簡単化されて,含まれているとき, それは「再帰的である」と言われます。 int sum = 0; for(int i = 1; i <= 10; i++) { sum = sum + i; } 左辺のsum(n+1項)に、右辺のsum(n項)として、簡単化されて含まれているから 再帰的である
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
112 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 13:41:36.65 ID:z69KZ2wJ - 再帰関数で書かれた再帰処理を
最適化してループで書いたら その処理は再帰処理じゃなくなるとか 意味が分かりませぬなぁ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
113 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 13:45:32.18 ID:z69KZ2wJ - また単語基地外に引っかかるといけないから
再帰関数で書かれた再帰的アルゴリズムを 最適化してループで書いたら その処理は再帰的アルゴリズムじゃなくなるとか 意味が分かりませぬなぁ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
114 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 13:52:33.44 ID:z69KZ2wJ - recursive processing、recursive algorithm
の和訳が 再帰処理、再帰的アルゴリズム 同じっちゃあ同じだけど、 処理の方が実装寄りで アルゴリズムは理論寄りかな
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
125 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 15:23:05.26 ID:z69KZ2wJ - g():ある変換関数、n:ある項
この時 f(n+1) = g(f(n)) このようにf()が定義されたらf()は再帰(帰納)的 再帰的とは あるものが定義されている場合, その定義の中に,更にその定義されるべきものが,簡単化されて,含まれているとき, それは「再帰的である」と言われます。 循環論法に似ていますが,少し違います。 再帰的はその部分に含まれるものが全く同じものではなくて, 簡単になったもので,最終的終了条件が明示されているものです。
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
126 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 15:24:06.23 ID:z69KZ2wJ - >>124
自己紹介乙
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
129 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 15:36:13.42 ID:z69KZ2wJ - まぁ、バカの[情緒的ポエム]は無視して
大辞林 第三版の解説 さいきてき【再帰的】 @自己の行為の結果が自己に戻ってくること。フィードバック。 A(数学などで)定義の中に定義されるものが含まれていること。 sum = sum + i; これは@にもAにも該当する
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
139 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 16:46:15.11 ID:z69KZ2wJ - >んじゃ、これは? scheme
>(let loop ((sum 0) >(i 1)) >(if (<= i 10) >(loop (+ sum i) >(+ i 1)) >sum)) c++で等価に書いたら void loop(int& sum, int& i){ if(i <= 10) loop(sum + i, i + 1); } void main(){ int s = 0,i = 1; loop(s, i); } だろ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
141 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 16:49:20.19 ID:z69KZ2wJ - って、参照でやっているように見える
void loop(int& sum, int& i){ sum = sum + i; i = i + 1; if(i <= 10) loop(sum, i); } void main(){ int s = 0,i = 1; loop(s, i); }
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
143 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 17:07:40.99 ID:z69KZ2wJ - >int sum = (int)(10 * (1 + 10) * 0.5));
あ、これも再帰だ 右辺の中にsumの簡単な項が含まれてた n項公差d sum=a1+a2+...+an=(n(2a1+d(n-1)))/2 だから、どうしたって 等差数列の和は、数列の簡単な項が含まれる
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
148 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 18:00:25.16 ID:z69KZ2wJ - A=B
B=C C=D D=E E=A ↑はどんなものでも当てはまるから無意味な循環論法 A=B B=C C=D D=E E=X ↑は計算可能な有意味な再帰論法 こういうのホント困るんだよね
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
150 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 18:06:08.89 ID:z69KZ2wJ - >>148
「迷惑の発明」はこうなってる
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
154 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 20:30:13.12 ID:z69KZ2wJ - まさか、プログラムで一人で作ってこうやる奴はいないと思うが、
int sum = 0, i = 1; while(true){ if(10 < i) i = 1; sum = sum + i; } 例えば、 D社から買ってA社はB社に売る A社から買ってB社はC社に売る B社から買ってC社はD社に売る C社から買ってD社はA社に売る と、個々の会社は俺は違うと思っていても 循環取引のサイクルの中に 知らずに取り込まれている場合がある こういう、「迷惑の発明」
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
155 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 20:44:12.92 ID:z69KZ2wJ - 失礼
int sum = 0, i = 1; while(true){ if(10 < i) i = 1; sum = sum + i; i++; } 個々は俺は違うと思っていても 循環取引のサイクルの中に 知らずに取り込まれている場合がある 手を広げていくと、こういう、「迷惑の発明」になっていくんだよ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
156 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 20:52:52.94 ID:z69KZ2wJ - 俺は
工学部卒で元ゲームプログラマの現ウェブデザイナで 週2日午前中勤務で、やってるよ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
159 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 21:04:50.57 ID:z69KZ2wJ - >>157
最近は、注意しないと、GCのオブジェクト参照だらけになってるよ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
164 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 21:21:23.34 ID:z69KZ2wJ - >>156
に嘘は全くないし 代入ってコピーだし 何か?
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
167 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 21:25:15.54 ID:z69KZ2wJ - C++で、演算子=()を作ったことがないんかいな?
オブジェクト参照にしないと、まるっきり使えない=になるよ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
171 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 21:35:25.59 ID:z69KZ2wJ - int型なら
int& oprator=(const int& rh){;} だから、これは >sum = sum; → プログラム。左辺のsumは右辺のsumと論理性を持った繋がりを保持しない。定義ではない。当然再定義でもない。 Cだとしてもミスリードだろ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
176 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 21:54:05.13 ID:z69KZ2wJ - >>174
別に都合が悪くはないよ それで俺は一応生活できてるよ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
178 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 21:56:42.35 ID:z69KZ2wJ - A=B
A←B こんな感じだろ
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
179 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 21:59:21.65 ID:z69KZ2wJ - 明示的に()や暗黙的な優先順位に差がない限りは後方解決
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
187 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 22:12:14.09 ID:z69KZ2wJ - 明示的に()や暗黙的な優先順位に差がない限りは後方解決
で、なにかって 演算子の優先順位に従って、後方解決の再帰的処理で解いてくのが、式
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
190 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 22:40:26.71 ID:z69KZ2wJ - A=(2.0+3.0)-4.0*(5.0-6.0/7.0);
0階から()を探す で、1階の()の処理 (2.0+3.0),(5.0-6.0/7.0) 1階の()内の*/の処理 6.0/7.0 1階の()内の+-の処理 (2.0+3.0),(5.0-0.857) 0階に戻ってきて*/の処理 4.0*4.142 0階に戻ってきて+-の処理 5.0-16.571 答え -11.571 で、Aに代入
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
192 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 22:53:34.11 ID:z69KZ2wJ - 再帰理論では
循環論法 main(){return main();} か 再帰論法 main(){return 0;} か ってこんなに分かりやすくはない話だけど 要するに、迷惑の発明を争う
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
195 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 23:02:21.08 ID:z69KZ2wJ - 例えば、
D社から買ってA社はB社に売る A社から買ってB社はC社に売る B社から買ってC社はD社に売る C社から買ってD社はA社に売る と、個々の会社は俺は違うと思っていても 循環取引のサイクルの中に 知らずに取り込まれている場合がある こういう、「迷惑の発明」 A=B B=C C=D D=A 俺は違うって言っても取り込まれて んー、どうしたもんかねえ?
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
198 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 23:21:08.24 ID:z69KZ2wJ - だから、循環論法の迷惑の発明は、やめてください
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
200 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 23:40:29.73 ID:z69KZ2wJ - >>199
こういう問題が大問題 D社から買ってA社はB社に売る A社から買ってB社はC社に売る B社から買ってC社はD社に売る C社から買ってD社はA社に売る と、個々の会社は俺は違うと思っていても 循環取引のサイクルの中に 知らずに取り込まれている場合がある こういう、「迷惑の発明」
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
202 :NAS6 ◆n3AmnVhjwc []:2015/09/07(月) 23:46:02.94 ID:z69KZ2wJ - 記号にすれば
? こんな図式
|