もう2週間くらいプログラミングの再帰関数理解できないんだが

1 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:43:35.359 ID:0E8ClFsgM
全然分からん
助けて
2 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:44:26.949 ID:0E8ClFsgM
まずセンスがねえ
3 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:44:49.486 ID:vRPdyQpL0
なにがわからないのかわからない←再帰的な構造
5 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:45:11.660 ID:0E8ClFsgM
>>3
確かに
4 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:45:07.540 ID:th+oMaSi0
再帰関数の何がわからないの?
10 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:45:42.692 ID:0E8ClFsgM
>>4
ループのくせに値返したりするしよくわからん
18 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:48:36.076 ID:th+oMaSi0
>>10
そら関数だからなあ
21 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:49:19.518 ID:0E8ClFsgM
>>18
それがわからん
28 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:51:19.837 ID:th+oMaSi0
>>21
求めたいデータになるように処理をループさせてるだけとしか

ちなみに再帰関数で書けるものは(多分)普通の書き方もできるよ

6 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:45:26.741 ID:1vXWEX8W0
自分を呼び出すだけじゃないね
7 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:45:30.364 ID:jQxx+WDW0
exec(ぬるぽ){

exec(ガッ)
}

8 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:45:36.783 ID:1vXWEX8W0
じゃないの
11 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:46:19.799 ID:0E8ClFsgM
>>8
それはわかるけど終了条件とか思いつかないじゃん
16 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:47:54.806 ID:1vXWEX8W0
>>11
?🤔
17 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:48:13.190 ID:0E8ClFsgM
>>16
フィボナッチ数列しか分からん
24 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:50:01.965 ID:4A0R7F1z0
>>11
フォルダ検索が一番わかりやすいと思う
現物を画面で見られるからイメージしやすい
27 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:50:54.933 ID:0E8ClFsgM
>>24
どうしたら全部調べたかわかるんだい?
30 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:51:46.234 ID:jQxx+WDW0
>>27
下位ノードがなくなったら、そこがそこ
36 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:52:42.858 ID:0E8ClFsgM
>>30
でもそしたらまだ探索してないノード探索するじゃん
9 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:45:38.133 ID:6eKHq+jcM
仕事内容によっちゃ別に必須でもない
12 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:46:42.623 ID:0E8ClFsgM
>>9
知っといた方がいいじゃん
13 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:47:24.930 ID:0E8ClFsgM
DFSで全列挙できるのも分からん
14 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:47:34.448 ID:0E8ClFsgM
もうなんも分からん
15 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:47:54.202 ID:qnLbnHaa0
俺は見た瞬間理解したけど
再起的に中の処理が実行されてるだけじゃん
19 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:48:57.027 ID:0E8ClFsgM
ベースケースがはっきり定義されてないとできん
20 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:49:18.090 ID:jQxx+WDW0
ユークリッドの互除法が例なのが難解さを生んでる
22 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:49:27.141 ID:qnLbnHaa0
再起関数ってあれか、メソッドの中で自分のメソッド呼んでるってやつか
別にそのままじゃん
23 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:49:44.820 ID:0E8ClFsgM
>>22
それが難しい
25 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:50:24.381 ID:0E8ClFsgM
戻り値がvoidとかintとか分からん
26 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:50:44.994 ID:jQxx+WDW0
>>25
それはわかれ
29 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:51:39.453 ID:0E8ClFsgM
>>26
いや再帰関数のくせにvoidとかただのループだしみたいな感じでわからん
31 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:52:06.153 ID:0E8ClFsgM
マジでわからん
32 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:52:20.479 ID:6Pne1HiO0
実行を手で追ってみればいいんじゃないか
33 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:52:22.392 ID:1oswDR1n0
グローバル変数使わなけりゃ難しくはないだろ
変数のスコープに気をつけろ
34 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:52:24.605 ID:sJDrUSeZH
お前が今見てる関数をよこせ
37 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:53:33.048 ID:0E8ClFsgM
>>34
英語だから日本語で問題かくね

文字列Sを反転させよ
再帰関数を用いて

