[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/08 14:06 / Filesize : 275 KB / Number-of Response : 1034
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

なあ、再帰関数好きな人いる?



1 名前:名無しのプログラマ [2015/08/09(日) 17:46:33.69 ID:Icb40LOY.net]
for,while使うの嫌いで基本的に再帰多用するんだが、だめなの?
皆から敬遠されてる気がする

809 名前:NAS6 ◆n3AmnVhjwc [2015/09/05(土) 23:54:52.90 ID:zGjt7Ia9.net]
htzS6HST
お前あほ杉
なんも分かってないなら書き込むな

810 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 23:55:51.09 ID:htzS6HST.net]
>>789
わかってるから書き込んでいる。

これも「再帰」(大爆笑)

811 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 23:57:07.95 ID:m0Ws+Wye.net]
話がループ・・・おっと違った
話が再帰してる(大爆笑)

812 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 00:00:00.32 ID:aj7iBxVG.net]
ループと再帰関数を同一だと主張するだけで(それすらオレオレ定義&根拠無し)その先のことを何も言わないのは何故?
「Xは再帰」「Yは再帰」「Zは再帰」って、いくらコードを書いても根拠にならないのは分かってる?
お前が書かなきゃならんことは「Xが再帰であることの根拠」であるのだから、お前の頭の中にしかない「再帰関数の定義」を書かないといけない。
もしオレオレ定義じゃないなら>>742>>714の再帰関数の定義に、お前の書くコードがどう当てはまるのか書かないといけない。

そんで結局NAS6 ◆n3AmnVhjwcの主張は何なの?再帰関数が好きなの嫌いなの?
スレ違いも大概にしなさいよ。

813 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 00:01:55.86 ID:8kAWPtv+.net]
NAS6 ◆n3AmnVhjwcの主張はこれ。

719 名前:NAS6 ◆n3AmnVhjwc [] 投稿日:2015/09/05(土) 12:25:42.76 ID:zGjt7Ia9 [22/59]
int sum = 0;
 for(int i = 1; i <= 10; i++) {
  sum = sum + i;
}

な、これは再帰だろ、頭が悪いんだから、教授に迷惑をかけるなよ

814 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 00:02:26.01 ID:miXQ60Mg.net]
>>788
そのsearchDirの書式を簡単にして

ttp://nas6.main.jp/sptr.cpp

template<typename T>
void disp_NAS6_tree_clct(NAS6_tree_clct<T>* root);
template<typename T>
void disp_NAS6_tree_clct_key(NAS6_tree_clct<T>* root, string fk);
とか、ノード検索をなんも考えないでノード検索が出来ちゃう

815 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 00:02:42.93 ID:8kAWPtv+.net]
ちなみに>>720は再帰じゃないから、
>>720を再帰で書き直すことができる

816 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 00:03:42.83 ID:8kAWPtv+.net]
>>794
今は再帰かどうかの話をしてるんだが?(大爆笑)

searchDir の中で searchDir を読んでるから再帰。
FindNextFileを使ってるもの全てが再帰になるわけじゃない。

817 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 00:07:36.08 ID:miXQ60Mg.net]
ttp://nas6.main.jp/secret/ContainerPtr.htm
これをコンソールアプリでビルドしてみ
ノード検索されてるから

で、forとかループに対応するものと言うから
再帰「関数」ではなく再帰「処理」を書いてる



818 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 00:09:15.40 ID:8kAWPtv+.net]
>>797
今は再帰の定義をしている。
全ての再帰はループで処理できる。

ループでノード検索しているから
それは再帰でない証拠(大爆笑)

ttp://nas6.main.jp/secret/ContainerPtr.htm
これをコンソールアプリでビルドしてみ
再帰使わずにノード検索できてるから

あ、ちなみに、このコードは俺が書いたんだよ?

819 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 00:13:16.02 ID:miXQ60Mg.net]
再帰「関数」だと、再帰「処理」内の、全てのコードを完全実装しなければならなくて
その振る舞いが決定されるから

ttp://nas6.main.jp/sptr.cpp

template<typename T>
void disp_NAS6_tree_clct(NAS6_tree_clct<T>* root);
template<typename T>
void disp_NAS6_tree_clct_key(NAS6_tree_clct<T>* root, string fk);

こう書いたんだよ

820 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 00:16:13.79 ID:miXQ60Mg.net]
>>798
なにこのカス

