再帰

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

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

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

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

👍
高評価
0
👎
低評価
0
15 ななしのよっしん
2013/05/16(木) 23:33:27 ID: FP4YbFsLU1
googleでこの言葉を検索すると…?
👍
高評価
0
👎
低評価
0
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
レイシスト入店おことわり
👍
高評価
0
👎
低評価
0
19 ななしのよっしん
2014/02/15(土) 14:55:16 ID: XlVUMdqJtT
自己言及のパラドックスはこれに近いものだと思う
というより明確な区別が分からん

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



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

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

ニコニコニューストピックス