なあ、再帰関数好きな人いる? パート3
- 879 :デフォルトの名無しさん:2019/04/15(月) 22:24:35.37 ID:SVQji9la.net
- >>868
違うよ
柴犬にこっちは太郎でこっちは次郎だから別の犬だ、と言ってるのと同じ
- 880 :デフォルトの名無しさん:2019/06/19(水) 04:57:19.87 ID:tVNS+22r.net
- 【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
- 881 :デフォルトの名無しさん:2019/06/19(水) 05:49:29.73 ID:K5sVxx6Y.net
- 再帰処理は
現在の関数が戻ってゆくアドレスをスタックに保存し、このアドレスを積極的に利用する。
プログラミングの実行アドレスをスタックから取り出して制御するので、
再帰プログラミングを利用するコツは、戻りアドレスを正しく理解することだ。
再帰は同じ関数を行ったり来たりするものだが、
日常の社会では、やらない方法だ。
普通は、配列を利用して、そこに保存してあるデータを使い、
同じ場所でプログラムを実行する
- 882 :デフォルトの名無しさん:2019/06/19(水) 22:51:46.77 ID:cv5jOa1Y.net
- ツリーたどるときくらいかな?再帰使うの
- 883 :デフォルトの名無しさん:2019/06/22(土) 10:20:48.19 ID:hB2G8Ayg.net
- >>882
そらまあ再起が辿るイメージ図は全てツリーって名称付けれますし
- 884 :デフォルトの名無しさん:2019/07/31(水) 11:07:40.57 ID:w173sz60.net
- ゲーム作るときになってようやく再帰の恩恵を得た
めっちゃ書きやすい
- 885 :デフォルトの名無しさん:2019/08/01(木) 21:15:40.67 ID:C2rSdv5Y.net
- >>884
ミニマックス法かアルファベータ法だろ?
- 886 :デフォルトの名無しさん:2020/01/03(金) 14:12:37.35 ID:EVicjzWY.net
- マイコンだとスタックが1桁とかだから再帰書いた瞬間に死ぬ
- 887 :デフォルトの名無しさん:2020/01/04(土) 20:06:07.86 ID:q1efSz+a.net
- ルネサスのRL78/G10はRAMが128Byteしかないらしいな
- 888 :デフォルトの名無しさん:2020/12/05(土) 18:00:57.46 ID:6KCHBqfq.net
- 再帰
>>888
- 889 :デフォルトの名無しさん:2021/01/05(火) 18:41:56.91 ID:zOsm6XDhK
- デキる人ほどフリーランス化する?★働き方改革
https://www.youtube.com/watch?v=ALflcwYOJtQ
年収890万円以下は社会のお荷物★騙される労働者
https://www.youtube.com/watch?v=CAp-ZrJpF54
騙されたくなかったら勉強しろ★他人のルールは損をする
https://www.youtube.com/watch?v=s176O6qKuPw
底辺の99%は一生底辺★10年後が見えない同僚たち
https://www.youtube.com/watch?v=4Mfiwn2sPD8
稼ぎたければ働くな★4千万円ぽっちも稼げないのはなぜ?
https://www.youtube.com/watch?v=Fi7bILN4wes
サラリーマン思考では儲からない理由
https://www.youtube.com/watch?v=iW6oAo0q0ZI
「頭使えよ貧乏人」に思う、寝てても金入るシステムを作る人
https://www.youtube.com/watch?v=VEB6M_s6abs
- 890 :デフォルトの名無しさん:2021/01/11(月) 13:49:06.57 ID:nJc/cTVc.net
- λf . (λx . f (x x)) (λx . f (x x))
- 891 :デフォルトの名無しさん:2021/01/13(水) 14:49:33.89 ID:tLUt5qTN.net
- ループで書くと出現する余計な変数がなくなるのが再帰のメリット
- 892 ::2021/01/13(水) 21:38:42.47 ID:DfoNX22P.net
- >>891
?
kwsk
ループ変数は再帰関数でも必要なのでは?
- 893 :デフォルトの名無しさん:2021/01/14(木) 06:32:41.62 ID:7/cCpBde.net
- どんどんスタックにつめば確かにループ変数はいらない
ただ、人間のためにループ変数はあった方かいいと思うけど
- 894 :デフォルトの名無しさん:2021/01/27(水) 21:57:40.49 ID:fE6h5Ua/.net
- 再帰関数を理解したとき、最初にこれ考えたやつは天才だと思ったね
実行速度やスタック問題はともかくコードは見ていて美しい以外の何者でもない。
- 895 :デフォルトの名無しさん:2021/01/28(木) 02:47:34.69 ID:ggjwGOj3.net
- CやUnix、オブジェクト指向なんかよりもはるかに古いんだよな
最初に実装されたのはlispかな
メモリを食いすぎるのでおもちゃしか動かなかったようだが
- 896 :デフォルトの名無しさん:2021/01/29(金) 03:09:35.61 ID:5NtPwDh4.net
- 今の時代メモリ食いすぎても動くし遅くもならないよな
1億再帰とかやったら話は別だけど
- 897 :デフォルトの名無しさん:2021/07/16(金) 14:24:10.16 ID:S3gddm5/.net
- >>892
要らない
/* n の階乗を求める */
int fact(int n)
{
if(n==0){
return 1;
} else {
return fact(n-1);
}
}
実質ループする処理だけど、ループの回数数えるための
変数は一切出現しない。なおかつ n は不変。
- 898 :デフォルトの名無しさん:2021/07/16(金) 14:26:08.03 ID:S3gddm5/.net
- おお、"n*" を忘れた。こんな短い関数にバグ突っ込む俺(泣)
- 899 :デフォルトの名無しさん:2021/07/19(月) 22:18:11.50 ID:hlpOkuZF.net
- くだらん処理にスタックを使いたくないのでわしは使わん
ライブラリが殆ど無いマイナーCPUのマイナーCコンパイラでQuickSortを書いた時くらいじゃケケケ
- 900 :デフォルトの名無しさん:2021/07/22(木) 20:45:12.08 ID:sSLTRpJ4.net
- 最近じゃオプティマイザがなるべくスタック使わないように
最適化してくれるんじゃなかったっけ?
- 901 :ハノン :2021/07/25(日) 23:45:12.36 ID:rUybnQpf.net
- >>900
末尾再帰ならそうだと思いますが、末尾再帰でなければ無理でしょう >>898-899 は末尾再帰じゃないから最適化されにくい、というか、されない
- 902 :デフォルトの名無しさん:2021/10/02(土) 15:46:41.87 ID:qz0ghb/n.net
- >>8
ループと再帰の能力は同じです
かなり古い計算論の結果です
- 903 :デフォルトの名無しさん:2021/10/02(土) 15:52:22.08 ID:qz0ghb/n.net
- >>894
ゲーデル先生
- 904 :デフォルトの名無しさん:2021/10/02(土) 16:12:27.49 ID:qz0ghb/n.net
- >>901
結合法則を仮定していいドメインなら
CPS変換を用いて最適化する手法が随分前からあります
結合法則はGPU並列化でも使われてます
浮動小数点の場合は工夫しないと誤差が変わりますが
ちなみにC++ conceptの初期案でもaxiomで法則を記述出来ました
- 905 :ハノン :2021/10/02(土) 20:52:53.81 ID:7AkA9F3V.net
- >>904
scheme の継続渡しに関係しますか?
キーワードありがとうございます
- 906 :デフォルトの名無しさん:2021/10/04(月) 21:48:56.27 ID:tW+d3xqB.net
- >>905
そう
Continuation-passing style, defunctionalization, and associativity
Categorical Structure of ContinuationPassing Style
この辺のサンプルプログラム読んで
- 907 :デフォルトの名無しさん:2021/11/01(月) 12:26:41.37 ID:ZNnEkaFK.net
- 履歴をとってるループが再帰
- 908 :デフォルトの名無しさん:2022/09/07(水) 22:59:05.75 ID:hj8+EGae.net
- すき
しかし再帰絶対書かないマンが思いの外多くて草生えるわ
末尾最適化できない再起をループに展開したって結局キューだのスタックオブジェクトでヒープ使うわけで
メモリ大幅に節約できると勘違いしてる基地外とか話にならん
再帰深度がたかだか1000段とかでスタックフレームにデカいオブジェクトブチ込んだりしなきゃ
素直に再帰で組むのがいいに決まってるじゃないか
数学的演算でもしない限り業務用でスタック溢れるケースを探す方が大変
- 909 :デフォルトの名無しさん:2022/09/08(木) 09:28:47.03 ID:JEMfdspa.net
- スタックとヒープは別物
共有してるアーキテクチャもあるが
- 910 :デフォルトの名無しさん:2022/09/08(木) 13:02:30.59 ID:o4zCWVHV.net
- ループに展開できる処理をわざわざ再帰で書く奴も大概やけどな。
- 911 :デフォルトの名無しさん:2022/09/08(木) 15:04:24.55 ID:wt4RcFVD.net
- 展開できないものあるの
- 912 :ハノン :2022/09/11(日) 14:15:38.74 ID:gVwBfSXr.net
- >>911
二方向に再帰するもの、は展開に苦労しますね
式の評価は、再帰じゃないと書けないですね
- 913 :デフォルトの名無しさん:2022/09/15(木) 12:56:10.95 ID:LWNlvRIc.net
- てst
- 914 :デフォルトの名無しさん:2024/01/02(火) 13:18:51.50 ID:yx0oLXiq.net
- 再帰的データ構造は再帰でたどるのが楽なんだけど
ループで処理したほうが途中で抜けたり処理を組み合わせやすい
そこで再帰的な処理を遅延リストと組み合わせてループで処理するやり方がいまでは一般的な気がする
こういうふうに C#
https://paiza.io/projects/WbmxzuNdJq95o9RYTKFY_A
- 915 :デフォルトの名無しさん:2024/01/04(木) 11:34:09.71 ID:iR4GsMlV.net
- 何が一般的なのか知らんがかなり変態的なコードだな
ループでGetEnumerator呼び出したりMoveNextの戻り値を見ずCurrentを取り出したりは一般的じゃないぞ
つーかバグだろそれ
219 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★