821 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 00:22:17.38 ID:miXQ60Mg.net]
>あ、ちなみに、このコードは俺が書いたんだよ?

じゃあ、デストラクタがどう呼ばれるか説明してみ
つうか、俺のサイトにお前がアップしたの?

822 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/09/06(日) 00:29:02.94 ID:0zNPIayW.net]
NAS6さん、華麗なる2ちゃんデビューおめ!

823 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 00:31:05.32 ID:CQ0buOj1.net]
ttp://nas6.main.jp/NAS6_tree_clct.h
数時間で↑のデストラクタの振る舞いが読めたら褒めちゃいます

824 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 00:48:13.59 ID:CQ0buOj1.net]
多分、どうなってるか
さっぱり分からんと思うけどね

825 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 01:09:59.10 ID:laHESI+6.net]
キチガイの思考過程がさっぱり分からないのは当然の事だろ

826 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 01:12:42.58 ID:miXQ60Mg.net]
//メモリリーク検出関数
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

メモリリークゼロ

827 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 01:15:51.45 ID:miXQ60Mg.net]
void main() {
int *p = new int;
#ifdef _MSC_VER

って書くと、int分4バイトだけリーク



828 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 01:32:13.72 ID:aj7iBxVG.net]
NAS6 ◆n3AmnVhjwcは再帰とは何かも含めて、言葉の定義を他と擦り合わせろ。
それができないなら自分のサイトに引きこもっていろ。

829 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 01:37:20.23 ID:miXQ60Mg.net]
俺は再帰「処理」を書いてるよ
再帰「関数」ならば、それで完結した書き方を
書かなきゃならなくて適宜運用に不向き

830 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 01:41:27.92 ID:aj7iBxVG.net]
なら何故ここにいるの?スレタイ読めないの?

831 名前:デフォルトの名無しさん [2015/09/06(日) 01:43:51.10 ID:Zg6i8dH9.net]
>>809
普通は再帰関数で行う処理のことを再帰処理って言うんだと思うよ。

832 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 01:48:22.86 ID:CQ0buOj1.net]
1 :名無しのプログラマ:2015/08/09(日) 17:46:33.69 ID:Icb40LOY
for,while使うの嫌いで基本的に再帰多用するんだが、だめなの?
皆から敬遠されてる気がする

for,whileって言うから、それに対応するものは
スレタイの再帰「関数」じゃなくて、再帰「処理」だからだよ

833 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 01:55:27.64 ID:CQ0buOj1.net]
ttp://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0%E7%9A%84%E5%A

834 名前:E%9A%E7%BE%A9
再帰的定義
[]
[ここ壊れてます]

835 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 01:56:17.98 ID:8PjODHJ7.net]
一人でそうゆうこと書いてて満足か?

836 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:08:49.81 ID:miXQ60Mg.net]
「再帰的定義: "再帰的定義"を参照」

//再帰構文例1
template<typename T>
void recHoge1(NAS6_tree_clct<T>* root, string fk) {
 bool parent = false;
 if (&root->recursiveInit() == nullptr) return;
 NAS6_tree_clct<T>* crnt = root;
 //crnt = root; の時のcrntに適用の処理
 //or : //if (crnt->conformkey(crnt, fk) != string::npos) //{...} //キー検索の時
 while (!crnt->recursiveIsEnd(root)) {

  //「再帰的定義: "再帰的定義"を参照」
  parent = false;
  crnt = &(crnt->recursiveNext(root), parent);
  //or : //crnt = &(crnt->recursiveKeyNext(root, fk, parent));


  //if(!parent) //{...} //crnt = Next; の時のcrntに適用の処理
  //else //{...} //親に戻った時の処理
 }
} 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


837 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:14:12.46 ID:miXQ60Mg.net]
//「再帰的定義: "再帰的定義"を参照」
parent = false;
crnt = &(crnt->recursiveNext(root), parent);
//or : //crnt = &(crnt->recursiveKeyNext(root, fk, parent));

左辺のcrntは、右辺のcrntの子ノードに遷移してんの



838 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 02:17:05.47 ID:aj7iBxVG.net]
それが文脈が無駄に高いオレオレコードをコピペする理由になると思ったのはどうして?
>>720を再帰だ、などという戯言が通らなくて癇癪起こしているだけじゃないか。

で、>>813の定義に>>720がどう当てはまっているんだ?俺には分からない。
もしもsum = sum + iが再帰的定義なんだと思っているなら、それは単なる代入だから違うぞ。

