探検
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
1デフォルトの名無しさん
2015/11/28(土) 18:51:38.86ID:Rc2MJzM/ なあ、再帰関数好きな人いる?
246デフォルトの名無しさん
2015/12/24(木) 14:54:05.30ID:QIUsopJK247デフォルトの名無しさん
2015/12/24(木) 16:38:25.55ID:2ShnOfV/248デフォルトの名無しさん
2015/12/24(木) 17:26:51.73ID:ri4CJahT 最初期は再帰をサポートしてなかった計算言語があるらしい
249デフォルトの名無しさん
2015/12/24(木) 18:44:44.88ID:W/SZtGXt 今はハードウェアレベルで再帰が実装されてるからな。
それを思えばいかに再帰が本質的にプログラミングに必要とされてるかってことだな。
それを思えばいかに再帰が本質的にプログラミングに必要とされてるかってことだな。
250デフォルトの名無しさん
2015/12/24(木) 20:04:26.21ID:aanAAc0G 計算可能性を探求する試みにおいて最初に出たのが、
エルブラン・ゲーデルの一般帰納関数だからね。
次がラムダ計算。
その次がノイマン型計算機直系の先祖であるチューリングマシン。
エルブラン・ゲーデルの一般帰納関数だからね。
次がラムダ計算。
その次がノイマン型計算機直系の先祖であるチューリングマシン。
251デフォルトの名無しさん
2015/12/24(木) 20:37:54.33ID:Hny3MC9I 10000倍だっておとなしいぐらい。
再帰だと落ちまくるから∞倍だって当たり前だろ。
再帰だと落ちまくるから∞倍だって当たり前だろ。
252デフォルトの名無しさん
2015/12/24(木) 20:46:14.21ID:W/SZtGXt メモリ足りないなら動かないのは再帰もループも変わらんだろ。
ループのほうが本質的にメモリ使用量少なくなるとかなら話は変わってくるが。
ループのほうが本質的にメモリ使用量少なくなるとかなら話は変わってくるが。
253デフォルトの名無しさん
2015/12/24(木) 20:58:31.47ID:2ShnOfV/ これだね。本当に知能が低い。
> 1 スタックが制限の厳しいリソースである環境が全てだと思い込み、再帰の致命的なペナルティだと主張する
> 1 スタックが制限の厳しいリソースである環境が全てだと思い込み、再帰の致命的なペナルティだと主張する
254デフォルトの名無しさん
2015/12/25(金) 18:57:10.38ID:IqCVGu/8 >再帰もループも変わらんだろ。
なんで試してみないんだ?
再帰とループでクイックソート
ループ方式なら、データが何千万件あろうと無問題
なんで試してみないんだ?
再帰とループでクイックソート
ループ方式なら、データが何千万件あろうと無問題
255デフォルトの名無しさん
2015/12/25(金) 19:44:32.39ID:TZMq+uAI >>254
ループのソース晒してみろや
ループのソース晒してみろや
256uy ◆Qawu9.2l1E
2015/12/26(土) 05:53:41.97ID:QzXIU7/C 覚えたての知識を使ってレスバトルするだけのスレなんていらねーから
257デフォルトの名無しさん
2015/12/26(土) 08:33:15.25ID:oIXuKyHb いらないスレを使って自分の意見を垂れ流すとか有効活用乙としか
258デフォルトの名無しさん
2015/12/26(土) 10:19:35.68ID:EXUTS9i+ そういう初心者の遊び場もあっていいと思うけどなあ
259デフォルトの名無しさん
2015/12/26(土) 12:54:13.38ID:KD7gR2Cz >>252
再帰の方は、関数呼び出し大量に発生するから、リターンアドレス待避とレジスタ待避に、メモリーが喰われる。
再帰の方は、関数呼び出し大量に発生するから、リターンアドレス待避とレジスタ待避に、メモリーが喰われる。
260デフォルトの名無しさん
2015/12/26(土) 13:36:54.41ID:oIXuKyHb >>259
ループの方は今どの範囲についてソートしているのかという情報が大量に発生するから同じ議論が成り立つ訳だが。
ループの方は今どの範囲についてソートしているのかという情報が大量に発生するから同じ議論が成り立つ訳だが。
261デフォルトの名無しさん
2015/12/26(土) 13:40:32.70ID:6n5NtJkM262sage
2015/12/26(土) 15:02:23.21ID:Igcba1qr263デフォルトの名無しさん
2015/12/26(土) 16:45:09.37ID:YV12MLKo >>262
再帰版でうまくいくのだったら非再帰版ではもっとうまくいく,という発想はないのかね?
再帰版でうまくいくのだったら非再帰版ではもっとうまくいく,という発想はないのかね?
264デフォルトの名無しさん
2015/12/26(土) 16:59:02.38ID:oIXuKyHb265デフォルトの名無しさん
2015/12/26(土) 17:27:47.02ID:Igcba1qr >>263
知能障害者って本当にかわいそう。
5000万件でソート出来てるってことは、「再帰はスタックあふれる」という迷信が嘘だという発想には至らないのかね。
クイックソートの深さの制御はすでに研究し尽くされてて、全然問題ないんだよ。
知能障害者って本当にかわいそう。
5000万件でソート出来てるってことは、「再帰はスタックあふれる」という迷信が嘘だという発想には至らないのかね。
クイックソートの深さの制御はすでに研究し尽くされてて、全然問題ないんだよ。
266デフォルトの名無しさん
2015/12/26(土) 17:37:15.54ID:Igcba1qr あっ、繰り返し版は10000倍速いんだっけ? (爆笑)
早く実装コードみたいなあ。
早く実装コードみたいなあ。
267デフォルトの名無しさん
2015/12/26(土) 18:11:47.33ID:6n5NtJkM268デフォルトの名無しさん
2015/12/26(土) 18:13:42.40ID:EXUTS9i+ シェルスクリプトを証拠として使うのは笑ってしまうからやめろ
269デフォルトの名無しさん
2015/12/26(土) 18:16:50.75ID:6n5NtJkM >>268
反論できないのな?じゃあお前の負けってことで。
反論できないのな?じゃあお前の負けってことで。
270デフォルトの名無しさん
2015/12/26(土) 18:22:25.08ID:EXUTS9i+ 野次飛ばしてる観客相手に勝利宣言も笑うからやめろ
おまえはプロレスのヒール役か
おまえはプロレスのヒール役か
271デフォルトの名無しさん
2015/12/26(土) 18:26:32.21ID:gy7QXsCA >高々定数倍
そんな安全なもんじゃあねぇ。
データが増えれば差も増大。
そんな安全なもんじゃあねぇ。
データが増えれば差も増大。
273デフォルトの名無しさん
2015/12/26(土) 18:41:57.44ID:Igcba1qr274デフォルトの名無しさん
2015/12/26(土) 18:47:36.31ID:Igcba1qr ちなみにglibcのqsort(これは非再帰)も同じ手法で自前スタックを管理してる
知能が低いって本当にかわいそう。
https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=stdlib/qsort.c;h=04c25b984f74a8f738233cc6da8a738b6437833c;hb=b8079dd0d360648e4e8de48656c5c38972621072
/* The next 4 #defines implement a very fast in-line stack abstraction. */
/* The stack needs log (total_elements) entries (we could even subtract
log(MAX_THRESH)). Since total_elements has type size_t, we get as
upper bound for log (total_elements):
bits per byte (CHAR_BIT) * sizeof(size_t). */
知能が低いって本当にかわいそう。
https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=stdlib/qsort.c;h=04c25b984f74a8f738233cc6da8a738b6437833c;hb=b8079dd0d360648e4e8de48656c5c38972621072
/* The next 4 #defines implement a very fast in-line stack abstraction. */
/* The stack needs log (total_elements) entries (we could even subtract
log(MAX_THRESH)). Since total_elements has type size_t, we get as
upper bound for log (total_elements):
bits per byte (CHAR_BIT) * sizeof(size_t). */
275デフォルトの名無しさん
2015/12/26(土) 19:02:41.83ID:6n5NtJkM276デフォルトの名無しさん
2015/12/26(土) 19:08:33.46ID:YV12MLKo >>273
log n は発散するんだが‥
log n は発散するんだが‥
277デフォルトの名無しさん
2015/12/26(土) 19:09:07.52ID:oIXuKyHb >>275
バカはお前だ。シェルスクリプトでクイックソートを実装するなんて誰がするか。
sortプログラムを使え。
ちなみにシェルスクリプトの場合、関数呼び出しはそれ自体がスタックの深さをnとしてO(n^2)くらいの計算時間を持つっぽい。
バカはお前だ。シェルスクリプトでクイックソートを実装するなんて誰がするか。
sortプログラムを使え。
ちなみにシェルスクリプトの場合、関数呼び出しはそれ自体がスタックの深さをnとしてO(n^2)くらいの計算時間を持つっぽい。
278デフォルトの名無しさん
2015/12/26(土) 19:09:41.46ID:Igcba1qr279デフォルトの名無しさん
2015/12/26(土) 19:10:23.62ID:oIXuKyHb280デフォルトの名無しさん
2015/12/26(土) 19:11:25.60ID:6n5NtJkM >>277
実装できないのな?無理なのな?はい論破。
実装できないのな?無理なのな?はい論破。
281デフォルトの名無しさん
2015/12/26(土) 19:14:27.33ID:6n5NtJkM282デフォルトの名無しさん
2015/12/26(土) 19:14:30.05ID:Igcba1qr283デフォルトの名無しさん
2015/12/26(土) 19:16:21.04ID:oIXuKyHb >>280
練習のためなら兎も角、シェルスクリプト「だけ」でソーティングなんてやる意味が無い。
ループだろうと再帰だろうとね。
理由は遅いから。
ループで組んだとしても、非常に遅いから、実装するだけの意味が無い。
sortを呼べばCで書かれた非常に高速でスケーラブルなソーティングが出来るから、普通はそっちを使う。
さぁ君は一体何を論破したというのだい?
練習のためなら兎も角、シェルスクリプト「だけ」でソーティングなんてやる意味が無い。
ループだろうと再帰だろうとね。
理由は遅いから。
ループで組んだとしても、非常に遅いから、実装するだけの意味が無い。
sortを呼べばCで書かれた非常に高速でスケーラブルなソーティングが出来るから、普通はそっちを使う。
さぁ君は一体何を論破したというのだい?
284デフォルトの名無しさん
2015/12/26(土) 19:16:31.66ID:Igcba1qr285デフォルトの名無しさん
2015/12/26(土) 19:17:31.65ID:6n5NtJkM286デフォルトの名無しさん
2015/12/26(土) 19:21:05.64ID:oIXuKyHb >>281
ちょっと試せば分かることなんだけど、シェルスクリプトに於いて再帰の実行速度は
呼び出し深さnに対してO(n^2)くらい掛かる。
で、クイックソートの呼び出しの深さは要素数mについてO(log m)なので
O(log^2 m)の計算時間が再帰だけで掛かることになる。
つまり全体の計算量はO(m log^2 m)だ。
一方でループの場合にはO(m log m)掛かるから、その差はO(log m)だ。
この値はm=5000万、底2として約25だ。
つまり、理論上は再帰とループで25倍の差が開きうる。
そして君は10000倍違うと言う。
残り400倍はどうやって稼ぐんだい?
ちょっと試せば分かることなんだけど、シェルスクリプトに於いて再帰の実行速度は
呼び出し深さnに対してO(n^2)くらい掛かる。
で、クイックソートの呼び出しの深さは要素数mについてO(log m)なので
O(log^2 m)の計算時間が再帰だけで掛かることになる。
つまり全体の計算量はO(m log^2 m)だ。
一方でループの場合にはO(m log m)掛かるから、その差はO(log m)だ。
この値はm=5000万、底2として約25だ。
つまり、理論上は再帰とループで25倍の差が開きうる。
そして君は10000倍違うと言う。
残り400倍はどうやって稼ぐんだい?
287デフォルトの名無しさん
2015/12/26(土) 19:21:48.42ID:6n5NtJkM288デフォルトの名無しさん
2015/12/26(土) 19:23:23.36ID:PvF8tuZ2 霊がいるのかいないのかは判りませんが
人間の目が無いものを見ることがあるのは事実です
人間の目が無いものを見ることがあるのは事実です
289デフォルトの名無しさん
2015/12/26(土) 19:23:40.75ID:EXUTS9i+ 差は開くだろうけど比も開くのか?
290デフォルトの名無しさん
2015/12/26(土) 19:23:44.50ID:oIXuKyHb >>287
5000回の再帰で130倍の差が開いた訳じゃなくて、
深さ5000の関数呼び出しで130倍の差が開いたって事を理解してる?
5000万要素のクイックソートなら最良のケースで深さ25の再帰だからね?
130倍どころか2倍にもならないからね?
5000回の再帰で130倍の差が開いた訳じゃなくて、
深さ5000の関数呼び出しで130倍の差が開いたって事を理解してる?
5000万要素のクイックソートなら最良のケースで深さ25の再帰だからね?
130倍どころか2倍にもならないからね?
291デフォルトの名無しさん
2015/12/26(土) 19:23:54.44ID:6n5NtJkM292デフォルトの名無しさん
2015/12/26(土) 19:26:45.13ID:6n5NtJkM293デフォルトの名無しさん
2015/12/26(土) 19:29:40.16ID:Igcba1qr 障害児発作を発症中
294デフォルトの名無しさん
2015/12/26(土) 19:31:02.17ID:EXUTS9i+ >>292
すまん、その例えどこまで信用していいか分からないからそういうの語るときは式でお願い
すまん、その例えどこまで信用していいか分からないからそういうの語るときは式でお願い
295デフォルトの名無しさん
2015/12/26(土) 19:31:21.63ID:6n5NtJkM >>290
ヤってみたのか?ヤったのか?ヤってから言えや!
さっさとクイックソートのコード提示しろよ!
いつまでグズグズ言ってりゃ気が済むんだ
俺はお前がクイックソートをシェルで実装するのをあとどれだけ待てばいいわけ?
ヤってみたのか?ヤったのか?ヤってから言えや!
さっさとクイックソートのコード提示しろよ!
いつまでグズグズ言ってりゃ気が済むんだ
俺はお前がクイックソートをシェルで実装するのをあとどれだけ待てばいいわけ?
296デフォルトの名無しさん
2015/12/26(土) 19:32:53.62ID:Igcba1qr >>295
再帰は数万倍遅いといったお前が実証しろよ
再帰は数万倍遅いといったお前が実証しろよ
297デフォルトの名無しさん
2015/12/26(土) 19:33:00.02ID:6n5NtJkM298デフォルトの名無しさん
2015/12/26(土) 19:34:26.18ID:Igcba1qr 1万倍高速なクイックソートはよ
299デフォルトの名無しさん
2015/12/26(土) 19:34:37.78ID:6n5NtJkM300デフォルトの名無しさん
2015/12/26(土) 19:35:10.69ID:6n5NtJkM >>298
お前がやるんだ。お前が言い出したことだろうが。
お前がやるんだ。お前が言い出したことだろうが。
301デフォルトの名無しさん
2015/12/26(土) 19:35:32.98ID:oIXuKyHb302デフォルトの名無しさん
2015/12/26(土) 19:42:36.24ID:6n5NtJkM >>301
そんな筋は通らない。実証コードが欲しいといいだしたのは
お前なのだからお前が自分で書け。言い出しっぺの法則は
プログラマを始め科学的論証に関わる人間すべてに通じる基本原則だ。
どうやればそれを確認できるかという手順も道筋も結論も示した。
自分の満足のいくものが欲しいのなら自分で行動しろ。
他人の足にしがみつくな、気持ち悪い。
そんな筋は通らない。実証コードが欲しいといいだしたのは
お前なのだからお前が自分で書け。言い出しっぺの法則は
プログラマを始め科学的論証に関わる人間すべてに通じる基本原則だ。
どうやればそれを確認できるかという手順も道筋も結論も示した。
自分の満足のいくものが欲しいのなら自分で行動しろ。
他人の足にしがみつくな、気持ち悪い。
303デフォルトの名無しさん
2015/12/26(土) 19:44:38.98ID:6n5NtJkM 1万倍の実証コードとか言い出しといて書かないってどういうことよ?
他人に頼りっきりってどういうことよ?
夢があるのなら自分で叶えろよ
親の足かじってんじゃねえぞニート野郎
他人に頼りっきりってどういうことよ?
夢があるのなら自分で叶えろよ
親の足かじってんじゃねえぞニート野郎
304デフォルトの名無しさん
2015/12/26(土) 19:50:48.20ID:oIXuKyHb >>302
IDをよく見ろ。俺は実証コードが欲しいだなんて一言も言ってない。
IDをよく見ろ。俺は実証コードが欲しいだなんて一言も言ってない。
305デフォルトの名無しさん
2015/12/26(土) 19:51:36.37ID:EXUTS9i+306デフォルトの名無しさん
2015/12/26(土) 19:51:49.58ID:Igcba1qr307デフォルトの名無しさん
2015/12/26(土) 19:54:34.25ID:Igcba1qr ID:6n5NtJkMは発狂して「再帰は数万倍遅い」発言をウヤムヤにしたい模様
でも、まだ300レス。先は長いぞ。頑張れ。
でも、まだ300レス。先は長いぞ。頑張れ。
308デフォルトの名無しさん
2015/12/26(土) 19:56:25.26ID:oIXuKyHb309デフォルトの名無しさん
2015/12/26(土) 19:57:11.33ID:6n5NtJkM >>304
言ったかどうかは問題じゃない!
お前はクイックソートで1万倍の差があるのか確認したい、
それを確認する手段としてシェルでクイックソートを実装すればわかる
ということを俺は示したんだよ。それだけわかってればいいよもう!
言ったかどうかは問題じゃない!
お前はクイックソートで1万倍の差があるのか確認したい、
それを確認する手段としてシェルでクイックソートを実装すればわかる
ということを俺は示したんだよ。それだけわかってればいいよもう!
310デフォルトの名無しさん
2015/12/26(土) 20:00:13.46ID:6n5NtJkM311デフォルトの名無しさん
2015/12/26(土) 20:02:01.94ID:oIXuKyHb >>309
いいや、そもそもそんな事は望んでない。よく読め。
俺が言いたいのは、1万倍もの差が出るなんて事は理論上ありえないって事だ。
それでも尚、実際に1万倍の差が出ると言い張るのであれば
それを実証するコードを君が示すべきだよね?
いいや、そもそもそんな事は望んでない。よく読め。
俺が言いたいのは、1万倍もの差が出るなんて事は理論上ありえないって事だ。
それでも尚、実際に1万倍の差が出ると言い張るのであれば
それを実証するコードを君が示すべきだよね?
312デフォルトの名無しさん
2015/12/26(土) 20:03:37.49ID:EXUTS9i+313デフォルトの名無しさん
2015/12/26(土) 20:05:55.80ID:6n5NtJkM314デフォルトの名無しさん
2015/12/26(土) 20:06:59.46ID:6n5NtJkM315デフォルトの名無しさん
2015/12/26(土) 20:09:01.51ID:YV12MLKo316デフォルトの名無しさん
2015/12/26(土) 20:09:33.38ID:YV12MLKo317デフォルトの名無しさん
2015/12/26(土) 20:13:31.65ID:oIXuKyHb318デフォルトの名無しさん
2015/12/26(土) 20:22:57.69ID:6n5NtJkM >>315
バカかお前は。大脳半球が全損して産まれて来たのか?
名前解決に時間がかかるとするならば、名前解決まで含めて再帰呼出しだ。
外務省はシリアへの渡航を自粛するよう日本国民に通告しているが、そんな不安な情勢の中、
「シリアが危険なんじゃないテロリストが危険なんだ」と言って
意気揚々とシリアに出かけていく頭の中お花畑野郎と同じだろうが。
お前が言ってるのはそれと全く同じこと。
シリアという地域でテロの被害に遭う確率が高いから外務省は渡航を自粛するように
必死に呼びかけているんだ。少しでも日本の国民がテロの被害に遭わないよう骨身を削って
頑張っているんだ。再帰呼出しでプログラム事故に遭う確率が高いから俺は再帰を自粛するよう
呼びかけているんだ。外交官としての俺の立場に立って再考してみろ。お前がどれだけ
愚かなことを言っているか今一度ようく考えてみることだな。
バカかお前は。大脳半球が全損して産まれて来たのか?
名前解決に時間がかかるとするならば、名前解決まで含めて再帰呼出しだ。
外務省はシリアへの渡航を自粛するよう日本国民に通告しているが、そんな不安な情勢の中、
「シリアが危険なんじゃないテロリストが危険なんだ」と言って
意気揚々とシリアに出かけていく頭の中お花畑野郎と同じだろうが。
お前が言ってるのはそれと全く同じこと。
シリアという地域でテロの被害に遭う確率が高いから外務省は渡航を自粛するように
必死に呼びかけているんだ。少しでも日本の国民がテロの被害に遭わないよう骨身を削って
頑張っているんだ。再帰呼出しでプログラム事故に遭う確率が高いから俺は再帰を自粛するよう
呼びかけているんだ。外交官としての俺の立場に立って再考してみろ。お前がどれだけ
愚かなことを言っているか今一度ようく考えてみることだな。
319デフォルトの名無しさん
2015/12/26(土) 20:24:31.77ID:EXUTS9i+ やべえ記号わかってもなお式の意味わかんねえw
320デフォルトの名無しさん
2015/12/26(土) 20:25:46.83ID:Igcba1qr 障害児は
シェル関数呼び出しはwhileより130倍遅い
と
再帰版のクイックソートは何万倍も遅い
が等価らしい
必死で再帰を否定しているバカが低知能であることのエビデンスがまた一つ明らかになってしまった
シェル関数呼び出しはwhileより130倍遅い
と
再帰版のクイックソートは何万倍も遅い
が等価らしい
必死で再帰を否定しているバカが低知能であることのエビデンスがまた一つ明らかになってしまった
321デフォルトの名無しさん
2015/12/26(土) 20:27:35.19ID:6n5NtJkM322デフォルトの名無しさん
2015/12/26(土) 20:30:11.96ID:EXUTS9i+ もしかしてだけどさ、もししてだけどさ、>>201で示されてることってシェル関数呼び出しがシェルwhileより130倍遅いことだけじゃね?
323デフォルトの名無しさん
2015/12/26(土) 20:35:37.94ID:6n5NtJkM >>322
おいおいいい加減にしろよナメクジ野郎。
自らの関数を呼び出すことを再帰と言うのだろうが。
関数の呼び出しが遅い、すなわち再帰の効率がとてもよろしくないということだ。
テロリストが民間人を殺害するのならば、テロがはびこっているシリアには行くべきじゃないということだ。
お前、後藤さんのご家族の前で後藤さんが悪いって言えるのか?後藤さんは悪いよ。
とても危険なところと知りつつシリアに言ったんだから。だけど、それをご家族の前で言う意味がないよね。
おいおいいい加減にしろよナメクジ野郎。
自らの関数を呼び出すことを再帰と言うのだろうが。
関数の呼び出しが遅い、すなわち再帰の効率がとてもよろしくないということだ。
テロリストが民間人を殺害するのならば、テロがはびこっているシリアには行くべきじゃないということだ。
お前、後藤さんのご家族の前で後藤さんが悪いって言えるのか?後藤さんは悪いよ。
とても危険なところと知りつつシリアに言ったんだから。だけど、それをご家族の前で言う意味がないよね。
324デフォルトの名無しさん
2015/12/26(土) 20:38:45.39ID:6n5NtJkM 再帰を使うっていうのはテロリストの前に自らの首を差し出すことと同義。
何があっても文句言うな。そして周囲の人間をその愚行に巻き込むな。
悲しませるな。俺はお前らが再帰を使うと悲しいよ。
何があっても文句言うな。そして周囲の人間をその愚行に巻き込むな。
悲しませるな。俺はお前らが再帰を使うと悲しいよ。
325デフォルトの名無しさん
2015/12/26(土) 21:07:17.88ID:oIXuKyHb 純粋にシェルスクリプトだけでクイックソートを組むのは骨が折れたぞっと
http://www.fastpic.jp/images.php?file=2429159438.png
ループのほうが遅いです本当にどうもありがとうございました
http://www.fastpic.jp/images.php?file=2429159438.png
ループのほうが遅いです本当にどうもありがとうございました
326デフォルトの名無しさん
2015/12/26(土) 21:10:42.27ID:oIXuKyHb コードが見たけりゃどうぞ。
https://ideone.com/b9DfXr
https://ideone.com/b9DfXr
327デフォルトの名無しさん
2015/12/26(土) 21:21:55.47ID:6n5NtJkM ____
/ \
/ ─ ─ \
/ (●) (●) \
| (__人__) |
\ `⌒´ ,/
/ ー‐ \
/ \
/ ─ ─ \
/ (●) (●) \
| (__人__) |
\ `⌒´ ,/
/ ー‐ \
328デフォルトの名無しさん
2015/12/26(土) 21:22:21.55ID:EXUTS9i+ なんだやっぱり再帰の方がいいのか
329デフォルトの名無しさん
2015/12/26(土) 21:26:26.06ID:hFLlv/LI ぐうの音も出ないなこれは
330デフォルトの名無しさん
2015/12/26(土) 21:31:21.64ID:6n5NtJkM シリアとか言わなきゃよかった
後藤さんのくだりとか意味わかんないし
後藤さんのくだりとか意味わかんないし
331デフォルトの名無しさん
2015/12/26(土) 21:40:05.38ID:hFLlv/LI フィボナッチとかはループと再帰で指数倍の差が出るんだっけ?
332デフォルトの名無しさん
2015/12/26(土) 22:10:31.84ID:oIXuKyHb メモ化しないコードだとそうなるね
333デフォルトの名無しさん
2015/12/26(土) 22:19:22.17ID:hFLlv/LI メモ化とか線形のメモリ食うじゃね?
334デフォルトの名無しさん
2015/12/26(土) 22:46:18.19ID:JxygBNoz >>333
直近2つを記憶するだけだから定数
直近2つを記憶するだけだから定数
335デフォルトの名無しさん
2015/12/26(土) 23:20:10.16ID:YV12MLKo336デフォルトの名無しさん
2015/12/26(土) 23:36:55.55ID:JxygBNoz337デフォルトの名無しさん
2015/12/26(土) 23:44:58.30ID:jxcpNE9M まだアーキ依存どころか言語依存の話してるの?
338デフォルトの名無しさん
2015/12/27(日) 00:05:08.34ID:TlhMnrM9 再帰メモ化定数メモリフィボナッチってどんなソースになるの?
339デフォルトの名無しさん
2015/12/27(日) 00:35:22.25ID:nuYFrBF7 fibonacci = fib (0,1)
fib (m1,m2) 0 = m2
fib (m1,m2) n = fib (m2, m1+m2) (n-1)
fib (m1,m2) 0 = m2
fib (m1,m2) n = fib (m2, m1+m2) (n-1)
340デフォルトの名無しさん
2015/12/27(日) 00:38:15.78ID:nuYFrBF7 タプルの代わりに木かハッシュを使えば値を全部保持する
普通のメモ化にできるがフィボナッチの計算にはもちろん不要
普通のメモ化にできるがフィボナッチの計算にはもちろん不要
341デフォルトの名無しさん
2015/12/27(日) 00:54:47.63ID:Y7IK7QLW >>325
bashを使うのであれば
if [ $i -ge $j ]; then
の代わりに
if (( $i < $j )); then と書ける。
また(( )) の中で単体の変数は$を省略できる
if (( i < j )); then
一行で書くこともできる。
(( i >= $ )) && break
bashを使うのであれば
if [ $i -ge $j ]; then
の代わりに
if (( $i < $j )); then と書ける。
また(( )) の中で単体の変数は$を省略できる
if (( i < j )); then
一行で書くこともできる。
(( i >= $ )) && break
342デフォルトの名無しさん
2015/12/27(日) 01:09:36.05ID:Y7IK7QLW stack=("${stack[@]:0:((${#stack[@]}-2))}")
これは、こう書ける。
stack=("${stack[@]::${#stack[@]}-2}")
ついでに、""をつける方が正しいのではあるが、
値にスペースが無ければ、"" は省略可能。
これは、こう書ける。
stack=("${stack[@]::${#stack[@]}-2}")
ついでに、""をつける方が正しいのではあるが、
値にスペースが無ければ、"" は省略可能。
343デフォルトの名無しさん
2015/12/27(日) 01:15:06.76ID:Y7IK7QLW p=$(( $((${array2[$i]}+${array2[$j]}))/2 ))
$((・・・)) の中では普通に () が使用可能
p=$(( (${array2[$i]} + ${array2[$j]}) / 2 ))
$((・・・)) の中では普通に () が使用可能
p=$(( (${array2[$i]} + ${array2[$j]}) / 2 ))
344デフォルトの名無しさん
2015/12/27(日) 01:21:25.37ID:Y7IK7QLW for i in `seq 1 1 1000`; do
`` は基本的に $() と同等。新しい$()の使用が推奨されている。
for i in $(seq 1 1 1000); do
また、これは以下のように書ける
for i in {1..1000}; do
`` は基本的に $() と同等。新しい$()の使用が推奨されている。
for i in $(seq 1 1 1000); do
また、これは以下のように書ける
for i in {1..1000}; do
345デフォルトの名無しさん
2015/12/27(日) 01:32:25.91ID:Y7IK7QLW lintツールとして、shellcheckコマンドがある。
qsort_rec $left $((i-1))
^-- SC2086: Double quote to prevent globbing and word splitting.
qsort_rec $((j+1)) $right
^-- SC2086: Double quote to prevent globbing and word splitting.
$leftと$rightにスペースが入ってる場合に問題になるから""をつけろと警告される。
これは冒頭で
left=$(($1))
right=$(($2))
のようにして数値であると保証してあげれば消える。
変数 pair が未使用
その他の警告は、上の指摘を修正すれば消えるはず
qsort_rec $left $((i-1))
^-- SC2086: Double quote to prevent globbing and word splitting.
qsort_rec $((j+1)) $right
^-- SC2086: Double quote to prevent globbing and word splitting.
$leftと$rightにスペースが入ってる場合に問題になるから""をつけろと警告される。
これは冒頭で
left=$(($1))
right=$(($2))
のようにして数値であると保証してあげれば消える。
変数 pair が未使用
その他の警告は、上の指摘を修正すれば消えるはず
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
さて、ここの非再帰版を見ると、どうも配列のコピーはしてないようだ。
ループ版は高速化の余地がありそうだ。
やってみるかね? うまく実装できるかな?
レスを投稿する
ニュース
- 【速報】流行語年間大賞に高市早苗首相「働いて働いて働いて働いて働いてまいります/女性首相」 [Ailuropoda melanoleuca★]
- 【おこめ】ベトナムから密輸のコメを「国産」と偽り販売容疑、ベトナム人ら2人追送検…300トン売って1億3000万円稼いだか 大阪 [ぐれ★]
- モーニングショーで女性弁護士、「世界中の国を見渡しても日本ほど中国ともめている国は今はどこもない」「挑発しちゃっている状況」 [muffin★]
- 高市首相「いいから黙って全部オレに投資しろ」“進撃の巨人”のセリフで対日投資呼びかけ [おっさん友の会★]
- 【流行語大賞】2025 T&D保険グループ新語・流行語大賞、高市早苗首相の「働いて働いて働いて働いて働いて」が年間大賞! [煮卵★]
- 【速報】長期金利、一時1.850%に上昇 ★2 [蚤の市★]
- 【悲報】タイ🇹🇭、ガチで終わる、出生率が遂に0.9を割り込み日本人以下の出生率へ [339035499]
- 日本語「うん(そうだよ)ううん(ちがうよ)」👈これ欠陥すぎない? [794961135]
- たしかにネトウヨの巨大化は把握してたけど、まさか2025年にここまで一気に気持ち悪い国になると思ってた? [452836546]
- 高市早苗ちゃん。 流行語大賞をゲット [485983549]
- 青山繁晴環境副大臣「南鳥島のレアアースは、中国産の約20倍の純度がある」 [834922174]
- 今の竹原慎二に勝てる?
