再帰

1 ななしのよっしん
2008/08/13(水) 20:17:10 ID: MVaoq+N/Fo
何を今更アンサイクロネタ…?
2 ななしのよっしん
2008/08/13(水) 20:37:59 ID: 5g6ivyfssU
無限ループともかぶってるしこれはどうかと思う
3 yamashita
2008/08/13(水) 20:47:38 ID: aRrTn8DHRC
編集した物です。
>>2
無限ループ・・・同じ処理を繰り返すこと
再帰・・・自分自身を参照/呼び出すこと

私は、逆に無限ループの方が、意味合いが違うんじゃないかと思っています。
4 park
◆YuyukoyyA6 2008/08/16(土) 14:03:24 ID: Xx+HLcYR5T
ループ再帰本質は同じなのでは?
再帰にはスタックの問題もありますが。
5 ななしのよっしん
2008/08/16(土) 23:27:52 ID: WhuoWnLYR1
再帰にはループと違って「深さ」の概念があるから
ツリー構造をくまなくたどりたいときには
欠かせない処理だったりする
6 park
◆YuyukoyyA6 2008/08/17(日) 01:04:39 ID: Xx+HLcYR5T
>>5
スタックを自分で用意すればループでもできませんか?
7 ななしのよっしん
2008/08/18(月) 08:59:47 ID: 6M7pYk/Rv/
>>4-6
ループ再帰で実現できることは変わらないし、末尾再帰なんかはループに変換されたりするけど、両者の本質は違う物なんじゃないかな。抽的な意味合いが異なると思う。
同じ事が出来るからといって、両者が同じになるとは限らないし、それを言うならチューリング完全な言は全部本質的には同じ、ということになってしまいますよね。
8 ななしのよっしん
2009/08/09(日) 16:21:39 ID: dN5dnRPbLj
再帰リンク付けることを考えた人に、は称賛を贈りたい
9 ななしのよっしん
2009/09/20(日) 14:02:21 ID: swf5ulRays
再帰って、一般化した式を見ると途端に訳が分からなくなる。階乗ですら
苦手な再帰に慣れるにはどうすればいいんだ…
10 ななしのよっしん
2010/08/24(火) 21:39:48 ID: DHCduJQROG
存在についての定義とかかな。
11 ななしのよっしん
2012/02/11(土) 20:28:48 ID: 08xHgSY3VB
探索ではいつもお世話になってる
ループでも理論実装かもしれんが、やっぱり再帰のほうがスマートな場面って多いよな
12 ななしのよっしん
2012/12/01(土) 00:34:36 ID: ZPKiX6fhSQ
再帰使うほうが
「ああオレ今プログラミングしてるんだなぁ」
というふいんきに浸れる
13 ななしのよっしん
2012/12/30(日) 17:28:32 ID: 4jTat5WMYC
ニコニコ動画でも
移動します」を上手く使えば
再帰再現できそうな
希ガス
14 ななしのよっしん
2013/04/04(木) 00:51:13 ID: +vMuPTD2Kd
フィボナッチ数列やクイックソートの用を持ち出してそれで説明するのかと思いきや、階乗のコード例しか示さないのはどうなのかと・・・ちょっと拍子抜けッス

あと、再帰呼び出しのコードは直感的な表記かもしれないけど、メモリ枯渇の危険性や処理速度の点では初心者にはオススメできないと思う(概念的な理解は別として)

末尾再帰最適化されるSchemeみたいな言でもその言仕様に合わせたコードを書くスキルが要るし、あとC言語とか再帰的な宣言はできない言も多いでしょ(Haskellとかは大丈夫だけど)

15 ななしのよっしん
2013/05/16(木) 23:33:27 ID: FP4YbFsLU1
googleでこの言葉を検索すると…?
16 ななしのよっしん
2013/06/20(木) 20:57:53 ID: YXDPATj/ct
これも再帰
ハノイの塔
タイトル:ハノイの塔
画像をクリックして再生!!
 
Twitterで紹介する