839 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:20:56.64 ID:CQ0buOj1.net]
//or : //crnt = &(crnt->recursiveKeyNext(root, fk, parent));

ああ、こっちはキーの一致の次のノードで子とは限らんけど

再帰だからもちろん親のノードにも最下層まで行ってから帰ってくるよ

840 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 02:21:09.18 ID:8PjODHJ7.net]
君、途中で再帰関数と再帰処理の違いを指摘されてなかったか?
なんか無言で言ってることを切り替えてるようだけど。

841 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:24:47.62 ID:miXQ60Mg.net]
「再帰的定義: "再帰的定義"を参照」
f(n+1) = f(n) + i;
sum = sum + i;

842 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 02:26:17.85 ID:8PjODHJ7.net]
>>820 もっかい聞くけど楽しいか?

843 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:28:04.25 ID:CQ0buOj1.net]
めちゃくちゃ楽しい

844 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 02:32:22.07 ID:8PjODHJ7.net]
ちょっと自己顕示欲が強いんだね
ただそれは迷惑だからそのへんも考えれるようになればいいね

845 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:33:09.17 ID:CQ0buOj1.net]
「再帰的定義: "再帰的定義"を参照」
f(n+1) = f(n) + i;
sum = sum + i;

左辺はn+1項で、右辺はn項

846 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:40:59.21 ID:CQ0buOj1.net]
670 :NAS6 ◆n3AmnVhjwc :2015/09/05(土) 07:33:00.36 ID:zGjt7Ia9
>>657
おま、戻り値を使いまわしたら基本的に再帰じゃないの?。。。

最初に書きました
戻り値の使い回しは基本的にn+1項の定義

847 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:52:22.91 ID:CQ0buOj1.net]
厳密にするわ
「再帰的定義: "再帰的定義"を参照」
f(n+1) = f(n) + i;
sum = sum + i;

左辺はn+1項までの和で、右辺はn項までの和



848 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 02:53:55.79 ID:miXQ60Mg.net]
全然間違ってすらいないよ

849 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 03:05:39.93 ID:miXQ60Mg.net]
一体、他にどう読んでたんだよ?

850 名前:デフォルトの名無しさん [2015/09/06(日) 03:21:13.07 ID:Zg6i8dH9.net]
>>828
君は他の人が言う再帰をどう読んでたの?

851 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 03:21:47.38 ID:aj7iBxVG.net]
全然違うよ。右辺のsumはどこで定義したんだ?int sum = 0が定義。sum + iでただ更新してるだけ。
一方のfは、初期値も含めて正確に表せばf(n) = if n = 0 then 0 else f(n-1) + 1となっていて、fを定義するのにf自身が必要。
これが再帰的定義。

852 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 03:30:27.61 ID:miXQ60Mg.net]
おいおい、初項を決めないで再帰(帰納)定義ができるわけはないだろ

853 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 03:33:43.48 ID:CQ0buOj1.net]
おま、数学の帰納法も開始できないのか?

854 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:00:23.70 ID:g2 ]
[ここ壊れてます]

855 名前:NsvO1D.net mailto: ヒントってか答え
初項:f(n = 0) = 0

f(1) = 0 + i
f(2) = f(1) + i = i + i
f(3) = f(2) + i = 2 * i + i
...

f(n + 1) = f(n) + i
[]
[ここ壊れてます]

856 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 04:17:34.08 ID:aj7iBxVG.net]
sumを定義するのにsumを使っていないから駄目で、sum = sum + iは定義じゃなくて単なる更新だから再帰的定義ではない。
int sum = 0とした後にどう更新しようが再帰的とは呼ばないんだよ。

百歩譲ってこれを再帰的定義と呼ぶのなら、当てはまる例が多すぎて何の価値もない概念になる。i++も再帰になるし
int y = 1;
int x = 2;
x = y
としたら偶々x = x/2をという処理になるからこれもお前の言う再帰的定義になるよな。
そんな馬鹿なもんにわざわざ名前を付ける意味も無いし、好き嫌いも語れんよな。

857 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:18:39.27 ID:g2NsvO1D.net]
>>830
では、理系の学部を卒業するのは奇跡だろ



858 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:20:59.76 ID:CQ0buOj1.net]
つ漸化式

859 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:30:52.77 ID:CQ0buOj1.net]
もしかして
ゆとりって、そんなヒドイの?

860 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:34:02.41 ID:CQ0buOj1.net]
そんなわけはないと思いたい