43 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:55:59.594 ID:jQxx+WDW0
>>37
語尾まで延々と探索して語尾から要素引っ掴んで帰ってくるだけでは
47 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:56:51.808 ID:s742Jozb0
>>37
何それ再帰使う意義が分からん
解答は何となく分かるけどそれ普通に悪問じゃない?
48 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:57:09.558 ID:0E8ClFsgM
>>47
練習だから
51 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:57:33.811 ID:0E8ClFsgM
>>47
Pythonで書いて
65 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:01:39.278 ID:s742Jozb0
>>51
すまんpythonはよく分からん
n文字目も入力、n+1文字目を返り値として、
n+1文字目がみつからなければprintしつつreturnとかでいいんじゃない?
67 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:02:30.406 ID:0E8ClFsgM
>>65
再帰関数がわからん
53 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:58:08.632 ID:jQxx+WDW0
>>47
アルゴリズム組むことが目的だから
単純に結果を得たいだけなら標準ライブラリ使えば一発
35 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:52:33.071 ID:VZEs4hu6p
自分自身を自分の中で呼び出すことで処理を行うから個人的にはスタックをイメージするとわかりやすいと思う
38 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:54:07.440 ID:0E8ClFsgM
>>35
そういうのも勉強した
39 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:54:47.435 ID:0E8ClFsgM
文字列Sを反転させよ
再帰関数を用いて

↑これやって

49 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:57:18.585 ID:6Pne1HiO0
>>39
文字列を半分に割って、順番入れ換えてくっつければいい気がする
52 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:57:52.400 ID:0E8ClFsgM
>>49
それはわかる
再帰関数がわからん
40 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:55:18.843 ID:0E8ClFsgM

vip

piv

41 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:55:19.134 ID:OFP6/DPnM
使い方がわからんってこと?
42 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:55:40.386 ID:yDRMvzWQM
1!=1
n!=n*(n-1)!
44 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:56:36.046 ID:WBXyybH8d
再帰関数中の条件分岐が重要だよね
46 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:56:42.648 ID:OFP6/DPnM
ソートだろ要するに
50 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:57:31.595 ID:KwBJSPX50
自転車の乗り方と同じで
仕組みが分かっても使えないから分からない感が続くんだよ
階乗とかフォルダ探索とか囲碁の石取りとか
ひたすら実装したらいいのに
54 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:58:50.881 ID:OFP6/DPnM
ソートアルゴリズムをかけないようならセンスない
55 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:59:00.560 ID:LwMcentb0
再帰関数の仕組みが解らないんじゃくて
なんでこんな課題に対して再帰関数使わなきゃならないか解らないかつこんな課題の為に再帰関数でどうやるか考えるのがダルいならセンスあるよ
最適化が無意識の内にできてる証拠
56 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:59:14.025 ID:VZEs4hu6p
再帰関数文字列反転とかで調べたら出るじゃん
わからないこと調べられないなら素質ないぞ
57 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:59:19.499 ID:0E8ClFsgM
これな
https://leetcode.com/explore/learn/card/recursion-i/250/principle-of-recursion/1440/
58 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 10:59:25.164 ID:th+oMaSi0
底まで数字足した後に別の配列に繰り上がって挿入したら終わりやんけ
60 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:00:40.546 ID:OFP6/DPnM
宿題は自分でやりましょう
61 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:01:02.454 ID:hlWaH6Nbd
再帰って関数のオーバーヘッド分遅くなったりしない?
ループで書けるとこはループで書いたほうがいいよね?
64 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:01:20.765 ID:0E8ClFsgM
>>61
知ってるよ
練習だよ
62 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:01:04.479 ID:0E8ClFsgM
もういいや
63 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:01:18.490 ID:WBXyybH8d
for文で書くのがめんどくさい多重ループは再帰関数使うと楽
66 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:02:02.778 ID:6Pne1HiO0
def reverse(S)
s1 = [Sの前半分]
s2 = [Sの後半分]
return reverse(s2) + reverse(s1)
68 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:02:38.454 ID:0E8ClFsgM
forならかける
69 名前:ひみつの名無しさん 投稿日時:2020/07/30(木) 11:03:25.606 ID:QJquHB+H0
再帰関数理解できないのなら諦めたら?
センスないよ

コメント

タイトルとURLをコピーしました