17 ななしのよっしん
2013/06/20(木) 21:01:14 ID: YXDPATj/ct

ハノイの塔
タイトル:ハノイの塔
画像をクリックして再生!! この絵を基にしています!
 
Twitterで紹介する

18 ななしのよっしん
2013/09/07(土) 22:32:28 ID: Icu2L20gjn
レイシスト入店おことわり
19 ななしのよっしん
2014/02/15(土) 14:55:16 ID: XlVUMdqJtT
自己言及のパラドックスはこれに近いものだと思う
というより明確な区別が分からん

関連項目に入れてもいいのではないだろうか
20 ななしのよっしん
2014/08/10(日) 05:58:27 ID: z1sr7zxxHH
>>15
……google先生って、お茶ですねえ(笑)



再帰的処理っていうのはかなり本質から外れた概念で、
元々あったのは「再帰的定義」とか「再帰アルゴリズム」なのね(概念自体は電算機ができる前から普通にあった)
宣言では必然的に出てくるので、言仕様レベル親和性を持たせるようにしてる。
Cとかの手続き型言語でこれをやるのは、ぶっちゃけしこしこforループに変換するのが手続き型言語の本来あるべき姿
21 ななしのよっしん
2015/07/18(土) 16:45:53 ID: 0wG5IHxD9Z
再帰的でないものはプログラミングできないのならすべてのプログラム再帰で表せる・・・?
22 ななしのよっしん
2016/04/24(日) 13:14:54 ID: +uIYsH4hqK
階乗って再帰の説明で必ずと言っていいほど見かけるけど、
forループを使う方がわかりやすくて再帰のありがたみを感じない・・・
23 ななしのよっしん
2017/04/30(日) 01:52:03 ID: pmNjB3uhju
ぷよぷよとかマインスイーパーとかの盤面の消去判定でうまく活用できる
同じ条件を満たす限り自動で繰り返すのが重要
階乗の繰り返し数nをいちいちめ用意する必要がない
あるいはnに相当するものをめるのが困難な場合に有効
24 ななしのよっしん
2017/10/22(日) 00:15:33 ID: f+5O+t2nD3
1番素数を2とすると、
2番素数は3となり、
3番素数は5となり、
5番素数は11となり、
11番素数31となり、
31素数127となり、
127素数709となり、
709番素数5381となり、
5381番素数52711となり、
52711番素数648391となり、・・・
25 ななしのよっしん
2017/12/07(木) 10:24:54 ID: X2Dn9hE4jU
>>21
包含関係を勉強するといい
再帰的な振る舞いをする処理はプログラムに含まれているが、プログラム自体が再帰的なわけじゃない

わざわざ再帰的な表現にするのは直感的にわかりやすくなるメリットがあるわけで、そうでもないなら本末転倒も甚だしい
いずれにせよCだったらfor文使ったほうが読みやすくてスマートだわ
26 ななしのよっしん
2018/02/09(金) 00:35:41 ID: SRCS0+jJ6+
代表的なのはクイックソートだな。ループでも書けるが考え方としては不自然になる。
27 ななしのよっしん
2018/02/24(土) 22:38:58 ID: RIZcKPLppZ
あんまり何も考えずに使うと計算がすごい時間かかるときもあるんよね
確かフィボナッチ数列を愚直に再帰めるプログラムの例とかすごい時間かかるっての見たことある
でも、末尾再帰最適化とかで計算が増えるのを防げる場合もある。
28 ななしのよっしん
2018/12/27(木) 00:49:17 ID: brUYitsHqM
>>18 差別義者差別
29 ななしのよっしん
2019/02/21(木) 22:52:43 ID: bf8DLXL5Sj
再帰が実用的に有効な場合ってほとんどくない?
何かあったらか教えてください
30 ななしのよっしん
2019/09/20(金) 01:06:28 ID: CWgXWlqKb0
というより一般的には使うところがあまりないかな
コンパイラー書くなら使うけど、コンパイラー書くってのは普通はやらないもんね

急上昇ワード

2019/10/18(金)05時更新