861 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:39:58.28 ID:miXQ60Mg.net]
漸化式から再帰定義をコーディングするのは当たり前だろ?
学部で習わなかった?

862 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:45:55.83 ID:miXQ60Mg.net]
おかしいな
理系ならば情報処理の単位で
漸化式からの再帰定義は
カリキュラムに多分あるはずだけど?

863 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 04:54:07.46 ID:8PjODHJ7.net]
元々な、そんな話は誰一人としてしてないからね。
自信満々に書き込んでる内容自体が全部ずれてるからね。

で、仮にそれが再帰だとして言いたいことはなんだ?

864 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:55:04.91 ID:miXQ60Mg.net]
ttp://www.a.math.ryukoku.ac.jp/~junta/edu/nc/exercise/5.html
>>758
>>760

865 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 04:58:01.28 ID:CQ0buOj1.net]
>>842
みたいなのを自分でやらずに
コピペ提出したんだろ

866 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 05:05:14.35 ID:8PjODHJ7.net]
ベンチ取ってないけどCの場合だと速いのは下だろう

つーか再帰の定義を世間のプログラマと同じにしたらどうだ

867 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 05:25:54.12 ID:g2NsvO1D.net]
バグがあると見るなら訂正
double calcPI(double r, double s, double n) {
 double u = 1.0;
 if (s == 1) u = 2.0;
 if (n == 0) return u * ( r + (r * s / (2.0 * s + 1.0)));
 return u * (r + calcPI(r * s / (2.0 * s + 1.0), s + 1, n - 1));
}
double calcPI3(double n) {
 double r = 1.0;
 double s = 1.0;
 double t = 1.0;
 double u = 1.0;
 while (0 <= n) {
  t = t * s / (2.0 * s + 1.0);
  r = u * (r + t);
  s += 1;
  n -= 1;
 }
 u = 2.0;
 return u * r;
}



868 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 05:31:14.68 ID:CQ0buOj1.net]
ああ元のまんまかな
>>760

869 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 09:07:19.68 ID:8kAWPtv+.net]
>>834
> sumを定義するのにsumを使っていないから駄目で、sum = sum + iは定義じゃなくて単なる更新だから再帰的定義ではない。
> int sum = 0とした後にどう更新しようが再帰的とは呼ばないんだよ。

ホントその通り。
頭の悪さがにじみ出てるよねw

870 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 10:34:04.98 ID:DHZQ2m5W.net]
破壊代入を認めないというルールのもとではどうなるの?

871 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 11:30:18.37 ID:miXQ60Mg.net]
ヒントってか答え
初項:f(n = 0) = 0

f(1) = f(0) + i = 0 + i
f(2) = f(1) + i = i + i
f(3) = f(2) + i = 2 * i + i
...

f(n + 1) = f(n) + i

sum = sum + i

>>847
どう見ても漸化式通りの振る舞い

872 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 11:31:06.67 ID:8kAWPtv+.net]
再帰の定義を調べてみたら、
関数が自分自身の関数を
呼び出していることって書いてあった。

873 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 11:36:22.64 ID:miXQ60Mg.net]
あ、

ヒントってか答え
初項:f(n = 0) = 0 i(n = 0) = 1

i(n + 1) = i(n) + 1

f(1) = f(0) + i(0) = 0 + i(0)
f(2) = f(1) + i(1) = i(1) + i(0)
f(3) = f(2) + i(2) = i(1) + i(0) + i(2)
...

f(n + 1) = f(n) + i(n)

sum = sum + i

>>847
どう見ても漸化式通りの振る舞い

874 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 11:40:30.06 ID:8kAWPtv+.net]
再帰っていうのは、漸化式かどうかは関係なくて
関数が自分自身の関数を
呼び出していることらしいね。

875 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 11:54:16.59 ID:miXQ60Mg.net]
653 :デフォルトの名無しさん:2015/09/04(金) 23:24:17.87 ID:q06Od88z
n-1 までの和に n を足せば nまでの和が得られる、という原理に忠実な計算なんで
再帰以外のなにものでもないんだけど、基礎論触ったことないとわかんないかもね。

656 :デフォルトの名無しさん:2015/09/04(金) 23:29:28.63 ID:vuZU5Hwi
>>653
ループじゃんw

書けば理解できるのか?

int sum = 0;
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}

876 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 11:57:27.68 ID:miXQ60Mg.net]
初項:f(n = 0) = 0,i(n = 0) = 1

