[表示 : 全て 最新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使うの嫌いで基本的に再帰多用するんだが、だめなの?
皆から敬遠されてる気がする

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検索をするからだよ

910 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 14:00:39.98 ID:VTGxMrVA.net]
>>878
この方法にしとけ

for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}
「これは再帰関数です」とか「これは再帰ではありません」とか明示的に書いてあるやつがいい
それなら理解出来るだろ

あと再帰やループの制御構造は、forやwhileや関数の呼び出しだからな。
決してsimではない

911 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 14:01:24.37 ID:VTGxMrVA.net]
>>885
保存しないのがループなんだろうが

912 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 14:07:04.25 ID:miXQ60Mg.net]
ttp://ja.wikipedia.org/wiki/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88
クイックソート

そんなに言うならループで書いてみてよ

913 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 14:20:43.68 ID:VTGxMrVA.net]
繋がりが分からん



914 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 14:21:51.14 ID:miXQ60Mg.net]
>>884
>>885
>>888

915 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 14:22:35.47 ID:VTGxMrVA.net]
ただの一度とて俺はループで何が出来るだの出来ないだの一覚えはない
頭大丈夫か?

で?ルールで書けってことは「ループじゃない物」があるってことだよな?
それをここにいるほぼ全ての人は再帰と読んでるわけだが

916 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 14:28:26.07 ID:miXQ60Mg.net]
>なんでループと再帰が同じって言ってるやつが、
>両方使える場合はループだの、複雑なことは再帰だのになんだよ。
>言ってることが支離滅裂。

>両方使える場合はループだの、複雑なことは再帰だのになんだよ。
これが支離滅裂と思うんなら、クイックソートをループで書いてごらん

917 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 14:47:29.00 ID:LToipCL/.net]
書くのはおまえだろうが。


918 名前:俺はループと再帰の区別してるから。
再帰はループとは別にあるし、再帰が良いと思った時は再帰だ。俺はな。
そして支離滅裂なのはそのURLじゃなくておまえだ。

おまえは区別しないなら全部同じ書き方でかけ。
ループと再帰と言う単語すら使うな。区別しないなら徹底的に区別するな。

それ以前に
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}
これが再帰と書かれたサイトなり資料なり探し終わるまで黙っとけ。多数に言われてんだから。
[]
[ここ壊れてます]

919 名前:デフォルトの名無しさん [2015/09/06(日) 14:51:28.16 ID:pbpREKnW.net]
>>888
>>892

ループで書いた
peace.2ch.net/test/read.cgi/tech/1434079972/8

920 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 14:53:47.20 ID:LToipCL/.net]
知らんわんなもん
おまえはループと書くな。区別しないのだから

921 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 14:55:26.13 ID:miXQ60Mg.net]
分かってませんでしたって言うなら言えばいいよ
クイックソートのループ実装はムチャ振りだから

922 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 14:57:32.04 ID:LToipCL/.net]
なんの話だ?
関係ない話なら「後から」付き合うけど?
ごちゃごちゃ言ってないでさっさと探して来い。

923 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 14:59:58.98 ID:miXQ60Mg.net]
>>894
push&popって、わざわざ作ってループにするくらいなら
素直に再帰関数使えよ

push&popのループは実装にもよるけど再帰関数とほぼ同じ



924 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:00:49.47 ID:LToipCL/.net]
ループは再帰なのにループの実装は無茶振りねぇ
ふーーん

ま、これについても探してきてから相手してやるか

925 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:01:20.67 ID:miXQ60Mg.net]
>>898
>>885

926 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:03:20.65 ID:LToipCL/.net]
それはループと再帰を区別してるっていうんだよ。
単語が必要になった時点でな

927 名前:デフォルトの名無しさん [2015/09/06(日) 15:03:29.78 ID:JSf18249.net]
>>898
ループで実装しとけばpopの過程で残りの処理やらんでいいわってときに
処理を打ち切れるんだよ。そういう意味では再帰をループで実装する意味はあるかと。

928 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:03:31.85 ID:miXQ60Mg.net]
>>899
>>885
push&pop実装してループすりゃ良いけど、それなら素直に再帰関数使え

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



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

930 名前:デフォルトの名無しさん [2015/09/06(日) 15:05:50.49 ID:JSf18249.net]
>>903
再帰よりもループのが都合いいことあるんよ
関数呼び出しを途中で打ち切ること出来ぬでしょ

931 名前:デフォルトの名無しさん [2015/09/06(日) 15:06:30.03 ID:JSf18249.net]
>>904
これ。

