2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

なあ、再帰関数好きな人いる? パート3

1 :デフォルトの名無しさん:2015/11/28(土) 18:51:38.86 ID:Rc2MJzM/.net
なあ、再帰関数好きな人いる?

830 :デフォルトの名無しさん:2018/01/28(日) 06:23:28.69 ID:GN9YKPqU.net
再帰プログラムは関数の呼び出しで積みあがるスタックを配列とみなせば、ループアルゴリズムそのものだ。

831 :デフォルトの名無しさん:2018/01/28(日) 06:51:19.47 ID:GN9YKPqU.net
ファイルやフォルダ、ダイアログやウインドウは階層構造で構成されるので、再帰プログラムを使うのが一般的だ。

832 :デフォルトの名無しさん:2018/01/28(日) 15:26:22.97 ID:Erw8GBm0.net
再帰って何?って頃から普通に再帰使ってたからなあ。
自分自身を呼び出せば良いじゃんみたいな。

高校で数列とか演繹法が得意だったせいかも。
自然に使ってた。

833 :デフォルトの名無しさん:2018/01/28(日) 16:28:26.35 ID:C2Jb//yt.net
再帰云々言ってるのは大昔のFORTRANとかCOBOLを使ってた人ぐらいじゃないのかな
あと組み込みとかでスタックサイズが厳しい環境で組んでるとか

834 :デフォルトの名無しさん:2018/01/28(日) 17:26:40.96 ID:OfpblgeM.net
スタックサイズが厳しい環境で再起???

835 :デフォルトの名無しさん:2018/01/28(日) 18:03:09.52 ID:GN9YKPqU.net
再帰プログラムの基本はスタックにデータを入れ積み上げていく過程と、スタックからデータを取り出しスタックをクリアしていく過程の二つの動作しか基本的にない。
データを取り出したら、そのデータを使ってプログラミングされた処理を実行する。スタックはデータを貯めることと同時に処理の順番を決めている。再帰のプログラミングには二つの概念が必要だ。

836 :デフォルトの名無しさん:2018/02/12(月) 05:25:54.58 ID:P5QW/rJt.net
再帰関数大好きですよ 美しい

837 :デフォルトの名無しさん:2018/02/23(金) 11:23:42.25 ID:cixhX8OH.net
javaで再起処理書いたらガーベッジコレクションが掃除してくれるもんだと思ってたけど違うの?
十年前の記憶だから曖昧ですまない
cpu使用率が100%になるけど影響ないから使ってます〜って顧客に言われたのを思い出したもんやで

838 :デフォルトの名無しさん:2018/02/23(金) 11:24:04.87 ID:cixhX8OH.net
再帰だった

839 :デフォルトの名無しさん:2018/02/23(金) 12:18:58.87 ID:E8zJnigo.net
影響ないなら気にすんな

840 :デフォルトの名無しさん:2018/05/23(水) 20:21:54.46 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

980U0

841 :デフォルトの名無しさん:2018/07/05(木) 01:23:47.56 ID:RfoszcD2.net
TB1

842 :デフォルトの名無しさん:2018/08/22(水) 21:16:42.10 ID:mHU9sjBy.net
今時スタックオーバフローぐらいでOSは死なないから大丈夫

843 :デフォルトの名無しさん:2018/08/23(木) 09:46:53.93 ID:n+qAvZtC.net
スタックオーバフローならアプリは落ちちゃう

844 :デフォルトの名無しさん:2018/08/24(金) 14:39:50.27 ID:1snHtaDM.net
末尾再帰すればいいじゃない。

845 :デフォルトの名無しさん:2018/11/14(水) 23:02:37.97 ID:ur2RK8H0.net
再帰アルゴリズムはなるべくライブラリで隠蔽して欲しいな。
自分で書くのはまだしも他人の再帰コードを読むのはかなり嫌。

846 :デフォルトの名無しさん:2018/11/15(木) 12:26:32.11 ID:yIPB3Fsn.net
好きなんか嫌いなんかハッキリしろや

847 :デフォルトの名無しさん:2018/11/15(木) 16:20:13.76 ID:PG86imds.net
末尾再帰は結局ただのループ

848 :デフォルトの名無しさん:2018/11/15(木) 16:22:56.36 ID:zCiKr9uf.net
再帰関数と言えばアッカーマン関数とかたらい回し関数などが
有名ですが他にも何かある?

849 :デフォルトの名無しさん:2018/11/15(木) 21:36:15.07 ID:sS26qanx.net
有名じゃないからwどんな入りかたしたんおまえw

850 :デフォルトの名無しさん:2018/11/16(金) 07:45:28.14 ID:Q+Zstbtj.net
174 その名前は774人います (バットンキン MM5a-fW3D) 2018/11/16(金) 07:04:12.40 ID:N77Q/1ZeM
>ドラゴンクエストの世界観が全く反映されていないような印象

    ド ラ ゴ ン ク エ ス ト と は 何 か ?

ドラゴンクエストとは何かを問い続けるのが、終わらないドラゴンクエストだろう? 違うか?

2 その名前は774人います (バットンキン MM5a-fW3D) 2018/11/16(金) 07:42:40.97 ID:N77Q/1ZeM
再帰関数を理解するにあたり先輩社員に教えていただいたのですが、その時の再帰関数の例がとてもわかりやすかったので共有させていただきます。
この例のおかげもあり、はじめは再帰関数なにそれ状態から、最後はしっかりと実装できるようになりました。再帰関数はPythonで実装しています。
https://qiita.com/jumpyoshim/items/20e6b5e70efa466699b4

851 :デフォルトの名無しさん:2018/11/16(金) 23:40:45.23 ID:HodhQ/sE.net
問) 再帰的にオマンコを定義せよ

852 :デフォルトの名無しさん:2018/11/16(金) 23:59:40.68 ID:xavUeX/s.net
再帰関数『終わらないドラゴンクエスト』

ドラゴンクエストとは?(){
   ドラゴンクエストとは?()
}

853 :デフォルトの名無しさん:2018/11/17(土) 00:12:17.17 ID:eQWBxdMf.net
正直小学生のガチネタにはついていけん

854 :デフォルトの名無しさん:2018/11/17(土) 03:28:35.36 ID:corCuJCM.net
def DQ(n)
 puts "DQ #{n}"
 DQ(n+1)
end

855 :デフォルトの名無しさん:2018/11/17(土) 10:42:46.80 ID:B4GISbTr.net
({})

856 :デフォルトの名無しさん:2018/12/16(日) 22:50:52.23 ID:EHgXXRnO.net
バブルソート中

857 :デフォルトの名無しさん:2018/12/16(日) 22:56:36.33 ID:/PxsPleo.net
http://xn--4gq15ldsheocf87g9uc.com/

858 :デフォルトの名無しさん:2018/12/18(火) 11:28:45.03 ID:/M0/bFGF.net
グロ中尉

859 :デフォルトの名無しさん:2019/03/20(水) 19:02:56.05 ID:DvYG4dOj.net
>>1
好き嫌いの問題じゃないと思うが、理論上再起かそれと同等の内部処理履歴を残さないと実現できない処理なら、使うだろう
再起にならざるを得ない具体的な数学(科学)的な条件は忘れたが、けっこう複雑な処理じゃない限り再起じゃなくても実現できたように思う

860 :デフォルトの名無しさん:2019/03/21(木) 01:23:23.96 ID:b2sujHog.net
>>859
「再起」じゃなくて「再帰」ね

スタックを使えば、つまりメモリを余分に使用することを認めれば
再帰はループに書き換えることができるから
再帰でなければ出来ないことは原理的に存在しない

更に言えば関数を受け取りまた返す高階関数があれば
いわゆる不動点演算子に相当するものが書けるので
関数の再帰的定義は不要になる

861 :デフォルトの名無しさん:2019/03/21(木) 03:46:03.75 ID:v9ozWdAP.net
論理的にはクイックソートよりマージソートが好き。
実用性はクイックソートが上なのかな?

862 :デフォルトの名無しさん:2019/03/21(木) 08:59:54.71 ID:eS2pMQJr.net
>>860
>再帰はループに書き換えることができるから
そのループ再帰だよ・・・
再帰の問題点もそのまま同等に引き継いでるよ・・・