i(n + 1) = i(n) + 1

f(1) = f(0) + i(0) = 0 + i(0)
f(2) = f(1) + i(1) = i(1) + i(0)
f(3) = f(2) + i(2) = i(1) + i(0) + i(2)
...

f(n + 1) = f(n) + i(n)

↓が↑こういう

877 名前:漸化式になってるのが理解できないのか?

int sum = 0;
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}
[]
[ここ壊れてます]



878 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:02:33.74 ID:8kAWPtv+.net]
みんなわかってると思うけど、
誰も漸化式であることを否定していない。

漸化式をとく問題を
ループで書くか再帰で書くかって話をしている。

再帰で書くとスタックを消費する。
場合によってはスタックオーバーフローを起こす。

だからスタックオーバーフローを気にするならば
ループで書く。そして多くの場合ループのほうが速い。

という話をしている。

879 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:02:46.10 ID:CQ0buOj1.net]
初項:f(n = 0) = 0,i(n = 0) = 1

i(n + 1) = i(n) + 1

f(1) = f(0) + i(0) = 0 + 1
f(2) = f(1) + i(1) = i(1) + i(0)
f(3) = f(2) + i(2) = i(0) + i(1) + i(2)
...

f(n + 1) = f(n) + i(n)

↓が↑こういう漸化式になってるのが理解できないのか?

int sum = 0;
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}

880 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:04:50.09 ID:5yTvo1pN.net]
もうやめといてやれよ
NAS6は自分で新しい言葉を定義するのが好きな精神障害者だろ
こういうのは「言語新作」と言って統合失調症特有の症状

要するに脳内はドーパミンドハドバ出まくりで覚せい剤を決めてるような感じになってるわけだ
これは統合失調症の陽性症状
ただ統合失調症はそんなに甘くなく「バッドトリップ」、すなわち陰性症状もひどい
だから2chに書き込みしてない時は死にたくなってるんじゃね
これじゃまともな日常生活を送れるわけがない
廃人みたいな私生活なんだろうな

なんでム板には精神異常者が多いんだろうねえ

881 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:07:52.59 ID:8kAWPtv+.net]
コピペ始めちゃったしねw

コミュ障であることは明らか

882 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:09:07.82 ID:CQ0buOj1.net]
>>855
それは再帰の最適化だから
ループの再帰なんだけど?
再帰「関数」にせよ、ループ再帰にせよ
再帰(帰納)定義を実装しなければならない

883 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:13:50.10 ID:n7lw0XxH.net]
>>855
末尾再帰じゃないと再帰じゃないっつってんだろ

884 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:16:12.34 ID:CQ0buOj1.net]
初項:f(n = 0) = 0,i(n = 0) = 1

i(n + 1) = i(n) + 1

f(1) = f(0) + i(0) = 0 + 1
f(2) = f(1) + i(1) = i(1) + i(0)
f(3) = f(2) + i(2) = i(0) + i(1) + i(2)
...

f(n + 1) = f(n) + i(n)

↓が↑こういう漸化式になってるのが理解できないのか?

int sum = 0;
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}

それは再帰の最適化だから
ループの再帰なんだけど?
再帰「関数」にせよ、ループ再帰にせよ
再帰(帰納)定義を実装しなければならない

勝利 V(ブイ)!!

885 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:20:43.70 ID:miXQ60Mg.net]
>>860
おま、こうしか書けなくて
int hoge(){
 //処理
 return hoge();
}

こう書けないの?
int hage(){
 //再帰push処理
 int i = hage();
 //再帰pop処理
 return i;
}

886 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:25:45.01 ID:5yTvo1pN.net]
おくすり飲み忘れてるよNAS君
ハイの時間が長いほどローの時間が長くてひどいのは君が一番よく知ってるだろう

887 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:29:41.96 ID:miXQ60Mg.net]
ははは、論理で敵わないと、人格攻撃をして醜態をさらす



888 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:33:58.57 ID:8PjODHJ7.net]
>>864
こういっちゃなんだが、そう思ってるのは君だけだろう。
誰もがそれを逆に見てると思う。

889 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:36:27.22 ID:miXQ60Mg.net]
人格攻撃の書き込みが、書いた本人の醜態をさらしている以外のなんだと思うの?

890 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:37:41.03 ID:8PjODHJ7.net]
読むところはそこじゃないでしょ。
最初から読んだけど都合のいいことばっか書いたり読み飛ばしたり話変えたりってのが多いと思うよあなた