932 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:06:41.80 ID:miXQ60Mg.net]
>>902
再帰関数に強制終了フラグを渡して
再帰呼び出しの直後にそのフラグをチェックすれば
強制終了できるけど?

933 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:09:02.09 ID:LToipCL/.net]
>>903
pushとpopでループさせるなんて一言も言ってないし、
再帰使わないとも一言も言ってないし、
どうゆう会話の繋がり構造してんだ?
本気で頭大丈夫か?

しかもそれ完全にループと再帰分けて考えてるよな



934 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:09:21.10 ID:miXQ60Mg.net]
>計算速度も早いし,メモリの消費も少ないからである
push&popを実装するなら、正直、コンパイラに任せたほうが早いかもよ

935 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:10:20.50 ID:LToipCL/.net]
>>907
馬鹿じゃねぇの
それは再帰として使ってるとは言わん
普通ではない事態だ

936 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:11:18.97 ID:LToipCL/.net]
>>909
それをお前はあたかもそうではないような書き込みしてたよな

937 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:15:01.76 ID:miXQ60Mg.net]
>>908

>>751
>>885

938 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:16:40.15 ID:LToipCL/.net]
それ俺の書き込みじゃないけど。
それと言葉に詰まると全く意味の分からない安価書くのやめれ

939 名前:デフォルトの名無しさん [2015/09/06(日) 15:17:02.84 ID:JSf18249.net]
>>907
アプリケーションを強制終了?
ちょっとそれはクソすぎると思うよ

940 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:20:07.58 ID:LToipCL/.net]
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}
それとこれが再帰っつーのがお前の主張だからね。
話散らすのに一生懸命なようだけど。

941 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:22:44.17 ID:miXQ60Mg.net]
>>910

>>905
の振りだから
>>907
だろ

int recHoge(bool& esc){
 int i;
 //push処理
 i=rechoge(esc);
 if(esc) return i;
 //pop処理
 return i;
}

942 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:27:09.64 ID:LToipCL/.net]
>>916
あんな、出来る出来ないじゃなくて
関数として

943 名前:扱われるえき概念を、処理中の内部からスタック操作なんてしねぇんだよ []
[ここ壊れてます]



944 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:31:29.36 ID:LToipCL/.net]
んで結局、ループと再帰を区別しないと言うお前の主張は、
ループや再帰と言う単語を用いないとできないわけだね。
ふーーん

945 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:33:09.34 ID:miXQ60Mg.net]
何コメントが気に入らないの?

int recHoge(bool& esc){
 int i;
 //再帰のスタックがpushされている時の処理をここに書く
 i=rechoge(esc);
 if(esc) return i;
 //再帰のスタックがpopされている時の処理をここに書く
 return i;
}

946 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:34:42.95 ID:LToipCL/.net]
はい全然会話がつながってない。それは関係ない。

947 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:34:48.30 ID:miXQ60Mg.net]
>ループと再帰を区別しないと言うお前の主張
これが俺の主張だというならアンカくれ

948 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:37:06.65 ID:LToipCL/.net]
探すのめんどくさい。
しかし一つや二つではない


for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}
より確実なのはこっち

949 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:37:11.26 ID:miXQ60Mg.net]
>>920

>>917
じゃあ、↑がイミフ

950 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:40:50.25 ID:miXQ60Mg.net]
>>922
探せないなら
ループと再帰を区別しない
これはおれの主張じゃないからね

sumについては
>>856

951 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:42:44.84 ID:LToipCL/.net]
お前の理解度なんて知らんわ。
その話題の発端は俺じゃないからそこについて続ける気もしない。

952 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:44:30.52 ID:LToipCL/.net]
漸化式になってようとなってまいと再帰には関係ない

953 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 15:45:19.69 ID:LToipCL/.net]
お前の言い分だとプログラムのほぼ全てが再帰になる



954 名前:デフォルトの名無しさん [2015/09/06(日) 15:47:23.50 ID:JSf18249.net]
>>894
1個は末尾再帰なので単純にループでいいかと
https://ideone.com/r1BBhE

955 名前:NAS6 ◆n3AmnVhjwc [2015/09/06(日) 15:51:29.03 ID:miXQ60Mg.net]
広辞苑から
漸化式
数列または関数列のいくつかの要素の間に成り立つ一般的な関係式
公比rの等比数列a1,a2,...,an,...におけるan+1=ranの類

「再帰的定義: "再帰的定義"を参照」
 an+1=ran






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

前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