863 :デフォルトの名無しさん:2019/03/21(木) 10:49:54.63 ID:uohid6CT.net
ループも不動点演算子も再帰関数の実装の仕方でしかない

864 :デフォルトの名無しさん:2019/03/22(金) 06:20:32.16 ID:t/nkQ3ne.net
リストに対してはクイックソートやマージソートより選択ソートや挿入ソートのが速かった。
ケースによって使い分けるために色んなソートがあるんだなと実感した。

865 :デフォルトの名無しさん:2019/03/22(金) 18:03:42.63 ID:GIrPmH5o.net
どうゆう状況でそんなことが起こるのか想像できない

866 :デフォルトの名無しさん:2019/03/22(金) 20:18:00.83 ID:UnYyaz4E.net
リストってリンクリストってこと?

867 :デフォルトの名無しさん:2019/03/22(金) 23:38:43.20 ID:bs44Fjbm.net
>>862
ループと再帰とは違うよ
更に言えば高階関数があればループも再帰も必要ない
不動点演算子もループも再帰だと言うのはナンセンスだ
それは「再帰と同じだ」と君が思うものを再帰と呼ぶ、と主張しているに等しい
こんな君だけの主観による再帰の定義では議論にならない

868 :デフォルトの名無しさん:2019/03/23(土) 01:46:30.69 ID:05rjzlE7.net
チューリング完全なんだからどの言語でも一緒、という暴論と同程度に「ループと再帰は同じ」も暴論
コンピュータからみた話じゃなくて、プログラムを書く人にとってループと再帰が同価値なのかが問題になる
自分は、複雑でも読み溶ける再帰の方が好き。ループが複雑になると、どの変数がいつのどの値を持っているのか追いきれなくなる
再帰で同程度に複雑な処理を書くと、引数の数やら名前からすぐにヤバイ臭いがするんでそんなに腐らない

869 :デフォルトの名無しさん:2019/03/23(土) 04:14:05.11 ID:FVLL7ja7.net
末尾再帰にすると結局for文とやってることが一緒になる

870 :デフォルトの名無しさん:2019/03/23(土) 04:46:27.26 ID:abrpiqJH.net
モナドな再帰(IOモナドやリスト->リストな再帰)は単純な再帰でもスタック消費しない。
繰り返しコードの単純さは再帰>末尾再帰>=ループ。

871 :デフォルトの名無しさん:2019/04/03(水) 19:48:29.75 ID:mixCZYtf.net
非同期処理の終了を待って、次の繰り返しを行う
再帰でなければ書けない

872 :デフォルトの名無しさん:2019/04/03(水) 19:55:40.32 ID:EqbpbXJ3.net
ダウト

873 :デフォルトの名無しさん:2019/04/04(木) 16:23:32.66 ID:GBwqjObH.net
>>872
非同期処理の終了はイベントやコールバックで通知されるものとする
終了を待つ同期プリミティブは存在しない

Javascriptだとこれが普通で、繰り返しでは書けない

874 :デフォルトの名無しさん:2019/04/04(木) 20:54:30.86 ID:1bkj1Cge.net
納得

875 :デフォルトの名無しさん:2019/04/05(金) 00:21:14.27 ID:ZWKOySqx.net
async/await が JavaScript の新しい仕様として入ったのも知らんのか

876 :デフォルトの名無しさん:2019/04/05(金) 12:13:43.00 ID:dQkyjbHg.net
await/asyncの仕組みを知らないと見える
それ使って、繰り返しで書いてみなよ

877 :デフォルトの名無しさん:2019/04/05(金) 12:38:19.58 ID:dQkyjbHg.net
やっぱ、await/asyncで出来そうな気がしてきた

878 :デフォルトの名無しさん:2019/04/06(土) 00:52:53.01 ID:mONJLbhR.net
rx最強説

879 :デフォルトの名無しさん:2019/04/15(月) 22:24:35.37 ID:SVQji9la.net
>>868
違うよ
柴犬にこっちは太郎でこっちは次郎だから別の犬だ、と言ってるのと同じ

210 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★