891 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:37:54.03 ID:miXQ60Mg.net]
>>865
>>861

892 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:39:49.40 ID:8PjODHJ7.net]
典型的な例がそれね

893 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:40:45.30 ID:8PjODHJ7.net]
一応言うけど、親切7割で書いてんだよ

894 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:46:22.23 ID:miXQ60Mg.net]
int sum = 0;
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}
左辺のn+1項までの和を右辺のn項までの和を使って再定義します
他にどう読める?

895 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:49:12.16 ID:8PjODHJ7.net]
そんな話じゃない

896 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 12:50:45.59 ID:CQ0buOj1.net]
俺は親切10割で書いてるよ

897 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 12:53:54.77 ID:o0S33vFB.net]
再帰関数ってのは問題に対する言葉じゃなくて、それをどうコーディングするかに対する言葉



898 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 13:04:05.67 ID:miXQ60Mg.net]
ttp://akita-nct.jp/saka/lecturenote/2010/2e/text/recursive.pdf

再帰関数講義pdf

899 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:15:58.86 ID:VTGxMrVA.net]
なにそのURL。だからなんだ?
あからさまに>>871は再帰じゃないって書いてあるが

900 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:22:34.79 ID:1eGH5HCM.net]
スレ

901 名前:読んだ
現実を直視することって大切だよなって思いました
[]
[ここ壊れてます]

902 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:37:10.03 ID:8kAWPtv+.net]
int sum = 0;
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}

これは明らかに再帰じゃないなw

これを再帰と説明しているページがアレば
いってくれ。

ないなら、黙ってろ。

903 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:38:20.61 ID:8kAWPtv+.net]
おっと、黙ってろっていうのは、
>>878に対してだけだだ。
別に>>878と関係ないことを話すのは構わない(笑)

904 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:45:24.53 ID:VTGxMrVA.net]
予測だが、抽象化や概念を扱うのが極端に苦手なんだろう
なのでそれを伴う会話、論理、もしくはそれ以前に単語の意味が理解出来ない

905 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 13:46:24.96 ID:miXQ60Mg.net]
ttp://akita-nct.jp/saka/lecturenote/2010/2e/text/recursive.pdf

再帰関数講義pdf

>>878
数列の和の再帰実装の項目が読めないの?

つづけて、

2.2 なぜ,再帰関数なのか?

再帰関数と繰り返し文のどちらを使ってもプログラムが書ける場合,
どちらを使うべきだろうか?
両方使える場合は繰り替えし文を使うべきである.
計算速度も早いし,メモリの消費も少ないからである.
ではどこで,再帰関数の登場機会があるのか.
単純な問題であれば繰り替えし文の方が良いが,
複雑な問題となると再帰関数で記述はできるが,
繰り替えし文ではプログラムが大変困難な場合がある.

906 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:48:14.91 ID:8kAWPtv+.net]
>>881
これのことだろうけど、
普通に、sumの中でsumを使っており、
そのsumの部分に再起するって書いてある。

/ / =========================
25 / / ユーザー定義関数 sum
26 / / =========================
27 i n t sum ( i n t n ) {
28
29 i f ( n == 1 ){
30 r e t u r n 1 ;
31 } e l s e {
32 r e t u r n sum ( n?1) + n ; / / 再帰する
33 }
34
35 }

907 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:49:21.03 ID:8kAWPtv+.net]
2 再帰関数とは
2.1 再帰関数の例
自分自身を呼び出す関数を再帰関数 (recursive function) という.また,自分自身を呼び
出すことを再帰呼出し (recursive call) という.言葉の定義はともかく,具体的な例を見て
みよう.



2.2 なぜ,再帰関数なのか?
再帰関数と繰り返し文のどちらを使ってもプログラムが書ける場合,どちらを使うべき
だろうか? 両方使える場合は繰り替えし文を使うべきである.計算速度も早いし,メモリ
の消費も少ないからである.で



908 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 13:51:10.04 ID:VTGxMrVA.net]
なんでループと再帰が同じって言ってるやつが、
両方使える場合はループだの、複雑なことは再帰だのになんだよ。
言ってることが支離滅裂。

909 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 13:57:22.43 ID:miXQ60Mg.net]
>>884
それはスコープスタックを

ループは保存しないで行ったっきり

再帰関数はpushして最下ノードまで行って
popして戻りつつ新たな下ノードのpush&pop検索をするからだよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef