探検
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
1デフォルトの名無しさん
2015/11/28(土) 18:51:38.86ID:Rc2MJzM/ なあ、再帰関数好きな人いる?
346デフォルトの名無しさん
2015/12/27(日) 01:46:16.35ID:Y7IK7QLW ループ版で時間がかかってるのはこの部分な気がするな。
配列をコピーしているわけだし。
stack=(${stack[@]::${#stack[@]}-2})
http://www.drk7.jp/MT/archives/000995.html
さて、ここの非再帰版を見ると、どうも配列のコピーはしてないようだ。
ループ版は高速化の余地がありそうだ。
やってみるかね? うまく実装できるかな?
配列をコピーしているわけだし。
stack=(${stack[@]::${#stack[@]}-2})
http://www.drk7.jp/MT/archives/000995.html
さて、ここの非再帰版を見ると、どうも配列のコピーはしてないようだ。
ループ版は高速化の余地がありそうだ。
やってみるかね? うまく実装できるかな?
347デフォルトの名無しさん
2015/12/27(日) 02:00:40.37ID:qGJmRem2 ループの途中でコマンドを呼び出すようにすればもう少し遅くできるんじゃないかな。
348デフォルトの名無しさん
2015/12/27(日) 02:20:49.37ID:Y7IK7QLW さーて、コードをほとんど読まずに、Perl版をそのまま置き換えてみたが
きちんと動かんぞとw 面倒くさいな。
速度的には再帰版より速くなりそうな感じはしてるが、処理間違ってるからなw
きちんと動かんぞとw 面倒くさいな。
速度的には再帰版より速くなりそうな感じはしてるが、処理間違ってるからなw
349デフォルトの名無しさん
2015/12/27(日) 02:32:42.88ID:Y7IK7QLW あ、できたっぽい? 参考にしたコードに二箇所バグが有るようだな。
> &qsort_array($array2,0,$size);
> $right_stack[0] = $right;
$sizeが$rightに入るが、正しくは$size-1
> if ($i - $left < $right - i) {
↓
> if ( ($i - $left) < ($right - i) ) {
Perlの優先順位は、下のように解釈されるんだっけ?
そんなの変えないよな。
今コードを見直してる。
> &qsort_array($array2,0,$size);
> $right_stack[0] = $right;
$sizeが$rightに入るが、正しくは$size-1
> if ($i - $left < $right - i) {
↓
> if ( ($i - $left) < ($right - i) ) {
Perlの優先順位は、下のように解釈されるんだっけ?
そんなの変えないよな。
今コードを見直してる。
350デフォルトの名無しさん
2015/12/27(日) 02:34:29.15ID:Y7IK7QLW ごめん嘘だったw 。あれぇ〜?
351デフォルトの名無しさん
2015/12/27(日) 02:58:09.23ID:Y7IK7QLW Perl版実行してみたがもともとのコードからして動いてないw
352デフォルトの名無しさん
2015/12/27(日) 03:31:06.37ID:Y7IK7QLW マジめんどくさかったわw 参考にしたコードが悪すぎた。
他のコードと比べてよくわからん比較条件とか処理が多かったので
結局諦めてこっちを参考にした。
http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_102
結論。やっぱりループのほうが速かったねw
https://ideone.com/KmmnH7
recursive
real 0m0.550s
user 0m0.548s
sys 0m0.000s
loop
real 0m0.439s
user 0m0.436s
sys 0m0.000s
なお再帰版も>>326よりも速くなっているのは、
上で指摘した点をリファクタリングしたため。
>>326のコード
> recursive
> real 0m0.637s
> user 0m0.636s
> sys 0m0.000s
>
> loop
> real 0m0.723s
> user 0m0.720s
> sys 0m0.000s
他のコードと比べてよくわからん比較条件とか処理が多かったので
結局諦めてこっちを参考にした。
http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_102
結論。やっぱりループのほうが速かったねw
https://ideone.com/KmmnH7
recursive
real 0m0.550s
user 0m0.548s
sys 0m0.000s
loop
real 0m0.439s
user 0m0.436s
sys 0m0.000s
なお再帰版も>>326よりも速くなっているのは、
上で指摘した点をリファクタリングしたため。
>>326のコード
> recursive
> real 0m0.637s
> user 0m0.636s
> sys 0m0.000s
>
> loop
> real 0m0.723s
> user 0m0.720s
> sys 0m0.000s
353デフォルトの名無しさん
2015/12/27(日) 03:35:18.72ID:Y7IK7QLW ループの方が速かったので訂正よろw
328 名前:デフォルトの名無しさん[] 投稿日:2015/12/26(土) 21:22:21.55 ID:EXUTS9i+ [10/10]
なんだやっぱり再帰の方がいいのか
329 名前:デフォルトの名無しさん[sage] 投稿日:2015/12/26(土) 21:26:26.06 ID:hFLlv/LI [1/3]
ぐうの音も出ないなこれは
328 名前:デフォルトの名無しさん[] 投稿日:2015/12/26(土) 21:22:21.55 ID:EXUTS9i+ [10/10]
なんだやっぱり再帰の方がいいのか
329 名前:デフォルトの名無しさん[sage] 投稿日:2015/12/26(土) 21:26:26.06 ID:hFLlv/LI [1/3]
ぐうの音も出ないなこれは
354デフォルトの名無しさん
2015/12/27(日) 03:56:54.62ID:nuYFrBF7 定数の差とかどうでもいい
355デフォルトの名無しさん
2015/12/27(日) 07:31:06.68ID:hwv/tSGM >>353
10000倍高速化してから言いなさい
10000倍高速化してから言いなさい
356デフォルトの名無しさん
2015/12/27(日) 07:39:49.49ID:Y7IK7QLW >>355
いいだしっぺどうぞw
いいだしっぺどうぞw
358デフォルトの名無しさん
2015/12/27(日) 07:55:16.56ID:Y7IK7QLW 言い出しっぺの定義を変えるなよw
本当に往生際が悪いw
本当に往生際が悪いw
359デフォルトの名無しさん
2015/12/27(日) 08:00:41.71ID:hwv/tSGM360デフォルトの名無しさん
2015/12/27(日) 08:06:42.55ID:Y7IK7QLW と言われてもなぁw
俺は1万倍速いなんて言ってないし。
ループのほうが速いという証拠も出したからどうでもいいかなw
俺は1万倍速いなんて言ってないし。
ループのほうが速いという証拠も出したからどうでもいいかなw
361デフォルトの名無しさん
2015/12/27(日) 08:16:44.55ID:hwv/tSGM じゃ、求めた訂正を取り消しなさい。
362デフォルトの名無しさん
2015/12/27(日) 08:18:08.68ID:Y7IK7QLW >>361
これでいいのかい?w
ループの方が速かったよwww
328 名前:デフォルトの名無しさん[] 投稿日:2015/12/26(土) 21:22:21.55 ID:EXUTS9i+ [10/10]
なんだやっぱり再帰の方がいいのか
329 名前:デフォルトの名無しさん[sage] 投稿日:2015/12/26(土) 21:26:26.06 ID:hFLlv/LI [1/3]
ぐうの音も出ないなこれは
これでいいのかい?w
ループの方が速かったよwww
328 名前:デフォルトの名無しさん[] 投稿日:2015/12/26(土) 21:22:21.55 ID:EXUTS9i+ [10/10]
なんだやっぱり再帰の方がいいのか
329 名前:デフォルトの名無しさん[sage] 投稿日:2015/12/26(土) 21:26:26.06 ID:hFLlv/LI [1/3]
ぐうの音も出ないなこれは
363デフォルトの名無しさん
2015/12/27(日) 09:08:43.20ID:hwv/tSGM 少し速いと10000倍速いの区別がつかないおバカさんとうエビデンス(笑)
364デフォルトの名無しさん
2015/12/27(日) 09:33:20.24ID:Zmrinoji 分かったことは
・再帰をただ単にループに直すと却って遅くなる
・最適化を施せばループのほうが速くなるが、10000倍速くなるなんてことはない
の2点でおっけい?
・再帰をただ単にループに直すと却って遅くなる
・最適化を施せばループのほうが速くなるが、10000倍速くなるなんてことはない
の2点でおっけい?
365デフォルトの名無しさん
2015/12/27(日) 09:55:25.37ID:TQTcd7lL そうだな。シリアがどうとか言い始めるほどループの方が優秀な訳では無さそうだな
366デフォルトの名無しさん
2015/12/27(日) 10:12:22.58ID:dpCOQ+Jx ∞倍だね。
再帰なんってのと比較すること自体おかしい。
却って遅くなるなんて書いてる恥知らずは、プログラミング技術が無さ過ぎ。
再帰なんってのと比較すること自体おかしい。
却って遅くなるなんて書いてる恥知らずは、プログラミング技術が無さ過ぎ。
367デフォルトの名無しさん
2015/12/27(日) 10:24:13.63ID:Zmrinoji368デフォルトの名無しさん
2015/12/27(日) 10:36:38.52ID:dpCOQ+Jx やり取りからだって?
2chの妄想だけじゃなくて現実を見ろよ。
2chの妄想だけじゃなくて現実を見ろよ。
369デフォルトの名無しさん
2015/12/27(日) 10:40:01.29ID:hwv/tSGM ∞倍 wwwww
無限大を憶えたての小学生かよ
quick sort 再帰/quick sort 非再帰 = ∞, すなわちquick sort 非再帰が0って事だな。
再帰を必死に否定しているバカの主張
1 スタックが制限の厳しいリソースである環境が全てだと思い込み、再帰の致命的なペナルティだと主張する
2 シェル関数呼び出しをエビデンスとして、再帰が130倍遅いと主張する
3 再帰版のqsortは数万倍遅いと主張するが、数万倍速いはずの非再帰版を示さない
4 知能が低く再帰を理解できない。それをもって再帰は難解と主張する。
5 非再帰版qsortの実行時間はゼロ
本当に知能が低い
無限大を憶えたての小学生かよ
quick sort 再帰/quick sort 非再帰 = ∞, すなわちquick sort 非再帰が0って事だな。
再帰を必死に否定しているバカの主張
1 スタックが制限の厳しいリソースである環境が全てだと思い込み、再帰の致命的なペナルティだと主張する
2 シェル関数呼び出しをエビデンスとして、再帰が130倍遅いと主張する
3 再帰版のqsortは数万倍遅いと主張するが、数万倍速いはずの非再帰版を示さない
4 知能が低く再帰を理解できない。それをもって再帰は難解と主張する。
5 非再帰版qsortの実行時間はゼロ
本当に知能が低い
370デフォルトの名無しさん
2015/12/27(日) 11:19:02.84ID:BwztOoZh371デフォルトの名無しさん
2015/12/27(日) 11:22:49.99ID:Zmrinoji372デフォルトの名無しさん
2015/12/27(日) 11:23:28.75ID:yWds0j/q 繰り返しの方が再帰より速い!
(ただしシェルスクリプトに限る)
(ただしシェルスクリプトに限る)
373デフォルトの名無しさん
2015/12/27(日) 11:23:33.41ID:Zmrinoji374デフォルトの名無しさん
2015/12/27(日) 11:29:16.92ID:nlFV9EHx >>371
引数受け渡しとかレジスタ待避とかで、余分なメモリー操作が発生する。
引数受け渡しとかレジスタ待避とかで、余分なメモリー操作が発生する。
375デフォルトの名無しさん
2015/12/27(日) 11:32:56.76ID:Zmrinoji376デフォルトの名無しさん
2015/12/27(日) 11:43:09.26ID:yWds0j/q >>374
明示的なスタック操作と大差ないのでは?
明示的なスタック操作と大差ないのでは?
377デフォルトの名無しさん
2015/12/27(日) 11:52:39.31ID:BwztOoZh >>373
純粋に処理速度の話してんならネイティヴコード化したものでないとさ
純粋に処理速度の話してんならネイティヴコード化したものでないとさ
378デフォルトの名無しさん
2015/12/27(日) 12:07:38.28ID:BwztOoZh379デフォルトの名無しさん
2015/12/27(日) 12:20:57.14ID:nuYFrBF7 クイックソートだからなんとかなってるだけで
たとえば赤黒木の操作を自前でスタック管理するアホはいないわけ
たとえば赤黒木の操作を自前でスタック管理するアホはいないわけ
380デフォルトの名無しさん
2015/12/27(日) 12:27:15.41ID:Zmrinoji381デフォルトの名無しさん
2015/12/27(日) 12:33:24.41ID:BwztOoZh >>380
ああ分かってない人ねwww
ああ分かってない人ねwww
382デフォルトの名無しさん
2015/12/27(日) 12:35:34.85ID:Zmrinoji >>378
Pen4のデータシートの値を元にするなら
ループのコストと再帰のコストは約2.5〜3clockくらいの差になると思う。
今時のCPUならもっと差は縮まるだろうし、実際に測った訳じゃないけど
だいたいそのくらいになる筈。
Pen4のデータシートの値を元にするなら
ループのコストと再帰のコストは約2.5〜3clockくらいの差になると思う。
今時のCPUならもっと差は縮まるだろうし、実際に測った訳じゃないけど
だいたいそのくらいになる筈。
383デフォルトの名無しさん
2015/12/27(日) 12:38:44.94ID:Zmrinoji384デフォルトの名無しさん
2015/12/27(日) 12:38:57.92ID:BwztOoZh385デフォルトの名無しさん
2015/12/27(日) 12:42:13.97ID:Zmrinoji386デフォルトの名無しさん
2015/12/27(日) 12:46:31.99ID:BwztOoZh >>385
thx
thx
387デフォルトの名無しさん
2015/12/27(日) 13:08:45.42ID:yWds0j/q >>378
tail callを繰り返しに変換できるようなケースだと
関数呼び出しはコスト高かも知れないが、
ループ版では明示的スタック操作をしなければならない場合、
call,ret相当のことをjpと組み合わせて明示的にやらないといけない。
通常、関数呼び出し後のスタックフレームの確保はcalleeが明示的にやるからループ版と変わらないが、
スタックフレームの開放はretが自動的にやる。
だからコスト的には大差なく、
関数呼び出しの方が有利なケースだってあるはず。
繰り返しの明示的なスタック操作が圧倒的有利にあるのは、
FILOじゃなくてFIFOにしたり戦略が建てられること。
tail callを繰り返しに変換できるようなケースだと
関数呼び出しはコスト高かも知れないが、
ループ版では明示的スタック操作をしなければならない場合、
call,ret相当のことをjpと組み合わせて明示的にやらないといけない。
通常、関数呼び出し後のスタックフレームの確保はcalleeが明示的にやるからループ版と変わらないが、
スタックフレームの開放はretが自動的にやる。
だからコスト的には大差なく、
関数呼び出しの方が有利なケースだってあるはず。
繰り返しの明示的なスタック操作が圧倒的有利にあるのは、
FILOじゃなくてFIFOにしたり戦略が建てられること。
388デフォルトの名無しさん
2015/12/27(日) 13:36:27.64ID:9aquywWv389デフォルトの名無しさん
2015/12/27(日) 13:46:00.90ID:nuYFrBF7 頑張ってバグ入れずに済んでよかったね、としか。
しかもそれで得られる速度の向上も微々たるもの。
しかもそれで得られる速度の向上も微々たるもの。
390デフォルトの名無しさん
2015/12/27(日) 14:00:50.68ID:9aquywWv391デフォルトの名無しさん
2015/12/27(日) 14:27:20.76ID:+491JRRx >>388
>赤黒木はループで実装してる
本当か?やればできるものなのか?証拠をみせてみろ
平衡ニ分木であるからスタックもむやみに深くならないし,
正直なところ,可能だとしてループ化するメリットがあるのかね
>赤黒木はループで実装してる
本当か?やればできるものなのか?証拠をみせてみろ
平衡ニ分木であるからスタックもむやみに深くならないし,
正直なところ,可能だとしてループ化するメリットがあるのかね
392デフォルトの名無しさん
2015/12/27(日) 14:37:53.35ID:9aquywWv393デフォルトの名無しさん
2015/12/27(日) 14:44:37.25ID:BwztOoZh394デフォルトの名無しさん
2015/12/27(日) 14:47:35.86ID:kNkpHWWg 知らないうちにコードが再帰化してハマりました
のほうが多そう
のほうが多そう
395デフォルトの名無しさん
2015/12/27(日) 15:00:09.33ID:9aquywWv >>393
主語がわからん
主語がわからん
396デフォルトの名無しさん
2015/12/27(日) 15:03:49.95ID:BwztOoZh >>395
バグが増える要因はプログラミングソースのステップ数や可読性に左右されるのであって、アルゴリズムは特に関係ないということ
バグが増える要因はプログラミングソースのステップ数や可読性に左右されるのであって、アルゴリズムは特に関係ないということ
397デフォルトの名無しさん
2015/12/27(日) 15:06:51.61ID:9aquywWv >>396
アルゴリズムによってステップ数や可読性は変わるよ
アルゴリズムによってステップ数や可読性は変わるよ
398デフォルトの名無しさん
2015/12/27(日) 16:29:32.45ID:hwv/tSGM >>388
LinuxもFreeBSDも木全体に対して何らかの操作を行うインターフェースを実装してないからあたりまえ。
どっかで見たことある気がしたので探してみたらunbound
http://code.metager.de/source/xref/freebsd/contrib/unbound/util/rbtree.c
また一つ、再帰否定バカが無知のエビデンス(笑)を積み重ねていく
LinuxもFreeBSDも木全体に対して何らかの操作を行うインターフェースを実装してないからあたりまえ。
どっかで見たことある気がしたので探してみたらunbound
http://code.metager.de/source/xref/freebsd/contrib/unbound/util/rbtree.c
また一つ、再帰否定バカが無知のエビデンス(笑)を積み重ねていく
399デフォルトの名無しさん
2015/12/27(日) 16:32:53.51ID:9aquywWv400デフォルトの名無しさん
2015/12/27(日) 16:47:04.16ID:9aquywWv インターフェース?
再帰と関係あるのかな?
わからん。この世はわからんことだらけだ。
再帰と関係あるのかな?
わからん。この世はわからんことだらけだ。
401デフォルトの名無しさん
2015/12/27(日) 17:00:20.74ID:GUkoCLfr > LinuxもFreeBSDも木全体に対して何らかの操作を行うインターフェースを実装してない
?
OSが…インタフェースを…実装?
?
OSが…インタフェースを…実装?
402デフォルトの名無しさん
2015/12/27(日) 17:01:14.29ID:Zmrinoji404デフォルトの名無しさん
2015/12/27(日) 17:03:49.11ID:9aquywWv >>401
わけわからんよね。
わけわからんよね。
405デフォルトの名無しさん
2015/12/27(日) 17:04:55.68ID:Zmrinoji >>403
ほう、つまり君はただのループをスタック管理と解釈する訳だね?
ほう、つまり君はただのループをスタック管理と解釈する訳だね?
406デフォルトの名無しさん
2015/12/27(日) 17:05:12.17ID:X/TfzIFq 最近、書き込みが多くなって
このスレの勢いがすごい
このスレの勢いがすごい
407デフォルトの名無しさん
2015/12/27(日) 17:07:35.61ID:Zmrinoji408デフォルトの名無しさん
2015/12/27(日) 17:18:58.89ID:9aquywWv409デフォルトの名無しさん
2015/12/27(日) 17:21:03.25ID:9aquywWv 語句の解釈に文句つけるのはあまり建設的じゃないような・・・。
その先には何もないような・・・。
その先には何もないような・・・。
410デフォルトの名無しさん
2015/12/27(日) 17:24:39.80ID:9aquywWv クイックソートについても再帰のスタックをそのまま
ループで再現するっていうのはどうかと思うなあ。
末尾再帰は単純なループに変換できる。ループで書くならループらしい書き方をするべき。
ループで再現するっていうのはどうかと思うなあ。
末尾再帰は単純なループに変換できる。ループで書くならループらしい書き方をするべき。
411デフォルトの名無しさん
2015/12/27(日) 17:26:57.17ID:Zmrinoji412デフォルトの名無しさん
2015/12/27(日) 17:28:09.10ID:9aquywWv >>411
解釈が違うのなら話が噛み合わないことについては筋が通るかと。
解釈が違うのなら話が噛み合わないことについては筋が通るかと。
413デフォルトの名無しさん
2015/12/27(日) 17:29:32.88ID:Zmrinoji414デフォルトの名無しさん
2015/12/27(日) 17:30:37.18ID:Zmrinoji あ、勿論クイックソートをもっと単純なループで書き直せるってんなら歓迎するよ!
415デフォルトの名無しさん
2015/12/27(日) 17:33:05.31ID:9aquywWv >>413
一方の再帰呼び出しは末尾再帰になるっしょ。ループに置換できる。
一方の再帰呼び出しは末尾再帰になるっしょ。ループに置換できる。
416デフォルトの名無しさん
2015/12/27(日) 17:33:09.23ID:Zmrinoji417デフォルトの名無しさん
2015/12/27(日) 17:34:13.75ID:Zmrinoji >>415
・・・・・・それは依然として再帰関数と呼ぶのでは?
・・・・・・それは依然として再帰関数と呼ぶのでは?
418デフォルトの名無しさん
2015/12/27(日) 17:37:56.44ID:9aquywWv419デフォルトの名無しさん
2015/12/27(日) 17:39:20.40ID:9aquywWv420デフォルトの名無しさん
2015/12/27(日) 17:42:10.80ID:Zmrinoji421デフォルトの名無しさん
2015/12/27(日) 17:43:59.16ID:Zmrinoji >>419
https://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0
「再帰とは、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。」
ループを含む関数は再帰関数にはなれないの?
そんなことはないと思うんだけど。
https://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0
「再帰とは、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。」
ループを含む関数は再帰関数にはなれないの?
そんなことはないと思うんだけど。
422デフォルトの名無しさん
2015/12/27(日) 17:46:46.63ID:YWwZOVBb 末尾再帰を勘違いしている人がいるので説明しておこう。
末尾再帰は「再帰を末尾再帰で書けば速くなる」というものではなくて
(単純な)ループを何らかの理由で再帰の形にしないといけない時、
末尾再帰の条件を満たすように、ループを再帰に変換すると
コンパイラが再帰をループに逆変換してくれる機能
なので、再帰を全て末尾再帰にできるわけではなく
(末尾再帰にできるのは、元が単純なループの場合のみ)
また、ループ ─(人間)→ 再帰 ─(コンパイラ) → ループ
というふうに、ループに戻しているだけなのでループより速くなることはない。
末尾再帰は「再帰を末尾再帰で書けば速くなる」というものではなくて
(単純な)ループを何らかの理由で再帰の形にしないといけない時、
末尾再帰の条件を満たすように、ループを再帰に変換すると
コンパイラが再帰をループに逆変換してくれる機能
なので、再帰を全て末尾再帰にできるわけではなく
(末尾再帰にできるのは、元が単純なループの場合のみ)
また、ループ ─(人間)→ 再帰 ─(コンパイラ) → ループ
というふうに、ループに戻しているだけなのでループより速くなることはない。
423デフォルトの名無しさん
2015/12/27(日) 17:47:27.00ID:hwv/tSGM >>401,404
FreeBSDのrbtreeもLinuxのrbtreeもそういうインターフェースを実装していないって事だよ。
FreeBSDのrbtreeもLinuxのrbtreeもそういうインターフェースを実装していないって事だよ。
424デフォルトの名無しさん
2015/12/27(日) 17:54:40.33ID:Zmrinoji >>422
より正確には、「再帰全てをノーコストで末尾再帰にできるわけではなく」かな。
関数がファーストクラスならCPSに変換すれば末尾再帰の形にはなる。
・・・・・・ヒープガリゴリ使うし、スタックを自前で持つのと変わらんけど。
より正確には、「再帰全てをノーコストで末尾再帰にできるわけではなく」かな。
関数がファーストクラスならCPSに変換すれば末尾再帰の形にはなる。
・・・・・・ヒープガリゴリ使うし、スタックを自前で持つのと変わらんけど。
425デフォルトの名無しさん
2015/12/27(日) 17:56:45.58ID:9aquywWv426デフォルトの名無しさん
2015/12/27(日) 17:58:29.79ID:YWwZOVBb427デフォルトの名無しさん
2015/12/27(日) 18:00:45.81ID:9aquywWv >>421
無理。再帰を使うなら全部再帰で書くべき。
ループを使う処理では再帰を書かない。
再帰を使う処理ではループを書かない。
それで初めてループと再帰の決着がつけられる。
そしてループが勝利する。
無理。再帰を使うなら全部再帰で書くべき。
ループを使う処理では再帰を書かない。
再帰を使う処理ではループを書かない。
それで初めてループと再帰の決着がつけられる。
そしてループが勝利する。
428デフォルトの名無しさん
2015/12/27(日) 18:01:48.21ID:Zmrinoji >>425
確率が1を超えてるとか、幼稚園に迷い込んだ気分だよ。
「赤黒木の操作を自前でスタック管理するアホはいない」と言っている以上、
赤黒木の操作は、スタックなんてものをそもそも自分で触らないようなやり方、
つまり再帰か、又は上手なループで実装されているって話だろ?
フィボナッチ数を計算する関数をスタックを使わずに書いたって言った時、君は再帰の方しか思い浮かべられないのかい?
もしかして自閉症患者かい?
確率が1を超えてるとか、幼稚園に迷い込んだ気分だよ。
「赤黒木の操作を自前でスタック管理するアホはいない」と言っている以上、
赤黒木の操作は、スタックなんてものをそもそも自分で触らないようなやり方、
つまり再帰か、又は上手なループで実装されているって話だろ?
フィボナッチ数を計算する関数をスタックを使わずに書いたって言った時、君は再帰の方しか思い浮かべられないのかい?
もしかして自閉症患者かい?
429デフォルトの名無しさん
2015/12/27(日) 18:04:52.45ID:Zmrinoji >>427
それじゃぁ各ノードに可変個の子要素を持つ多分木を列挙するコードは
どうやって書くつもり?
for (auto it : children) {
if (it->is_leaf()) {
printf("%d ", it->value);
} else {
it->print_values();
}
}
それじゃぁ各ノードに可変個の子要素を持つ多分木を列挙するコードは
どうやって書くつもり?
for (auto it : children) {
if (it->is_leaf()) {
printf("%d ", it->value);
} else {
it->print_values();
}
}
430デフォルトの名無しさん
2015/12/27(日) 18:11:29.94ID:9aquywWv431デフォルトの名無しさん
2015/12/27(日) 18:15:49.41ID:9aquywWv432デフォルトの名無しさん
2015/12/27(日) 18:18:05.73ID:Zmrinoji433デフォルトの名無しさん
2015/12/27(日) 18:18:46.64ID:Zmrinoji >>431
どっちでも良いけど、どっちかしか「使ってはならない」というローカルルールの元ではどう書くの?
どっちでも良いけど、どっちかしか「使ってはならない」というローカルルールの元ではどう書くの?
434デフォルトの名無しさん
2015/12/27(日) 18:47:59.48ID:Zmrinoji435デフォルトの名無しさん
2015/12/27(日) 18:53:56.10ID:9aquywWv >>432
スタックで管理の解釈の違いだな。やっぱり噛み合わない。
スタックで管理の解釈の違いだな。やっぱり噛み合わない。
436デフォルトの名無しさん
2015/12/27(日) 18:57:04.25ID:9aquywWv >>434
あのさ、同意も取らずに強引に物事を進めようとするのってどうかと思うよ。
北風と太陽って話くらい知ってるでしょ?コンセンサスってとても大事。
お前コンセントしか知らないだろ。扇風機の線をぶち込んどけば何とかなるものと
しか思ってないだろ。それじゃないからな。
まずは、どういう理由で書いてほしいのかっていうところと
それによって何が成し遂げられるのかっていうところとどうして自分で
やらないのかって言うところを説明して、心からお願いしないと俺の不動の心は動かないよ。
あのさ、同意も取らずに強引に物事を進めようとするのってどうかと思うよ。
北風と太陽って話くらい知ってるでしょ?コンセンサスってとても大事。
お前コンセントしか知らないだろ。扇風機の線をぶち込んどけば何とかなるものと
しか思ってないだろ。それじゃないからな。
まずは、どういう理由で書いてほしいのかっていうところと
それによって何が成し遂げられるのかっていうところとどうして自分で
やらないのかって言うところを説明して、心からお願いしないと俺の不動の心は動かないよ。
437デフォルトの名無しさん
2015/12/27(日) 19:08:44.13ID:Zmrinoji438デフォルトの名無しさん
2015/12/27(日) 19:10:20.46ID:/NTMuKoN 横道にそれ過ぎずに、それぞれの論旨を書いてみろよ。
中傷合戦ひどくてわからん。
中傷合戦ひどくてわからん。
439デフォルトの名無しさん
2015/12/27(日) 19:12:29.31ID:9aquywWv >>437
ループと再帰の優劣をつける場合、ループはループだけで
再帰は再帰だけで実装するべきだよねって話をしただけだよ。
お話の前提をすり替えてあたかもお話が続いているように
するのはよろしくないと思うんだよな。
ループと再帰の優劣をつける場合、ループはループだけで
再帰は再帰だけで実装するべきだよねって話をしただけだよ。
お話の前提をすり替えてあたかもお話が続いているように
するのはよろしくないと思うんだよな。
440デフォルトの名無しさん
2015/12/27(日) 19:13:53.77ID:9aquywWv441デフォルトの名無しさん
2015/12/27(日) 19:14:42.52ID:Zmrinoji442デフォルトの名無しさん
2015/12/27(日) 19:19:02.12ID:9aquywWv443デフォルトの名無しさん
2015/12/27(日) 19:19:34.89ID:Rer1VVak バッファオーバーフロー攻撃を成功させるためには、再帰が最も都合よい。
444デフォルトの名無しさん
2015/12/27(日) 19:26:07.61ID:Rer1VVak 攻撃されるのと攻撃するのと、どちらが良いか?
当然、攻撃する方が良い。
つまりテロリストは勝ち組なのである。
当該スレにおいて再帰を推奨している人は勝ち組である。
なぜなら危険物を推奨するのは攻撃側だからである。
当然、攻撃する方が良い。
つまりテロリストは勝ち組なのである。
当該スレにおいて再帰を推奨している人は勝ち組である。
なぜなら危険物を推奨するのは攻撃側だからである。
445デフォルトの名無しさん
2015/12/27(日) 19:30:06.01ID:9aquywWv >>443
そういうことだな。昨今、関数型言語の流行に伴って再帰がすぐれたものであると
思い込んだニワカのペーペーどもがろくな知識も持たずに危険なコードを
書きまくって悦に入ってる姿を見ると暗い気持ちになる。再帰というのは
ループに大敗北した歴史を持つものだっていうのを知って欲しい。
for whileというのは再帰の進化形。メガ進化。
そういうことだな。昨今、関数型言語の流行に伴って再帰がすぐれたものであると
思い込んだニワカのペーペーどもがろくな知識も持たずに危険なコードを
書きまくって悦に入ってる姿を見ると暗い気持ちになる。再帰というのは
ループに大敗北した歴史を持つものだっていうのを知って欲しい。
for whileというのは再帰の進化形。メガ進化。
446デフォルトの名無しさん
2015/12/27(日) 19:33:08.96ID:Rer1VVak お前ら逮捕されても知らんぞ。
公共の場所で再帰を勧めたりしてたら、そのうち警察が事情を聴きに来るぞ。
公共の場所で再帰を勧めたりしてたら、そのうち警察が事情を聴きに来るぞ。
レスを投稿する
ニュース
- 【速報】政府、与党がNISA未成年解禁を検討 [蚤の市★]
- 【茶葉高騰】「綾鷹」値上げで650mL220円に 26年3月から [1ゲットロボ★]
- 【女子ゴルフ】都玲華(21)30歳年上の既婚者コーチとの交際関係とコーチ契約解消「昨年からお付き合いしてました。」 [阿弥陀ヶ峰★]
- 【おこめ】ベトナムから密輸のコメを「国産」と偽り販売容疑、ベトナム人ら2人追送検…300トン売って1億3000万円稼いだか 大阪 ★2 [ぐれ★]
- 【ポッケに手】中国外交部局長、11月に日系企業の拠点視察「安心して事業活動をしてほしい」と伝達 [1ゲットロボ★]
- TBS「THE TIME」 収録中にリポーターの原千晶さんが負傷と発表 [muffin★]
- とらせん IP
- 競輪実況★1616
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1816
- わしせん 楽天モバイル 最強パーク宮城
- 【U-NEXT】プレミアリーグ総合 ★39
- ハム専 エスコン日韓OB戦
- Fate/GOスレ
- 【悲報】たぬかな、イベント辞退「身の安全を確保できない」 [329329848]
- 【悲報】韓国「今から一緒に、これから一緒に、謝り行こうか?」高市「嫌 嫌 嫌 嫌 嫌 嫌 嫌」 [769931615]
- 流行語大賞 「働いて働いて働いて」 に [546716239]
- おさかなさんあつまれえ
- 【悲報】とうふさん、死亡🏡
