[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/03 08:19 / Filesize : 282 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

データ構造,アルゴリズム,デザインパターン総合スレ 3



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/06/19(日) 14:47:29.63 ID:5KvSKdL/.net]
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

データ構造,アルゴリズム,デザインパターン総合スレ 2
echo.2ch.net/test/read.cgi/tech/1362301811/

【関連スレ】
3Dアルゴリズム全般
toro.2ch.net/test/read.cgi/tech/1164171086/
<集大成>アルゴリズム大辞典
toro.2ch.net/test/read.cgi/tech/1086272325/
アルゴリズム総合スレ in ム板
toro.2ch.net/test/read.cgi/tech/1217773415/

アルゴリズムとデータ構造 - Kaneko Lab.
ttp://www.kkaneko.com/adp/algo/index.html
アルゴリズムとデータ構造 - ソースコード探険隊
ttp://www.codereading.com/algo_and_ds/
各種アルゴリズムの C++ による実装 - Spaghetti Source
ttp://www.prefield.com/algorithm/
アルゴリズムとデータ構造 - プログラミングスレまとめ in VIP
ttp://vipprog.net/wiki/algo_and_data_const.html

623 名前:デフォルトの名無しさん [2017/08/11(金) 23:53:53.43 ID:VT8Bdzbq.net]
>>604
いまどきデザインパターン?

624 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 05:31:45.11 ID:mqOU9Lu0.net]
オートマ限定免許だな

625 名前:デフォルトの名無しさん [2017/08/12(土) 11:21:25.45 ID:2oFLTBe8.net]
ちょww俺煽られすぎwww
でも、モノは完成するようになったぜ。
要求、仕様から動作原理すっ飛ばして、命名規則だけで
モノが完成するから結構職場では役立ってるぜ。
他のプログラマはフレームワークの使い方がやっとだし
一人だけ技術力があるゴリラ野郎は人望がなくて自分の技術力が
人に盗まれるのを極力恐れているから基本的に部下に意地悪して
教えてあげれば済むことも何も教えてくれない。
社長はどんどん仕事取ってきて、だいたい半数のプロジェクトが進まずに凍結状態に
なり、ブチ切れた客をなんとかかわし続ける日々だ。
そんな状況で俺の場合動くモノを比較的完成する方だからゴリラには結構
気に入られて給料は上がったよ。会社がいつまで持つかは分からんが。

626 名前:デフォルトの名無しさん [2017/08/12(土) 11:28:43.73 ID:WyVA8Sgg.net]
このスレは初心者スレだったな。

627 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:55:15.14 ID:NKT9PAHK.net]
>>614
どこを縦読み?

628 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 14:08:41.06 ID:D9kn9WR2.net]
戦隊もので言えばブラックじゃないですか!

629 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 03:15:32.30 ID:D43WgHq0.net]
状態遷移のように汎用的に使える技術って他にも何かありますか?

630 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 09:04:39.07 ID:s82kToZ5.net]
ストラテジーが最強

631 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 15:05:22.49 ID:D43WgHq0.net]
デザインパターンですか?汎用性ありますかね



632 名前:デフォルトの名無しさん [2017/09 ]
[ここ壊れてます]

633 名前:/03(日) 14:32:35.28 ID:8cpPGlhh.net mailto: >>620
概念と用語だけマスターすれば良い。

あとは実務に合わせて使えるところは利用するし、合わない部分は気にしない。
[]
[ここ壊れてます]

634 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 15:06:35.15 ID:+qi04Kz7.net]
>>621
なるほど
ありがとうございます

635 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 17:00:04.12 ID:VeRuY65E.net]
>>622
>>621みたいに、わかったような口を叩くけど実際にやらせてみたら手が動かないカスになったらダメ
自分でどんどん適用してみて、メリットもデメリットも自分の体験として語れるようになった方がいい

636 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 21:20:14.64 ID:+qi04Kz7.net]
>>623
なるほど
ありがとうございます

637 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 22:05:38.94 ID:+qi04Kz7.net]
https://ideone.com/mWu6mC
写経してみたけどどんな時に使えるのかいまいちわかりませんでした・・・

638 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 23:18:58.10 ID:SkKZ7pGs.net]
正解です。

639 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 23:07:19.92 ID:NGSv2EGo.net]
>>625
さらっと読んで写経したぐらいで理解できると思わない方がいい
そのうちわかってくるから、とにかく手を動かしコードを動かす経験を積み重ね続けるんだ

640 名前:デフォルトの名無しさん [2017/09/14(木) 20:19:04.82 ID:VdbIWmI2.net]
Introduction to Algorithms 3rd Editionを読むスレ [無断転載禁止]©2ch.net
mevius.2ch.net/test/read.cgi/tech/1505387171/

641 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 07:54:04.88 ID:gy747Xnp.net]
>>618
>汎用的に使える技術
良い質問だなこれ
遅レスだけど考えたい

地味だけど基礎的なデータ構造が
一番汎用的なんじゃないか?
連結リストとか二分木とかそういうの



642 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 11:43:47.38 ID:NePdqYQx.net]
隣接行列とか

643 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 07:20:33.50 ID:DwhIrlJj.net]
>>629
それは言えてるかもしれない
汎用的=基礎的

644 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 09:24:14.80 ID:pDAu8pHG.net]
consセル?

645 名前:デフォルトの名無しさん [2017/09/17(日) 17:09:50.02 ID:7slIJ8sy.net]
Kleinberg & Tardosの本に以下のような内容の記述があります。
でも、 n > 1 のとき、 H が universal になることは決してないですよね。
u = v のとき、常に、 h(u) = h(v) なので、問題の確率は 1 ですから。



--------------------------------------------------
U を要素数の非常に多い有限集合とする。

H を U から {0, 1, ..., n-1} へのすべての写像の集合のある部分集合とする。

u, v ∈ U に対して、ランダムに選んだ h ∈ H が h(u) = h(v) を満たす確率はたかだか 1/n であるとき、
H は universal であるという。

646 名前:デフォルトの名無しさん [2017/09/17(日) 17:30:37.45 ID:7slIJ8sy.net]
S を #S ≦ n であるような任意の U の部分集合とする。
u を U の任意の要素とする。
X を ランダムな選択 h ∈ H に対して、値 #{s ∈ S | h(s) = h(u)} をとるようなランダム変数とする。

このとき、

E[X] ≦ 1

である。

証明:

s ∈ S に対し、
h(s) = h(u) であるならば、 1
h(s) ≠ h(u) であるならば、 0
となるようなランダム変数を X_s とする。

仮定により、 H は universal であるから、
E[X_s] = Pr[Xs = 1] ≦ 1/n

X = Σ X_s だから期待値の線形性により、

E[X] = ΣE[X_s] ≦ #S * (1/n) ≦ 1

647 名前:デフォルトの名無しさん [2017/09/17(日) 17:32:48.13 ID:7slIJ8sy.net]
この証明は、

u ∈ S であるとき、破綻しますよね。

648 名前:デフォルトの名無しさん [2017/09/17(日) 17:37:20.77 ID:7slIJ8sy.net]
Kleinbergはネヴァンリンナ賞を受賞した人だそうですが、大丈夫な人なのでしょうか?

649 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 18:52:52.16 ID:qJGXQCnw.net]
ID:7slIJ8syは馬鹿アスペの松坂君

650 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 23:18:40.22 ID:2kxiy1Rb.net]
> u = v のとき、常に、

また勝手におれ条件を付け加えてる

651 名前:ネ。 []
[ここ壊れてます]



652 名前:デフォルトの名無しさん [2017/10/06(金) 23:28:50.73 ID:5xvc7oH2.net]
T(n) = Ω(g(n))



T(n) ≧ c*g(n) となる n が無限に多く存在するような定数 c が存在する。


という定義がありますが、なぜ、ほとんどすべての n ではないのでしょうか?

653 名前:デフォルトの名無しさん mailto:sage [2017/10/07(土) 08:08:49.02 ID:oYr2GY5l.net]
「B木」の「B」の由来って謎なのかよ。

654 名前:デフォルトの名無しさん [2017/10/07(土) 08:55:33.93 ID:uFxBTiFA.net]
>>639

Knuthは、

T(n) = Ω(g(n))



ほとんどすべての n に対して、 T(n) ≧ c*g(n) が成り立つ。

と定義するのがいいと書いていますが。

655 名前:デフォルトの名無しさん [2017/10/07(土) 10:32:49.92 ID:yM1og+Z2.net]
Binary(嘘)
Balance(へ?)

656 名前:デフォルトの名無しさん [2017/10/07(土) 14:37:48.61 ID:a6QcCG6E.net]
Boeing

657 名前:デフォルトの名無しさん mailto:sage [2017/10/07(土) 19:13:27.20 ID:htJPCTEu.net]
バランスだろ

658 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 09:18:29.57 ID:IlB/Yh1D.net]
A木があるだから、その次ってことでB木だろ

659 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 10:08:31.18 ID:S5+imH6k.net]
C木、D木、・・・、Z木

660 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 11:43:33.94 ID:I0zVkG9n.net]
乃木、高木、猪木

661 名前:デフォルトの名無しさん [2017/10/08(日) 12:52:27.73 ID:u+rv4D7i.net]
Θ(f(n)) を使うべきところで、 O(f(n)) を使っているという批判をする人がいますが、
具体的にはどういう状況でしょうか?



662 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 19:44:09.13 ID:bBgzVIcc.net]
シータオメガなんて数学以外で使ったことない

663 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 20:36:16.81 ID:IlB/Yh1D.net]
FFでよく使う

664 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 20:44:05.42 ID:97xX0KxU.net]
AAでまれに使う

665 名前:デフォルトの名無しさん [2017/10/09(月) 18:34:06.40 ID:vbK8I5kP.net]
浅野孝夫著『アルゴリズムの基礎とデータ構造』を読んでいます。

「上の挿入ソートの例のように、基本演算回数(比較回数)は入力サイズ n にのみ
依存するとは言えない。そこで、入力サイズ n の入力のうちでアルゴリズムが最も
多くの基本演算を必要とする入力を考えて、それに対する基本演算回数を、本書ではん、
サイズ n の入力に対するアルゴリズムの計算量(time complexity of an algorithm)と
呼ぶ。すなわち、最悪の場合を想定してアルゴリズムの計算量を定めていることになる。
このようにして定められたアルゴリズムの計算量 T はもちろん n にのみ依存する関数で
あるので T(n) と書ける。上の挿入ソートの例では T(n) = n*(n-1)/2 である。」

と書いてあります。

その後、マージソートのところには、

「マージソートの計算量は T(n) = O(n*log(n)) である」

と書いてあります。

T(n) は最悪の場合の計算量ですから、

T(n) = Θ(n*log(n)) が正しいのではないでしょうか?

ちなみに、浅野さんは、この本の最初のほうで O, Ω, Θ を定義しています。

666 名前:デフォルトの名無しさん [2017/10/09(月) 18:35:57.26 ID:vbK8I5kP.net]
もちろん、 f(n) ∈ Θ(n*log(n)) ⇒ f(n) ∈ O(n*log(n)) ですが。

667 名前:デフォルトの名無しさん [2017/10/09(月) 18:51:59.25 ID:vbK8I5kP.net]
浅野さんは、挿入ソートの計算量を

O(n^2)

と書いています。

これも

Θ(n^2)

と書くべきですよね。

>>652

に引用したように、

「上の挿入ソートの例では T(n) = n*(n-1)/2」

ですから。

668 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 20:59:07.08 ID:kKYMaHZG.net]
馬鹿アスペの連投

669 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 21:39:35.32 ID:HQb3QT54.net]
ID:vbK8I5kP くらいの基地外になれば、100連投だって容易い。

670 名前:デフォルトの名無しさん [2017/10/15(日) 10:39:26.70 ID:Cy7I/MU1.net]
ソートの決定木についてですが、葉の数が「少なくとも」 n! 個あると説明されることが多いですが、
ちょうど n! 個と書かない理由は何ですか?

671 名前:デフォルトの名無しさん [2017/10/15(日) 10:46:56.72 ID:Cy7I/MU1.net]
既に順序が決定されているにもかかわらず、さらに無駄な比較をするようなプログラムの
ことを想定しているのでしょうか?



672 名前:デフォルトの名無しさん [2017/10/15(日) 10:48:49.83 ID:Cy7I/MU1.net]
そうだとすると、決定木のある部分木で、その葉がすべて同じ順序に対応するようなものが
存在することになります。

673 名前:デフォルトの名無しさん [2017/10/15(日) 10:49:46.78 ID:Cy7I/MU1.net]
ソートの決定木について厳密に論じている本はありますか?

674 名前:デフォルトの名無しさん [2017/10/15(日) 11:09:38.82 ID:Cy7I/MU1.net]
This result ser

675 名前:ves as a guide for us to know, when designing a sorting algorithm, how
well we can expect to do. For example, without such a result, one might set out to try
to design a compare-based sorting algorithm that uses half as many compares as does
mergesort, in the worst case. The lower bound in Proposition I says that such an effort
is futile?no such algorithm exists
[]
[ここ壊れてます]

676 名前:デフォルトの名無しさん [2017/10/15(日) 11:10:24.51 ID:Cy7I/MU1.net]
>>661

この説明は間違っていますよね?

677 名前:デフォルトの名無しさん [2017/10/15(日) 11:13:29.73 ID:Cy7I/MU1.net]
最悪時にマージソートの半分の比較しか必要でないソートのアルゴリズムが存在しないこと
は証明できるのでしょうか?

678 名前:デフォルトの名無しさん [2017/10/15(日) 11:54:45.59 ID:Cy7I/MU1.net]
あ、勘違いしました。

>>661

合っていますね。明らかに。

679 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 13:42:57.88 ID:IuOQVSqs.net]
馬鹿アスペの連投

680 名前:デフォルトの名無しさん [2017/10/21(土) 16:32:10.02 ID:edOw+XtB.net]
浅野孝夫著『アルゴリズムの基礎とデータ構造』を読んでいます。

以下の問題に対する浅野さんの解答が↓です。

「このとき根は葉ではないので左の子 v および右の子 w をもつ。」などと書いていますが、
深さ d > 0 の二分木で左の子もしくは右の子を持たないものも当然存在します。
おかしな解答ですね。

二分木において、深さ d までの葉の総数は 2^d 以下であることを示せ。

d に関する帰納法で証明できる。 d = 0 のときは根は葉になるので明らかに成立する。 d > 0 未満で
成立すると仮定し d のときを考える。このとき根は葉ではないので左の子 v および右の子 w をもつ。
v を根とする部分木の深さ d - 1 までの葉が元々の二分木の深さ d までの葉になるがそのような葉の
総数は帰納法の仮定より、 2^(d-1) 以下である。同様に w を根とする部分木の深さ d - 1 までの葉の
総数も 2^(d-1) 以下であり、したがって、元々の二分木の深さ d までの葉の総数は 2^d 以下であることが
言えた。

この問題文自体もおかしいです。

この問題の結果が本文中で使われていてそこを読めばわかるのですが、問題文の意味は、
「深さ d の二分木の葉の総数は 2^d 以下であることを示せ」です。以下のような解答が模範解答ですね。

深さ d の二分木でその葉の総数が 2^d + 1 個以上であるような二分木が存在すると仮定する。
そのような二分木のうち葉の総数が最多であるような二分木を T とする。
すべての葉の深さが d であるような二分木の葉の総数は明らかに 2^d 個である。
よって T の葉にはその深さが d 未満であるような葉が存在する。この葉に子ノードを持たせれば
深さ d の二分木で葉の総数が T の葉の総数よりも多い二分木を作ることができるがこれは矛盾である。
よって、深さ d の二分木の葉の総数は 2^d 個以下である。

681 名前:デフォルトの名無しさん mailto:sage [2017/10/21(土) 16:38:07.00 ID:FeyeuQ+N.net]
>すべての葉の深さが d であるような二分木の葉の総数は明らかに 2^d 個である。

これ出しちゃったらそれで証明おしまいのような気がするが。



682 名前:デフォルトの名無しさん [2017/10/21(土) 16:43:21.60 ID:edOw+XtB.net]
あ、問題文はおかしくないようです。

二分木において、深さ d までの葉の総数は 2^d 以下であることを示せ。

という問題でOKです。

683 名前:デフォルトの名無しさん [2017/10/21(土) 16:51:58.42 ID:edOw+XtB.net]
二分木において、深さ d までの葉の総数が 2^d + 1 個以上である二分木が存在すると仮定する。
深さ d までの葉の総数が最多である二分木を T とする。

このとき、 T には深さ d 未満の葉が少なくとも一つ存在する。もしそうでないと仮定すると、 T の
すべての葉の深さは d 以上であるから、明らかに深さ d までの葉の総数は 2^d 個以下に
なってしまうが、これは矛盾である。

T の深さ d 未満の葉に子ノードを持たせれば、深さ d までの葉の総数が T よりも多い二分木が存在する
ことになってしまい矛盾が発生する。

よって、において、深さ d までの葉の総数は 2^d 個以下である。

684 名前:デフォルトの名無しさん mailto:sage [2017/10/21(土) 18:35:04.55 ID:JlJoedU7.net]
馬鹿アスペの連投

685 名前:デフォルトの名無しさん mailto:sage [2017/10/21(土) 18:51:41.34 ID:FeyeuQ+N.net]
二分木じゃなくて三分木なら2^d以下ではないわけだけど、>>669の証明を二分木から三分木に変えても
論理展開に違いが出ないから明らかにおかしいだろう。

686 名前:デフォルトの名無しさん [2017/10/21(土) 19:21:45.75 ID:edOw+XtB.net]
三分木では、

「もしそうでないと仮定すると、 T のすべての葉の深さは d 以上であるから、明らかに深さ d までの葉の総数は 2^d 個以下に
なってしまう」

が成り立ちません。

687 名前:デフォルトの名無しさん [2017/10/21(土) 19:24:01.05 ID:edOw+XtB.net]
三分木の場合の証明は以下のようになりますね。


三分木において、深さ d までの葉の総数が 3^d + 1 個以上である三分木が存在すると仮定する。
深さ d までの葉の総数が最多である三分木を T とする。

このとき、 T には深さ d 未満の葉が少なくとも一つ存在する。もしそうでないと仮定すると、 T の
すべての葉の深さは d 以上であるから、明らかに深さ d までの葉の総数は 3^d 個以下に
なってしまうが、これは矛盾である。

T の深さ d 未満の葉に子ノードを持たせれば、深さ d までの葉の総数が T よりも多い三分木が存在する
ことになってしまい矛盾が発生する。

よって、において、深さ d までの葉の総数は 3^d 個以下である。

688 名前:デフォルトの名無しさん mailto:sage [2017/10/21(土) 19:33:58.53 ID:FeyeuQ+N.net]
>が成り立ちません。

成り立たないことがわかっているなら証明いらんだろうw
逆に言うと、それが成り立たないことが証明されていない。

>>673
3^dってどこから出てきたわけ?

689 名前:名無しさん@そうだ選挙に行こう! Go to vote! [2017/10/22(日) 15:43:58.38 ID:PJF1xk0l.net]
2分ヒープは完全二分木を使ったデータ構造ですが。

この完全二分木のことを半順序のついた木というのはなぜでしょうか?

690 名前:デフォルトの名無しさん [2017/10/23(月) 05:47:03.23 ID:iFI38Dlw.net]
%%%%1000%%%%

000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end

691 名前:デフォルトの名無しさん [2017/10/24(火) 00:30:44.81 ID:jO+jDbIG.net]
バッチ処理, ジョブ制御に有効なデザインパターンって何?



692 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 09:45:11.29 ID:JWUKPJot.net]
バッジパターン

693 名前:デフォルトの名無しさん [2017/11/05(日) 08:35:59.08 ID:0dKYGWWl.net]
ヤフーブログの https://blogs.yahoo.co.jp/kamyu_2010 にデザパタ解説を発見した。

694 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:49:09.49 ID:kyKiHR5g.net]
>>675
再帰的に、親は両方の子以下の数値をもつ。
左右の子の大小関係は考慮しない

ここでは説明しやすいように、配列の[0]は使わない。
[1]から始めると計算が楽。
親1, 左右の子は2, 3で、法則は、親n, 子2n, 2n+1

もし[0]から始めると、
親0, 左右の子は1, 2で、親1, 左右の子は3, 4で、
法則は、親n, 子2n+1, 2n+2、となり複雑

親[1] → 子[2, 3]
[1]3, [2]10, [3]30

[2] → [4, 5]
[4]100, [5]20

[3] → [6, 7]
[6]70, [7]200

JavaScript で、漏れが作った、2分ヒープ
jsdo.it/michihito/bGH5

695 名前:デフォルトの名無しさん [2017/11/05(日) 13:58:55.54 ID:lcYDevpf.net]
で、半順序はどこに登場するんですか?

696 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 19:58:31.80 ID:kyKiHR5g.net]
>左右の子の大小関係は考慮しない

697 名前:デフォルトの名無しさん [2017/11/06(月) 23:54:10.39 ID:Xbh99dPN.net]
シングルトンがいけないとかたまに聞くんだけど
シングルトンなしでどうやるのか誰か教えて

シングルトン使わないで済むならシングルトン辞めることには吝かではないんだが
どうやるのかが分からない

HolderとかRepository作るとどうしてもシングルトンになっちゃう
誰か助けて

698 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 08:06:23.75 ID:FkpvBRAi.net]
シングルトンの何がいけないのかをわかっていれば別に使ってもいいんじゃないか?
と思うんだが

699 名前:デフォルトの名無しさん [2017/11/08(水) 03:27:16.05 ID:pi2d/ZnM.net]
staticでおk

700 名前:デフォルトの名無しさん [2017/11/10(金) 09:56:08.91 ID:O+5a47Rv.net]
内部ノード数 n の 2色木の Black Height を h であらわすと以下の不等式が成り立つ。

2^(h-1) - 1 ≦ n ≦ 2^(2*h-1) - 1

よって、 h = O(log(n))


とある本に書いてあります。

これっておかしいですよね?

h は n の関数ではありません。内部ノード数から2色木の Black Height は一意的にはきまらないからです。

もちろん、 O(log(n)) の左辺には n の関数が来るきまりです。

ですので、 h = O(log(n)) と書くのはおかしいのではないでしょうか?

701 名前:デフォルトの名無しさん [2017/11/10(金) 12:02:03.17 ID:WtBM3Wp4.net]
メッセージキューイングって
Commandパターンで実装するで合ってる?



702 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:56:18.04 ID:5J9eZD00.net]
>>686
>>2^(h-1) - 1 ≦ n ≦ 2^(2*h-1) - 1 ・・・(1)
>>よって、 h = O(log(n)) ・・・(2)

一見すると正しそうに見えるけど、どっちがどうおかしいと?

703 名前:デフォルトの名無しさん [2017/11/12(日) 19:28:20.81 ID:2NYvmr0h.net]
h が n の関数ではないにもかかわらず

h ∈ O(log(n))

と書いているのがナンセンスです。

704 名前:デフォルトの名無しさん [2017/11/12(日) 19:46:50.82 ID:wWQbf7ET.net]
>>689
nとhの関係は(1)で示されているんじゃね?
不等式を変形すれば良いのでは?

705 名前:デフォルトの名無しさん [2017/11/12(日) 20:23:32.92 ID:2NYvmr0h.net]
n から h は一意的に決まりません。

よって、

h は n の関数ではありません。

706 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 21:38:49.52 ID:wkhRVmHI.net]
>>691
(1)より一意に決まらなくても計算量は同じでしょ?

707 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 18:01:47.14 ID:O+WFbO9G.net]
>もちろん、 O(log(n)) の左辺には n の関数が来るきまりです。
ここの時点でおかしい

708 名前:デフォルトの名無しさん [2017/11/13(月) 18:49:03.12 ID:TURt7nwr.net]
>>693

何がおかしいのでしょうか?

709 名前:デフォルトの名無しさん [2017/11/14(火) 16:22:50.14 ID:kwaLWx7P.net]
抽象メソッドしか定義されない型のことを
「インタフェース」ってネーミングセンスは頭おかしいんじゃないの?
インタフェースって言ったら通常「UI」とか外部の窓口になったり、
外部デバイスとの接続ポイントになるコネクタのことを言うじゃん。
オブジェクトの型のことを「インタフェース」なんて言ったら誤解を招くだろ。

710 名前:デフォルトの名無しさん [2017/11/14(火) 16:49:12.95 ID:dN7NjwRx.net]
>>695
interfaceには境界面とか接点の意味がある

クラスが持つ他との接点の意味で合ってる

711 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 18:46:26.43 ID:9XknVuf7.net]
外部の窓口になったり、外部デバイスとの接続ポイントになるのが抽象メソッドだから。
つまりそれしか定義されてないということは、インターフェースそのものと言っていいだろう。



712 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 20:12:16.44 ID:R1CE9PkA.net]
デザパタスキル、エンベッデイドスキルなんやかや言うが、みんな大事な部分は閃きなんだがなぁ・・・
作曲と同じ。 閃き・・・ とどのつまり、神が書かせているという事。
そこを理解できない限り、そのプログラマーは聖職では無い。

713 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 13:14:29.24 ID:qga1lTtf.net]
神などと妄想するようになったら科学の全否定の始まり。無知が故の過ち。

714 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 18:23:02.44 ID:SgBQyEr/.net]
神「共通化せよ――」
僕「はい」
神「ごめん間違えた――」
僕「うわぁぁああぁああ!!!」

715 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 18:29:25.85 ID:ebkB7QGA.net]
神とは強いて言えば可能性

716 名前:デフォルトの名無しさん [2017/11/19(日) 23:12:44.83 ID:opsy6abA.net]
以下で定義される写像 A : N × N → N を Ackermann 関数という。

A(1, j) = 2^j for j = 1, 2, 3, …
A(i, 1) = A(i-1, 2) for i = 2, 3, 4, …
A(i, j) = A(i-1, A(i, j-1)) for i = 2, 3, 4, … for j = 2, 3, 4, …

α(m, n) = min {i ≧ 1 | A(i, floor(m/n)) > log_2(n)}

で定義される写像 α : {(m, n) | m, n ∈ N, m ≧ n} → N を Ackermann 逆関数という。



なぜ、この α を Ackermann 関数の逆関数と呼ぶのでしょうか?

717 名前:デフォルトの名無しさん [2017/11/20(月) 20:37:12.88 ID:Sdx1OtwZ.net]
courseraのセジウィックとウエインの講義を受講しています。

プログラミングの課題のチェックが超厳しいですね。

'if' is not followed by whitespace.

「if」の後ろにスペースを入れないといけないなんて初めて聞きました。
そんなことまで強制されたらたまりませんね。

718 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:40:14.03 ID:uYx1UAMq.net]
大概のプロジェクトで採用されてるスタイルだから従っとけ
スペース軽視するやつ多すぎ

719 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:43:51.90 ID:Y8ntE/6M.net]
>>703
K&R2 に従っておけば文句が来ることはない
if ()
while ()
for ()

720 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:54:20.19 ID:XqE+Nf2F.net]
フオーマッタの設定の指定とか無いの?

721 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 23:10:14.23 ID:ohy70QIE.net]
一般的なコーディングルールには従ったほうがよい
最近の言語環境では放っておいてもツッコミ入れてくれたりもするが



722 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 07:03:23.42 ID:G6ETZwfO.net]
業務システムでオブジェクト指向不要って意見はどう思いますか
大抵スパゲティークエリになってる印象ですが

723 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 07:13:27.16 ID:OOffmQFA.net]
途中からオブジェクト指向混ぜられても困るだろ
実行効率や記述効率は悪くたって別に構わないのだから(ここわかってない人多し)、プロジェクトに来た全員が理解利用できる書き方が最優先

無論技術的にも業務的にもうんこだが、そこを追求すべき場所ではないところで勝手に追及を始めるのはそれこそうんこのやること
ゼロからオーバーホールを提案してもよいが最後まで自己責任で看取れ

724 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 17:43:16.86 ID:M9cr/U+S.net]
>>709
サブクエリ五重の塔を見て上長にキツいと報告したら世界にはバベルの塔がいっぱいあるのに根をあげるなと叱られました

せめて何をしたいのかドキュメント欲しいと言ったらコードが全てだとも言われました

IT業界の厳しさを知りました

725 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 18:14:34.60 ID:3zrw9He/.net]
>>710
マ板にどうぞ

726 名前:デフォルトの名無しさん [2017/11/22(水) 09:23:31.55 ID:milfaijK.net]
courseraのセジウィックとウエインの講義の最初の課題であるパーコレーションだけど
backwashを防ぐにはどうすればいいんですか?

727 名前:デフォルトの名無しさん [2017/11/22(水) 10:42:20.23 ID:milfaijK.net]
あ、分かりました。

virtual topにはつなぐがvirtual bottomにはつながないUF
virtual topにもvirtual bottomにもつなぐUF

を使えばいいんですね。

728 名前:デフォルトの名無しさん [2017/11/22(水) 10:51:20.09 ID:milfaijK.net]
成績が100点満点中97点になりました。

729 名前:デフォルトの名無しさん [2017/11/22(水) 10:52:40.54 ID:milfaijK.net]
成績が100点満点中98点になりました。

730 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 11:48:25.03 ID:vqOaIl/E.net]
今日のNG ID:milfaijK

731 名前:デフォルトの名無しさん [2017/11/22(水) 15:34:31.81 ID:milfaijK.net]
ついに、成績が100点満点中100点になりました。

https://imgur.com/apwKZnf.jpg



732 名前:デフォルトの名無しさん [2017/11/22(水) 15:35:42.67 ID:milfaijK.net]
快挙ですね。

733 名前:デフォルトの名無しさん [2017/11/23(木) 12:04:48.38 ID:Le5wB72/.net]
デザインパターンで規定されるいろいろなクラスがあるけど
これらのクラスはそれぞれレイヤー化アーキテクチャのどこに
属すのか知りたい。
たとえばStateパターンがあった場合に、
・<<interface>>State
・ConcreteState x n
・Context
があったとき、

これらは、クラスを配置する場所的に
・プレゼンテーション層(UI層)
・App層
・サービス層
・ビジネスロジック層
・パーシステンス層
のどこの層として配置すればいいのか

734 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 12:18:16.35 ID:DeXlBicR.net]
> デザインパターンで規定されるいろいろなクラスがあるけど
> これらのクラスはそれぞれレイヤー化アーキテクチャのどこに
> 属すのか知りたい。

デザパタはレイヤ化アーキテクチャに属すものだという考え方が謎なんだけど

735 名前:デフォルトの名無しさん [2017/11/23(木) 12:18:26.01 ID:fJlhhdGs.net]
>>719
どの層にも配置していいんじゃね

その層の機能とかを実現するのにそのデザインパターンが必要なら使えばいいのではないか

レイヤーとデザインパターンは独立に組み合わせ可能と思う

736 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 13:43:59.34 ID:veVPgurQ.net]
>>719
これでも読めよ

J2EEデザインパターン
https://www.amazon.co.jp/dp/4873111781/

737 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 15:28:17.03 ID:unmm6CwQ.net]
java用語発表されてもなー

738 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 07:16:56.92 ID:DtvpiAcr.net]
デザパタを適用したクラスがどのレイヤにあっても構わんのじゃ無いか
定石があってもフレームワークごと違うから説明無理だと思う

739 名前:デフォルトの名無しさん [2017/11/28(火) 09:02:37.93 ID:VA+yl+li.net]
1以上1000以下の整数からなる集合の部分集合で、
その任意の異なる2元 x, y をとったとき、
「x は y を割り切らず、 y も x を割り切らない」
という性質をもつものを考える。

そのような部分集合の中で元の数が最大になるような
集合の元の数を求めよ。

740 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 09:32:48.27 ID:EZT/19IX.net]
めっちゃ勘だが、334から666と、667以上の奇数でどうだろうか

741 名前:デフォルトの名無しさん [2017/11/28(火) 11:34:19.17 ID:VA+yl+li.net]
答えは500以下です。



1 から 1000 までの整数を 2^n * (2*m + 1) の形で表す。

2*m + 1 の部分は、

2*0 + 1, 2*1 + 1, …, 2*499 + 1

の500個のパターンのいずれかに一致する。

よって、1 から 1000 までの整数の中から501個以上の異なる整数を選び出せば、
その中には、かならず、

2^n1 * (2*m + 1), 2^n2 * (2*m + 1)

という二つの整数が含まれる。

この二つの整数は一方が他方を割り切る。



742 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 12:05:52.85 ID:TRWRICOE.net]
どっかから問題と回答を拾ってきてドヤ顔してる人ってなんなの?

743 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:07:31.97 ID:g+QmVGb1.net]
>>727
何をしているのかちゃんと理解したいのですが、
m や n は実数ですか?

744 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 15:55:11.56 ID:8wOk3LC1.net]
>>729
>>727が言葉が足りてないのは確かだが、もうちょっと数学のセンス磨こうぜ

745 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 17:12:15.85 ID:g+QmVGb1.net]
>>730
n=0 にして、m=0, 1, 2 ...
n=1 にして、m=0, 1, 2 ...
...
とやって確かめたら、なんとなく自然数を網羅できそうなのは確認できました。

ただ、本当に網羅できるのか証明はまだできてません。

これ以上はスレチも甚だしいので、独りで頑張ってみます。

流れぶった切ってすみません。
>>725 さん、どうぞ続けてください。

746 名前:デフォルトの名無しさん [2017/11/28(火) 17:15:22.43 ID:VA+yl+li.net]
>>729

整数を 2 で割れるだけ割ると 2^n * (2*m + 1) の形になります。

例:

120 = 2^3 * 15 = 2^3 * (2*7 + 1)

この場合、 n = 3, m = 7 です。

747 名前:デフォルトの名無しさん [2017/11/28(火) 17:16:45.10 ID:VA+yl+li.net]
2^n * 奇数

です。

748 名前:デフォルトの名無しさん [2017/11/28(火) 17:26:27.93 ID:VA+yl+li.net]
1 = 2^0 * (2*0 + 1)
2 = 2^1 * (2*0 + 1)
3 = 2^0 * (2*1 + 1)



999 = 2^0 * (2*499 + 1)
1000 = 2^3 * (2*62 + 1)

となります。

1, 2, …, 1000 をすべて

2^n * (2*m + 1)

という形に表します。

m は 0 から 499 までの 500 個の整数のどれかになります。

ですので、 1, 2, …, 1000 の中から 501 個以上の整数を取ってきて、それらすべてを

2^n * (2*m + 1)

という形に表すと、

2*m + 1

の部分が同じになるような異なる2つの整数があります。
2*m + 1 の部分は同じで、 2^n の部分が異なります。それら2つの整数は
2^n1 * (2*m + 1), 2^n2 * (2*m + 1) のようにあらわされます。 n1 < n2 と仮定して一般性を失いません。
2^n2 * (2*m + 1) は 2^n1 * (2*m + 1) で割り切れます。 2^n2 * (2*m + 1) ÷ 2^n1 * (2*m + 1) = 2^(n2-n1)

749 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 17:58:11.47 ID:8wOk3LC1.net]
500以下なのはわかった。500ある例>>726も見つかった。
で、一般に1からNのとき、何個になるのよ?

750 名前:デフォルトの名無しさん [2017/11/28(火) 19:31:53.85 ID:VA+yl+li.net]
>>726

{501, 502, …, 1000} でもOKですね。

751 名前:デフォルトの名無しさん [2017/11/28(火) 19:37:23.97 ID:VA+yl+li.net]
>>735

ceiling(n/2)

ではないでしょうか?



752 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:54:30.86 ID:8wOk3LC1.net]
あんまり面白くない結果だね

753 名前:デフォルトの名無しさん [2017/11/30(木) 18:59:28.31 ID:A1E/mSxW.net]
セジウィックとウエインのcourseraのオンライン講義を聴講しています。

java.util.List
java.util.Stack
java.util.Queue

は最低だそうですね。

Best practices: Use our implementations of Stack, Queue, and Bag.

だそうです。

754 名前:デフォルトの名無しさん [2017/12/02(土) 11:57:41.11 ID:6Ds5e+ud.net]
最近傍探索で、最も近いものが複数個あった場合、どうするのが自然ですか?

また、k近傍探索でも、クエリからk番目に近いものが複数あった場合、どうするのが自然ですか?

755 名前:デフォルトの名無しさん [2017/12/02(土) 12:30:23.76 ID:LweVlrmz.net]
セジウィックとウエインのcourseraのオンライン講義を聴講しています。

なんかやけに課題が厳しくないですか?

756 名前:デフォルトの名無しさん [2017/12/02(土) 13:12:04.17 ID:LweVlrmz.net]
セジウィックとウエインのcourseraのオンライン講義Algorithms Part 1のWeek 2の課題、できた人いますか?

757 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 17:04:18.29 ID:Rnsbf7Hs.net]
今日のNG ID:LweVlrmz

758 名前:デフォルトの名無しさん [2017/12/02(土) 20:12:18.77 ID:LweVlrmz.net]
courseraのセジウィックとウエインの講義を聴講している人はいますか?

759 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 13:54:02.89 ID:fGqdieY2.net]
>>740
好きなようにするのが自然

760 名前:デフォルトの名無しさん [2017/12/05(火) 09:10:03.39 ID:bL4Z2L1G.net]
↓この仕様の RandomizedQueue の実装できる人いますか?

coursera.cs.princeton.edu/algs4/assignments/queues.html

761 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 09:40:42.14 ID:71Ul9rRS.net]
>>746
宿題なら自分でやれ
そうでないなら読むのめんどくさいから要約しろ



762 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 09:45:48.47 ID:afEItlvW.net]
松坂君につきスルー推奨

763 名前:デフォルトの名無しさん [2017/12/05(火) 12:21:40.49 ID:bL4Z2L1G.net]
あ、仕様Memory量の見積を勘違いしていました。

できそうですね。

Item 型のデータを格納する Linked List

Linked List の各要素への参照を格納する Item[] 型の
配列を用意すれば実現できますね。

764 名前:デフォルトの名無しさん [2017/12/05(火) 12:25:30.33 ID:bL4Z2L1G.net]
あ、でも Item[] 型の配列を ResizingArray で実現したとしても、
常に、Memoryの制限である 48*n + 192 bytes というのを満たすのは
無理ですね。

どうすればいいんですかね?

もう少しだけメモリの制限が緩ければ実現可能ですが。

765 名前:デフォルトの名無しさん [2017/12/05(火) 12:30:24.08 ID:bL4Z2L1G.net]
Performance requirements.

Your randomized queue implementation must support each randomized queue
operation (besides creating an iterator) in constant amortized time.

That is, any sequence of m randomized queue operations (starting from an empty
queue) must take at most cm steps in the worst case, for some constant c.

↑これと↓を両立させることはできるのでしょうか?

A randomized queue containing n items must use at most 48n + 192 bytes of
memory.

766 名前:デフォルトの名無しさん [2017/12/05(火) 13:24:03.96 ID:bL4Z2L1G.net]
あ、なんだ

簡単でしたね。

Item[] 型の Resizing Array を使えば、

メモリ使用量 〜 8*n

だから、4倍くらいメモリを無駄に使っても

48*n を超えませんね。

767 名前:デフォルトの名無しさん [2017/12/05(火) 13:25:09.16 ID:bL4Z2L1G.net]
あ、なんだ

簡単でしたね。

Item[] 型の Resizing Array を使えば、

無駄が全くないときのメモリ使用量 〜 8*n

だから、4倍くらいメモリを無駄に使っても

48*n を超えませんね。

768 名前:デフォルトの名無しさん [2017/12/05(火) 13:27:33.45 ID:bL4Z2L1G.net]
これから実装しますが、また100点満点中100点になりそうです。

769 名前:デフォルトの名無しさん [2017/12/05(火) 13:43:27.58 ID:bL4Z2L1G.net]
あ、やっぱりだめですね。

dequeue の計算量がネックになりますね。

770 名前:デフォルトの名無しさん [2017/12/05(火) 13:45:25.54 ID:bL4Z2L1G.net]
あ、分かりました。
一様ランダムに選択された a[i] に a[N] を移せばいいんですね。

771 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 16:58:02.34 ID:Z65eXqg0.net]
本日のNGID:bL4Z2L1G



772 名前:デフォルトの名無しさん [2017/12/05(火) 21:20:28.14 ID:YaGuI/6t.net]
経路探査でray cast algorithmというのがあるらしいんだが、わかりやすいサイトない?

773 名前:遊園 mailto:age [2017/12/07(木) 01:30:59.64 ID:AoT+leNM.net]
おちんちん に ベロが届くアルゴリズムを教えて下さい。

774 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 09:29:15.88 ID:lQf/9LHk.net]
お金が儲かるアルゴリズムを教えてください

775 名前:デフォルトの名無しさん [2017/12/08(金) 13:48:57.43 ID:6WtIjESa.net]
>>759
ム板らしく

香川大
https://www.youtube.com/watch?v=J_R7fgo0FLc
早稲田大
www.takanishi.mech.waseda.ac.jp/top/research/voice/movie/Tongue_Phoneme_s.mpg
www.takanishi.mech.waseda.ac.jp/top/research/voice/movie/Tongue_EMA_s.mpg
www.takanishi.mech.waseda.ac.jp/top/research/voice/index_j.htm
購入可能
https://auctions.yahoo.co.jp/seller/obaba1212

776 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:58:56.19 ID:ouHX+Izy.net]
>>760
「お金が儲かるアルゴリズム」で儲かる方法を書いた本を売る

777 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 09:08:05.27 ID:hr/9uBAF.net]
子供の言い返しみたい

778 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 12:25:33.81 ID:GX7M220U.net]
それは結構知能が高い子供だなw

779 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 16:48:02.91 ID:oqulgHhz.net]
https://www.amazon.co.jp/dp/4040800044/ref=cm_sw_r_cp_awdb_c_Kt5kAbQR1S9HF

似たタイトルの本あるな

780 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 17:58:55.99 ID:E2JharMg.net]
関数型言語ってUML使うんですか?
クラス図とかメソッドどう書くんだろうと

781 名前:デフォルトの名無しさん [2017/12/24(日) 12:09:02.25 ID:croU9pw3.net]
ちょっと質問させてください。
状況: トータル1000行くらいある巨大メソッドの改修
言語; PHPだがどの言語でもそう関係のない内容

・まずコントローラのアクションメソッドがあって

public function action(引数){

/* 500行くらいの既存コード */

/*今回改修を加えたい50行位のコード */

/* 500行位の既存コード */
}
となっている。



782 名前:デフォルトの名無しさん [2017/12/24(日) 12:16:40.00 ID:croU9pw3.net]
・ここで、改修要件は、中間にある「/* 50行くらいの既存コード */」を
  if文で分岐させて分岐次第で違う処理を入れる。というもの。
  したがって、

public function action(引数){

  /* 500行くらいの既存コード */

  if(条件1){
    /* 新規追加コード */
    if(条件1-1){
      /* 新規追加コード */
    }else{
      /* 既存コード */
    }
  }else if(条件2){
    /* 新規追加コード */
  }else{
    /* 既存コード */
  }

  /* 500行位の既存コード */
}

みたいにひたすら条件分岐して既存コードと新規追加コード
が何回も実行されるようにしたい。

783 名前:デフォルトの名無しさん [2017/12/24(日) 12:22:57.90 ID:croU9pw3.net]
・ここで、俺は「/* 既存コード */」の中身を知っている必要は
 ないと思った。だから、このコードの詳細を読まずに「func()」
 として「action()メソッド内部」に切り出した。
・外部に切り出したのではなく、内部に切り出したのはその処理が
 他のアクションメソッドでは共有されるような汎用的なものではないだろうと
 判断したのと、そのメソッド内で処理を追いやすいようにというのを
 優先させたため。何より、その処理内で使っている関数内ローカル変数の
 依存性の関係上そうせざるを得ないと思った。

public function action(引数){

  /* 500行くらいの既存コード */

  private function __legacy(){
    /* 50行くらいの既存コード */    
  }

  if(条件1){
    /* 新規追加コード */
    if(条件1-1){
      /* 新規追加コード */
    }else{
      __legacy();
    }
  }else if(条件2){
    /* 新規追加コード */
  }else{
    __legacy();
  }

  /* 500行位の既存コード */
}

784 名前:デフォルトの名無しさん [2017/12/24(日) 12:31:59.59 ID:croU9pw3.net]
・【訂正】上記で「func()」として切り出したと言っているが、
  「__legacy()」に変更しました。すみません。
・上記のように改修した所、レビューを受けたときに怒られた。
・まず、「この__legacy()の中身ちゃんと読んだ? 把握して書いている?」
 という指摘。
・そして「ここメソッド内だけどどうして関数定義しているの?
 他の人そんなことしてないでしょ。どうして変わったことするの?」
 という指摘。

・まず1つめの指摘に対して異議がある。
 ブラックボックス化しなければ大規模なコードは書けないんじゃない?
 ということが言いたい。ライブラリとかフレームワークの機能も全部
 先に中身をよくよく読んでおかなければ使ってはいけないことになるじゃん。

・2つの指摘に対して、
 「周りの人がやっていること」が正しいとは思えない。
 処理を切り出していないから1000行もある巨大なメソッドになっていて、
 汚いコメントで汚しながら機能追加しまくっているんじゃないのかと。
 ローカル変数を使いまくりの同じ処理を何回も実行するのに
 他に良い手段があるとしたら皆さんに教えて頂きたい。

785 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 13:24:11.47 ID:d+M5RyEv.net]
汎用的でない50行のコードをコピペしてるんなら関数化してもインライン化してもどっちもどっちだな
DRYを意識したのかもしれんがKISSが抜けてる
それにブラックボックスが許されるのは有名なライブラリやフレームワークのようなテストにテストを重ね、かつ多くの利用者による実績があるものだけだよ
社内コードなんて大概クソコードだしブラックボックスにしても後で痛い目を見るのは自分や他の開発者
何なら単に今把握するだけじゃな

786 名前:くて、未来の自分や開発者のためにわかりにくいところをコメントで説明書きしてもいいくらいだ

あと関数内関数より無名関数を変数に代入した方がいいんじゃね
そもそも新規追加したif文も詳細はわからないがデータよりもロジックに寄っててわかりにくそうな匂いがプンプンする

それに上司には理由を聞かれてるんだから同じローカル変数に別の値を入れて使い回すことの危険性、関数化による参照透明の確保や保守性、メンテナンス性の向上を論理的に答えればいいだけ
[]
[ここ壊れてます]

787 名前:デフォルトの名無しさん [2017/12/24(日) 13:31:29.00 ID:ZUclbhk1.net]
>>770
レビュアーが言ってることを正しいと仮定すれば
・1つ目の指摘は既存のコードがカプセル化されてないからだ
・2つ目の指摘はリファクタリングするだけの時間やお金や技術がないからだ
という前提が必要になるから、まあそういうことなんじゃなかろうかと

残念なコードっていうのはあるからね
それを修正する費用と修正して得られる効果を比較対照して
これだけの効果があるんだからこうするべきだと提案をまとめて
説得するのがいいのだろうけど、技術に理解のある人がいないとなかなか難しいね

レビュアーの立場で考えると以下の作業があるんじゃないかと
・改修要件を満たす改修
・既存のコードをカプセル化する
・リファクタリングする

レビュアーは既存のコードとの一貫性を維持しつつ
改修要件を満たす最小の改修をやって欲しいのだろうね

たとえ汚らしいコードであってもいままで動いてきた実績があると
変更に対しては既存のコードをできるだけ変えないようにと保守的になるものだよ

レビュアーがそれをきちんと説明できればいんだけど
コードはクソ、レビュアーもクソなんてことはザラにあるんですよこれが

788 名前:デフォルトの名無しさん [2017/12/24(日) 13:35:53.06 ID:croU9pw3.net]
>>771 なるほど勉強になります。
少し質問したいが、
・「KISSが抜けている」と言うのはどこらへんでしょうか?
・関数内関数と無名関数の変数化の違いがわからないので教えてください。
 (面倒なら調べます。)
・あなたならどう対応する?
・「理由を聞かれてるんだから答えればいいだけ。」
 →多分論理的に説明したら「じゃあもう何も教えないよ。好きにやって」
  が返って来ると思われる。
  そう言われると、必要な情報も来なくなるし聞けなくなる。

789 名前:デフォルトの名無しさん [2017/12/24(日) 13:38:47.27 ID:croU9pw3.net]
>>772
なるほど、俺自身が「既存コードのカプセル化」と
「改修要件」という概念と「改修要件を最小に満たす」という
ことについて詳しくないことに問題がありそうだね。
ありがとう、ここらへんをキーワードにして調べてみます。

790 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 13:55:23.50 ID:d+M5RyEv.net]
>>773
多分もっと細かく汎用的な(publicにできる)関数の集まりに分解して、汎用的でない部分は最小限に出来るんじゃないかなーって思った
実際のコード見てないから予想だけど

関数内関数だとわざわざprivateかけないと外からアクセス出来ちゃうし、元の親関数抜けても子関数が死なない

そもそも上司とあんまり仲良くないの?
論理的にメリットを売り込んだときに感情論で否定されるくらいの関係性だと下っ端プログラマーはしんどいよ?
まぁ俺ならその段階なら折れて普通にコピペして、もっと実績残して仲良くなってから似たような案件のときに改めて売り込むかな

791 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 16:09:59.00 ID:RfRGBvGh.net]
ひとつのメソッドに1000行も書かせる会社はまず危ない

アルゴリズムとかそれ以前



792 名前:デフォルトの名無しさん [2017/12/24(日) 16:57:23.08 ID:croU9pw3.net]
>>775
なるほど、「まるまる関数化」というのが
ちゃんと機能を意識してカプセル化していないってことか。
一応privateは欠けているけど、関数オブジェクトと
関数定義の違いはあまり詳しくないね。そうか、親関数が抜けたとき
子関数が死ぬか否かの違いがあるわけね。
入りたてだから人間関係はいいも悪いもない。
ただ、本来責任ある人はバタバタしていて、経験ある人が自分の意志で
新人のレビューをバラバラに行っている感じ。

>>776
会社がそうさせているというよりはそれぞれの人員が
これまでの追加の仕方を真似て機能追加した結果メソッドがブクブクと太っている
という状況に見える。
メソッド内で各追加機能がコメントで区画されていてそれなら
別関数にすりゃいいのにって思っている。
俺をレビューした人も、別に会社の工程でそうなっているわけでなく、
進捗を見たかったからだと思うが、書き直しを要求してきて困惑している。
ただ彼は業務要件については圧倒的に俺より詳しいから無視すべきではないと
思っている。

793 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 17:21:20.21 ID:d+M5RyEv.net]
>>777
カプセル化はオブジェクト指向において関連するものをまとめる作業だから、ちょっと違うかな?
どちらかというと今回の話は関数型プログラミングの考え方に近い
まぁぶっちゃけ職場のコードなんて割り切らんとやってけんよ
出世してコーディングスタイルに口を出せるようになる日を待つしかない

794 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 18:02:16.50 ID:ZlmBMffH.net]
>>777
そんな仕事を放置する会社、と言うことだ

795 名前:デフォルトの名無しさん [2017/12/26(火) 20:02:37.53 ID:IVX+3dWv.net]
名前だらけのコードってどうやって解読すればいいんだ?
変数化するとそのデータの型が何なのか物量的にどれだけの
規模が格納されているかが見えない。
もちろんログに吐けば見えるが、吐き出さなければパッと見で
何をどう処理しているのか分からない。

796 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 22:58:59.01 ID:SjDDNmHA.net]
俺は君の話が見えない

797 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 07:26:44.87 ID:uxDwhrz8.net]
関数型言語の仕様書ってUMLで良いの?

データと振る舞い分離してるからクラス図使って良いのかなと

798 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 08:35:11.41 ID:F/9ZaRBN.net]
>>782
ちょうど stackoverfl

799 名前:ow に同じトピックがありました。
参考にしてください。
https://stackoverflow.com/questions/2457903/can-uml-be-used-to-model-a-functional-program
[]
[ここ壊れてます]

800 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 07:02:18.99 ID:THqyhi+6.net]
>>783
英語敷居たけえ

まあデータと振る舞いを書いたクラス設計は関数型言語でも同じように使えるし問題ないか

801 名前:デフォルトの名無しさん [2018/01/10(水) 18:14:12.30 ID:hBlQ00sP.net]
coursera.cs.princeton.edu/algs4/assignments/8puzzle.html

↑この問題分かる人いますか?



802 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 18:27:49.76 ID:1dOsaXCv.net]
粗探しは止めたのか?

803 名前:デフォルトの名無しさん [2018/02/03(土) 08:08:45.43 .net]
今どきデザインパターンって死語なの?
ちょっと参照したいことがあって書店でデザインパターンの本を探したけど見つからなかった。
リファクタリングの本はあって多少はデザインパターンの話も出てきたけど。
結局は家に帰ってから10年前に買ったデザインパターンの本を参照するしかなかった。

804 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 08:51:29.86 ID:KIp4GWtx.net]
ブームが去っただけかな?
銀の弾丸などないと気がついただけ

805 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 09:20:07.32 ID:i7L7gFeB.net]
今更デザインパターンについて新しい本なんて不要

806 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 12:22:10.78 ID:ROxRBp/z.net]
デザパタは元々バカの為にまとめられたものだったけどバカには無理だった代物
一方リファクタリングはバカ程好むからなかなか廃れない

807 名前:デフォルトの名無しさん [2018/02/03(土) 19:53:28.27 ID:4eWkMwg8.net]
21世紀最新のデザインパターン本て誰か書かないかね
Singleton→大抵はstaticでOK
みたいなの

808 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 20:04:20.16 ID:gMMiWrqd.net]
>>791
それ以外に何か書くことあんのか?

809 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 00:33:23.10 ID:P/Ibpspu.net]
デザインパターンて結局何だったんだ?
高い本まで買ったがほとんど身に付かなかったな

810 名前: mailto:sage [2018/02/04(日) 00:43:54.12 ID:p5zvJFKF.net]
>>793
もともと C++ 界隈で発生したテーマですので、C++ をやっているとデザパタの意義がよくわかります
C++ は細かしいことまで自分で記述しなければならないので、こういう大枠思考がもてはやされたのだと思います

811 名前: mailto:sage [2018/02/04(日) 00:44:42.44 ID:p5zvJFKF.net]
ああ、でも C++ はテンプレートの世界観に移行してしまったので、デザパタ、今はあんまり使いません!



812 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 14:54:54.10 ID:LHXgrTbX.net]
>>793
アルゴリズムの話するときの共通語が必要になって
ついでに良し悪しもまとめておこうという話になった

813 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 16:52:44.22 ID:bfs3ZT86.net]
アルゴリズムとパターンて違うんじゃね?

814 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 18:39:48.45 ID:hAg+nb3o.net]
デザインパターンそこに至る考え方を身につけないと
というわけで、オブジェクト指向のこころをオススメしとく

815 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 18:59:31.93 ID:z/Jlakx1.net]
>>798
書評読んでもなかなかよさげだな

816 名前:デフォルトの名無しさん [2018/03/05(月) 21:38:39.67 ID:aiLdZy6r.net]
『アルゴリズムイントロダクション』を読んでいます。

ヒープソートのところに、

「サイズ n のヒープ上の MAX-HEAPIFY の最悪実行時間が Ω(lg n) であることを示せ。」

という問題があります。

最悪実行時間が Θ(lg n) であることはすぐに分かります。
なぜ、 Ω(lg n) であることを示せという問題なのでしょうか?

最悪実行時間や最良実行時間については、 Θ 記法で書くのが自然だと思います。

817 名前:デフォルトの名無しさん [2018/03/06(火) 01:54:34.90 ID:bDrXTt4P.net]
まるちんこ

818 名前:デフォルトの名無しさん [2018/03/07(水) 21:29:45.52 ID:ukyKg6LA.net]
セジウィックさんはいい加減ですね。

近代科学社から出ている『アルゴリズムC』の最小全域木のところを読んでいますが、
同じ重みの辺が2つ以上あると議論が破綻するところがありますね。

Wayneさんと共著の『Algorithms』では、すべての重みが異なるという仮定をおいていますね。

いずれにしてもひどい本です。

819 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 21:31:54.51 ID:MzP8rhu8.net]
キミはまだアルゴリズムの勉強していたのか。

人には向き不向きというのがあってだな。

820 名前:デフォルトの名無しさん [2018/03/07(水) 21:33:49.91 ID:ukyKg6LA.net]
すべての重みが異なるというのは異常な仮定ですよね。

821 名前:デフォルトの名無しさん [2018/03/07(水) 22:27:03.62 ID:ukyKg6LA.net]
茨木俊秀著『アルゴリズムとデータ構造』を読んでいます。

この本のクラスカルのアルゴリズムの正しさの証明に使われる補題の証明ですが、
読んでも分からなかったのですが、やはりおかしかったんですね。

同じ著者の『Cによるアルゴリズムとデータ構造』を読むと補題の証明が修正されています。

この分野っていい加減な本が多いですよね。



822 名前:デフォルトの名無しさん [2018/03/08(木) 19:38:26.94 ID:NHHLXFak.net]
任意の連結無向グラフ G = (V, E) は |E| ≧ |V| - 1 を満たすことを示せ。

823 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 10:59:28.10 ID:pDgCeBjY.net]
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/

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

BU06O

825 名前:デフォルトの名無しさん [2018/06/24(日) 11:32:17.25 ID:cbD8du/l.net]
AVL木について詳しく載っている本は何ですか?

826 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 14:42:02.78 ID:/GtGgmfo.net]
詳しいと言えるかどうかは別にしてAVL木に関する説明が分かりやすいと思ったのは次の本の該当箇所(§6.3)だ

浅野哲夫『データ構造』、アルゴリズムシリーズ1、近代科学社 (1992)

827 名前:デフォルトの名無しさん [2018/06/24(日) 15:07:06.81 ID:F1zD07yq.net]
ステマ

828 名前:デフォルトの名無しさん [2018/07/04(水) 22:09:33.44 ID:gFgZc5FG.net]
C5O

829 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 16:33:38.42 ID:AeL6VB/V.net]
C5O

830 名前:デフォルトの名無しさん [2018/07/21(土) 20:42:50.98 ID:4Q935nRZ.net]
1つ言えるのはオブジェクト指向のなんかよりも
データ構造とアルゴリズムの方がよっぽど重要だということ。
昔はオブジェクト指向の勉強を頑張っていたけどそのときは
全然プログラミングがうまくならなかった。
現代の世の中はガチガチに設計されたライブラリを使って
コードを書くだけだから生半可なオブジェクト指向の知識なんて
ゴミ同然だよ。80年代90年代に考えられた思想とか、もうゴミに
なってしまった思想が多くて有害だよ。
結局現場でやることは「メソッドの使い方を求めてQiitaやStack OverFlowを
漁って成功するコードを見つけるまで疲れ果てる」ことに変わりはない。
せっかく勉強した内容が時代遅れで「裏切られる」ことのほうが多い。

831 名前:デフォルトの名無しさん [2018/07/21(土) 20:51:29.70 ID:4Q935nRZ.net]
一方、データ構造とアルゴリズムをガッツリと勉強してから
様々なデータ構造の使い方、問題の解決がうまくなった。
ブロックチェーンのアルゴリズムの理解や
データ分析の数学的演算がコーディング
できるようになってプログラミングが格段に楽しくなった。
スマートにオブジェクト指向で設計する力なんかより
「ゴリゴリとアルゴリズムを書く力」の方がよっぽど重要。
「再利用性」?「変更の影響」だって?そんなものゴミだね。
それは自分以外の人間のメリットのための技術であって、
自分へ還元されるためのメリットではない。
再利用性は自分の書いたコードなら信頼できるしコピペして使えばいい。
自分の書いたコードのコピペは全然ありだと思う。
適したメソッドが見つからなかったらQiitaを漁ったりせずに
自分でゼロから実装したほうが速い。
その場で手っ取り早くコードを生成しているから、
どんな既存コードにも頼っていないから俺の実装したコードは
依存性は低い。



832 名前:デフォルトの名無しさん mailto:sage [2018/07/21(土) 21:29:45.12 ID:BkDv2dG7.net]
ただし>>814-815は何かのアプリを作ったことはない

833 名前: mailto:sage [2018/07/21(土) 21:58:56.02 ID:vWALYQin.net]
>>815
一つ重要な視点を提供しましょうか
自分の記憶などあてになりません、3ヶ月前自分が書いたコードは、もはや他人が書いたコードとなんら変わりありません

834 名前:デフォルトの名無しさん mailto:sage [2018/07/21(土) 22:06:10.19 ID:BkDv2dG7.net]
>>814-815はすでに解いたことのある問題なら
忘れたとしても、少し時間をかければ解けると考えている

つまり誰かが出した出題を解くという作業をしている

835 名前:デフォルトの名無しさん [2018/07/21(土) 22:34:33.64 ID:4Q935nRZ.net]
>>>817, 818
自分のいつも使うアルゴリズムのパターンが身についていれば
そのパターンや命名規則から何をやっているかは解読できる。
読みにくくなるのは外部から取り込んだ機能の実行や
継承している部分。

836 名前:デフォルトの名無しさん mailto:sage [2018/07/21(土) 23:12:43.54 ID:BkDv2dG7.net]
>>819
やっぱり「解読」してるんだw

すでに証明済みの問題を自分の力で証明するという
お勉強をやってるだけだね

837 名前:デフォルトの名無しさん [2018/07/21(土) 23:21:07.94 ID:evbWgLmC.net]
研究者で無い限り新しい証明考える必要ないっしょ

838 名前:デフォルトの名無しさん [2018/07/21(土) 23:22:28.87 ID:evbWgLmC.net]
解読の工程は業務でも必要であるし
遊びとしても面白い
それが勉強になるならとても有益じゃん

839 名前:デフォルトの名無しさん [2018/07/21(土) 23:34:47.51 ID:4Q935nRZ.net]
「車輪」は大きさ、材質、シャフトの接合部の形、色…大まかな形や役割は似ているが微妙に違うものが無数にある。
ちょっとでもこれらの特徴がずれたものは他への転用を考えるとすぐに不具合となって使い物にならない。
車輪を最初に「発明」した人物はこれらの無数の車輪を全て発明したわけではない。
だから他の人が死ぬほど似たようなものを作っていたとしても自分で作る必要がある。
他人が作った車輪は無条件で役にたつわけがない、
手直しして組み込むより「自分の規格で」作った方が早い。

840 名前:デフォルトの名無しさん mailto:sage [2018/07/21(土) 23:43:56.82 ID:s1Wh2Ul8.net]
車輪ってすごいな

841 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 00:34:31.50 ID:J1Nh86LO.net]
車輪が小さかったからゴム巻いたらなんとかなった
これがオブジェクト指向です



842 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 02:15:34.77 ID:+JtpRhMz.net]
時代が違うからな。アルゴリズム考えてうんうん唸る時代は終わってるんだよ
今はそういうアルゴリズムが実装されたライブラリを組み合わせて
アプリを作る時代だってMITも言ってる

MIT「今は基礎よりライブラリ組み合わせてアプリ作る時代」 [無断転載禁止]©2ch.net
https://medaka.5ch.net/test/read.cgi/prog/1462443213/





MITがSICPを教えなくなった理由
cpplover.blogspot.jp/2016/05/mitsicp.html

今日では、状況が変わっている。

今のエンジニアは、自分が完全に理解していない複雑なハードウェアのための
コードを日常的に書いている(そして、大抵の場合、企業秘密により完全に理解するのは不可能である)。

ソフトウェアでも状況は同じだ。プログラミング環境は、多大な機能を提供する
巨大なライブラリ群の集合として存在している。

Sussmanの今日の生徒は、その時間の大半を、ライブラリのマニュアルを読み、
どのように組み合わせれば目的が達成できるのかを把握することに費やしている。

Sussman曰く、今日のプログラミングは、「より科学に近い。ライブラリを持ち寄って、
つっつき回すのだ。プログラムを書くには、突っつき回して、どのように動作するかを観察する。
そして、「目的を達成するために改造できるか」と考えるのだ」。

SICPの「合成による解析」という物の見方である、小さな、単純な部品を組み合わせて大きなシステムを作るということは、
もはや今日の状況にそぐわなくなった。今や、我々のプログラミングはつっつき回すことで行われている。

843 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 06:06:47.04 ID:woAlzZC1.net]
車輪の再利用だけ考えて車輪職人が居なくなるって話かな?

844 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 06:11:43.36 ID:+JtpRhMz.net]
そうだね。そもそもソフトウェアは他の製品と違って
完全に同じものを複製するのに技術がいらないからね
コピーすればいいだけだし。

その点、何かを作る職人とはぜんぜん違うよね
そいういう寸分違わないものを作り出す職人は不要な業界

845 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 09:02:23.96 ID:XlZUepQP.net]
>>825
そして、今は鉄道以外のほぼすべてのタイヤの接地面はゴムです。
そういうところもオブジェクト指向と、似てますね。

846 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 09:20:35.56 ID:hOelEibu.net]
以上、内容無し

847 名前:デフォルトの名無しさん [2018/07/22(日) 13:32:55.77 ID:snsF+l1o.net]
>>826
この論理は完全にお花畑。
完全無欠のライブラリがありそれが唯一無二なら
つつっつき回すだけでいいだろうさ。
だけど現実はほぼ似たような機能で構文が違う、
それに加え実行環境もバージョンも違うライブラリたちが乱立してるんだぜ、
それに加わりローカルで作られた野良ライブラリがある。
当然人によってそれらの使い方の認識に齟齬が生まれる。
信用できるのは、自身の即興のデータ構造定義能力と、
アルゴリズム構築能力だけだ。

848 名前:デフォルトの名無しさん [2018/07/22(日) 13:34:08.83 ID:LiIRy0eu.net]
今必要なのは解読ではなくて解脱

849 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 14:02:08.11 ID:+JtpRhMz.net]
>>831
> だけど現実はほぼ似たような機能で構文が違う、
> それに加え実行環境もバージョンも違うライブラリたちが乱立してるんだぜ、

乱立しているからなんだっていうんだろう?
乱立してるから自分で作れってことにはならないよな?
何が言いたいんだろう

> それに加わりローカルで作られた野良ライブラリがある。

自分自身で作成したもの = 他人から見れば野良ライブラリだからね
野良ライブラリは作るべきじゃないね

だから乱立されている中のどれかを使うってことになるわけだけど
そういう結論を言いたかったんだよね?

850 名前:デフォルトの名無しさん [2018/07/22(日) 14:02:42.93 ID:YGqHpPTt.net]
>>831
データ構造作るだけだと付加価値が低いというか
ただの作業員でしかなくない?
新しい仮想通貨作るとかだったらすごいけど

851 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 14:06:57.17 ID:+JtpRhMz.net]
まあ言えるのは、データ構造やアルゴリズムを作るだけの仕事なんて無いってことだな

やりたいからといって、それで金がもらえるわけじゃない
金を出す方がやってもらいたいことをやって金が出る

似たようなものを自作して、乱立させたって
そんなものに金を出す人はいない



852 名前:デフォルトの名無しさん [2018/07/22(日) 14:18:22.79 ID:LiIRy0eu.net]
>>835
うむ

>>834
やったことないやつには判らんよ

853 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 14:24:06.48 ID:t9f4aq96.net]
座禅だな

854 名前:デフォルトの名無しさん [2018/07/22(日) 17:42:32.79 ID:bmpyz9fo.net]
>>827
いや、ちょっと違う
プログラマという職業が、車輪を一から設計できる職人群と
それを再利用する専門家へと二極化していくというお話だよ

この二極化は以前から言われていたことだけど、
それを天下のMITが言い切って行動に移したことに>>826の意義がある

855 名前: mailto:sage [2018/07/22(日) 18:20:24.01 ID:+jM3tBOE.net]
>>838
「職人」と「専門家」が逆ではないですか?

856 名前:デフォルトの名無しさん [2018/07/22(日) 19:59:44.17 ID:bmpyz9fo.net]
いや、逆ではないよ

MITは計算機工学に特化しているわけでもなく、
機械工学、ロボティクス、生産工学、データ解析といった
あらゆる工学分野の専門家を養成し輩出している

そういった(計算機工学を除く)大半の「専門家」の卵達にとって、
優先すべきは(旧コースでSchemを使って学んでいた)計算機の動作原理ではなく、
計算機の利用方法である、という趣旨
彼ら「専門家」は決して計算機工学の専門家ではないが、
それぞれの分野に特化した高度な専門技術を有し、
与えられた問題を解決する道具として計算機を効果的に活用できる

857 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 20:38:21.89 ID:woAlzZC1.net]
役割が細分化したからそのニーズに応じたという話?

858 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 21:07:14.12 ID:+JtpRhMz.net]
どんな仕事でも、その道の研究者ってのはいるだろう。
例えば数学者とかな。だけど世の中で必要とされてるのは
塾の数学の先生だったりするわけさ

もっとも大学に行った人の殆どは、大学で専攻していたものとは
関係のない仕事をしているわけだけどな

859 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 21:23:40.76 ID:MHyGLJ0L.net]
数学とコンピュータを一緒にするなよw

860 名前:デフォルトの名無しさん [2018/07/22(日) 23:03:00.98 ID:snsF+l1o.net]
たとえばjsでオブジェクト構造をサーバに送りたいとする。
たったこれだけのことなのに邪魔くさい余計な機能が多すぎる。
わざわざ専用のクラスからインスタンス作って
専用の構文使ったりhttpヘッダー設定したりだ。
それでいてサーバ側では糞みたいな細かい仕様認識の違いでリクエストの内容が空だったりする。
サーバ側のコンフィグ見直したりjs側のコード見直したりするわけだ。
ログからライブラリのコード追っていくと大抵
過剰に技法使われてるから自ずと疑うべき探索
範囲は広くなる。
書き方はjQueryベースやangular typescriptなんかが混在してきて文法のちょっとした勘違いなんてのも生まれてくる。
だったらそんなライブラリ鼻っから信用しなけりゃいい。
ライブラリのインスタンスを介さずに多少原始的だが
文字列、数値 for文if文だけで大抵の問題は解決できる。
自力でJSON文字列に情報をぶち込んで送信してやれば、必ずサーバ側で取得できる。
サーバ側も下手なライブラリにパースさせないで自力でパースした方が慣れれば断然こちらの方が早い。
自力で作ったアルゴリズムは信用できるから
関数化しておいてまた似たような問題があったときに
使える。
俺が使うための自作ツールは他人は使わなくていいよ、どうせ価値観が違うんだからな。
自分で作ったもの以外はそりゃ不便だろうよ。

861 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 23:31:00.85 ID:8Bgo+1zG.net]
> たとえばjsでオブジェクト構造をサーバに送りたいとする。

https://api.jquery.com/jquery.post/

$.post( "test.php", { name: "John", time: "2pm" } );

こうだね。で?



862 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 23:37:38.62 ID:zgYMpfBL.net]
それjqueryやんw

863 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 23:58:50.05 ID:8Bgo+1zG.net]
はい。このように他人の成果を利用して
目的を達成するのが今は重要って話です。

864 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 00:05:17.20 ID:jaGQY9G3.net]
>>844
> だったらそんなライブラリ鼻っから信用しなけりゃいい。

とりあえずお前が自力で作ったライブラリは
鼻っから信用しててないよ

865 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 00:19:04.74 ID:jaGQY9G3.net]
>>844
> 俺が使うための自作ツールは他人は使わなくていいよ、どうせ価値観が違うんだからな。
> 自分で作ったもの以外はそりゃ不便だろうよ。

価値観の問題じゃない。単にお前が作ったコードに
バグがあるから使えないだけ。使わないんじゃない。使えない。

反論するならバグがない証拠を出すこと
テストコードをかけという話ね。


> だったらそんなライブラリ鼻っから信用しなけりゃいい。
お前が書いたコードは鼻っから信用できない。するしないじゃない。できない。

866 名前:デフォルトの名無しさん [2018/07/23(月) 06:43:27.98 ID:LtlhEJ9n.net]
みなさんお気づきだろうか
>>844>>849は同じことを言っている

867 名前:デフォルトの名無しさん [2018/07/23(月) 07:32:08.19 ID:LtlhEJ9n.net]
jQueryはブラウザの差異を吸収するからね
同等のもの作ろうとしたら大変だよ

自前のコードを実装するのが汎用ライブラリを使うよりも早いとするなら
自前のコードは汎用ライブラリよりも機能が少ないものになる

要件がシンプルなら自作するのは効率が良いかもしれないね

システムをユーザのニーズに合わせてたら要件が複雑になり自作するメリットが得られない
ユーザがシステムの都合を忖度するならうまくいく
開発者にとっては桃源郷

開発者の幸せか、ユーザの幸せか
ぼくらはその選択を迫られてるんだ

868 名前:デフォルトの名無しさん mailto:age [2018/07/23(月) 09:47:19.69 ID:nk4BkCBO.net]
役所が作る神エクセルなんてのはユーザがシステムの都合に合わせてる典型例じゃないか、自作コードに拘るのは神エクセルを作るのと変わらぬよ

869 名前:デフォルトの名無しさん [2018/07/23(月) 11:01:38.63 ID:eU1p7hr8.net]
>>842
自己紹介ですね

870 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 12:24:24.98 ID:jaGQY9G3.net]
>>851
> 要件がシンプルなら自作するのは効率が良いかもしれないね
それは正しくない。要件はシンプルでも実装が大変なことがある。
そもそも「ライブラリの一機能の独自実装」などという要件は
実際には発生しない。これらは単に道具

要件を実装するのに、道具を使うか使わないかの問題
シンプルな要件でも、道具は使ったほうが効率は良いよ

もちろん道具を使えない人であれば、道具を使えるようになるまで時間が
かかるけど、それは素人がプロに速度でかなわないという人間の問題にすぎない
そう道具を使えないなら素人なんだよ。

871 名前:デフォルトの名無しさん [2018/07/23(月) 12:29:27.63 ID:aoV6LMU9.net]
>>850
ヒント:バカは皆がオンリーワン



872 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 12:36:13.41 ID:jaGQY9G3.net]
>>850
同じことは言ってないな

>>844はよくわからないのはライブラリのせいだ
自分で作れば、そのライブラリよりもわかりやすくなるはずだ
って机上の空論を言ってるだけ

873 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 13:54:17.34 ID:wSAPNw7p.net]
PGの愚痴

874 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 15:02:52.51 ID:EWSlu15m.net]
りんごをむくのにピーラーを使うのもいいが、一度ナイフで剥くのを試すのも重要だし、かじってみるのもいい。
道具が解決する問題がなんなのか、体験することは、多くの人にとって有益だと思う(経験主義者)

875 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 15:32:18.18 ID:1W7qAEKf.net]
そこでピーラーを作るのは大変だとか見当違いの所に流れていくやつがいる。

ピーラー(ライブラリ)を使うか、ナイフを使うかだ

ライブラリ?中見たけどわけのわからないことをしてる
理解できない。ナイフのほうが単純だ。ナイフなら作れる。
なぜか作る話になってしまっている。

876 名前:デフォルトの名無しさん mailto:age [2018/07/23(月) 15:38:29.17 ID:nk4BkCBO.net]
例え話では本質から遠ざかるばかりよ

877 名前:デフォルトの名無しさん mailto:age [2018/07/23(月) 15:39:54.99 ID:nk4BkCBO.net]
例え話は物事を理解してなくてもそれらしく見せるから知ったか振りが捗りますなあ

878 名前:デフォルトの名無しさん mailto:age [2018/07/23(月) 15:41:15.55 ID:nk4BkCBO.net]
ワシも神エクセルとか言ってた

879 名前:デフォルトの名無しさん mailto:sage [2018/07/24(火) 18:13:24.95 ID:Ce588Hp1.net]
全部やれ

880 名前:デフォルトの名無しさん [2018/07/24(火) 18:20:36.91 ID:WBO96fmU.net]
最後までやれ

881 名前:デフォルトの名無しさん mailto:sage [2018/07/24(火) 20:40:39.40 ID:6SRwrowy.net]
例えがドラゴンボールではないからだろ



882 名前:デフォルトの名無しさん [2018/07/27(金) 22:10:24.05 ID:jesqHVAc.net]
MVC, DAO, O/Rマッピングの発展形として、
俺は「R/Rマッピング(リクエスト/リレーショナルマッピング)」を
提唱したい。
そもそもDB上のカラムと本当に対応付けたいのは画面上のname属性
なんだよなぁ。
オブジェクトを必ず介する必要はない。
(処理が込み入ってきたら定義してもいい程度。)
まず前提として、DBのカラム名とHTML上のname属性を
必ず同じキーにすることを前提とする。(HTML上に関係ない
キーがあっても問題はない。)
その前提の上でDBのカラム名一覧を先に取得しておき、
カラム名リストと、受信したname属性のキーをマッチングして、
マッチングした時にそのキーから取得した値をSQLに突っ込んで
クエリを行う。
こうすることによって、プログラミング言語処理の中で
具体的な「項目名」をほとんど登場させずに処理することができる。
自分でやったらすごく便利だった。
こうなるとそもそもモデルとかDAOとかいらなくね?
ってなって来たよ。
項目数がどんなに二十, 三十と並んでいようがダラダラと羅列しない。
特別な処理を入れたいときだけその項目のカラム名を使って
ifで分岐して日付変換とかをおこなう。
その特別な処理も日付,範囲系、選択肢系などパターンを押さえれば、
めちゃめちゃ簡素化できる。

883 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 22:35:03.11 ID:d6sXPNYF.net]
あ、はい、4行ぐらいしか読んでないけど、
そのリクエストに含まれる名前 = オブジェクトのフィールド名なんだから
あんたが言ってるリクエスト = オブジェクトってこと

あとはストレージをなんにするかの話。
ODBMS(オブジェクトデータベース)を使えばそのまま読み書きできる
だけど、なんやかんやでリレーショナルデータベースを使わないといかんから
O/Rマッピングが必要になる

884 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 22:38:45.06 ID:d6sXPNYF.net]
>>886
あとRailsでも勉強しようね
普通は画面のname属性 = データーベースのフィールド名になってるから
(もちろん必要なら対応してないものも作れるけど)

885 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 22:58:52.80 ID:HpMLTKup.net]
二層CRUDオモチャ
昔から誰もが一回は考えるアイデアだよ

画面起点だとどうしてもアプリケーションロジックの居場所がないから簡単に作れてもアプリとしての価値が無い
DB起点だとSQLにアプリケーションロジックを埋め込んんで最低限のアプリの体裁は保てるけど保守性が最悪で使い物にならない
という理由から廃れた

なので今はオブジェクト指向の言語でモデルを書いてモデルから画面やDBを生成して微調整しようってのがスタンダード
これなら労力をかけずに豊かな振る舞いを持つアプリケーションを作れるしロジックがモデルに集まるから保守性も高い

886 名前:デフォルトの名無しさん [2018/07/27(金) 23:43:33.59 ID:jesqHVAc.net]
>>869
モデルを作るとしても処理が複雑になる部分だけ
部分的でいいんじゃないか?
全ての要素に対して網羅的にモデルつくって
セッター/ゲッター定義して...ってのは肥大化して馬鹿げてる
気がするんだが。
なにせ機能を複製する時にこれらのずらずら並んだモデルオブジェクト名や
キーの名前をを置換しなけりゃならない。
ならない。

887 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 23:51:45.25 ID:d6sXPNYF.net]
> セッター/ゲッター定義して...ってのは肥大化して馬鹿げてる
それはJavaだけ
Javaが馬鹿げているだけ

888 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 23:52:00.90 ID:d6sXPNYF.net]
だからいい加減Railsとかを勉強しろと

889 名前:デフォルトの名無しさん mailto:sage [2018/07/27(金) 23:55:06.84 ID:h+bQHJad.net]
.NET Coreにしとけ

890 名前:デフォルトの名無しさん [2018/07/28(土) 02:15:45.58 ID:kGN2HSKI.net]
>>859
さてリンゴをむくか、
ピーラーがないと剥けないから探すか、
あれ、どこにしまったかな?
この引き出しにもこの棚にもない。
道具だらけで見つからない。
店に買いに行こう、たくさんのピーラーが並
んでいてどれを選ぼうか?
ようやく買ってきて構築しているけど、
どうや刃が付け替え式で色々な刃が付け替えられる
ようだ。
刃を買い忘れたからまた買いに行くか…
はぁはぁ…すごい刃を買ったぞ!今構築中だ。
おや?この刃はリンゴを剥く用途には対応して
ないようだ。もう疲れたしこれ無理だろ。
ピーラーが無いから俺にはリンゴを剥くのは
無理だ。前は引き出しにあったからむけたけど
今はできなくなった。

一方、いつも愛用のナイフで剥いてるならそう
はならない。
いつもポッケに入れているからなくさないし、
最悪自作で調達できる。
使い慣れてるからピーラー使うやつと遜色ないスピードで剥けるし形も綺麗に剥ける。

891 名前:デフォルトの名無しさん mailto:sage [2018/07/28(土) 02:38:56.80 ID:Wq9fNSFf.net]
Rails なんか、全自動!

DB の表の構造が定義された、メタテーブルを参照して、
表の列名なども自動的に取得する



892 名前: mailto:sage [2018/07/28(土) 03:14:15.05 ID:AqK1vkX7.net]
>>873
Windows 上で構築できますか?

893 名前:デフォルトの名無しさん mailto:sage [2018/07/28(土) 07:06:05.64 ID:rUA3L/4N.net]
>>870
それでずらずら並んで嫌だというなら、おまえのやり方だと画面定義もずらずらならぶし、テーブル定義やSQLがずらずら並んで更にわけわからなくなるだろ

894 名前:デフォルトの名無しさん mailto:sage [2018/07/28(土) 09:41:18.41 ID:Z4XsBwkZ.net]
>>876
できる

895 名前: mailto:sage [2018/08/11(土) 11:14:19.06 ID:vW2Ha+vq.net]
>>878
やりかたは?

896 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 11:16:30.51 ID:CORkkjHt.net]
>>879
住民税納めてる?

897 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 11:20:01.67 ID:mZzpchFU.net]
>>879
https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial

898 名前: mailto:sage [2018/08/11(土) 11:23:26.77 ID:vW2Ha+vq.net]
>>880
固定資産税なら5月に収めました

899 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 13:12:12.75 ID:eIyvbe4d.net]
>>882
固定資産もってるんだスゲー(笑)

900 名前:デフォルトの名無しさん [2018/08/16(木) 01:50:12.60 ID:c6C4Pdqe.net]
最も重要ななのはアルゴリズムとデータ構造
次にI/O
つぎに無名関数やハンドラ、イベント駆動
つぎに並列、非同期処理
その次は画像処理とか3Dとか
ディジタル信号処理またいな各ドメインの専門
技術。
オブジェクトやクラスなんてこれらを達成する
上での手段でしかない。
それ以上のオブジェクト指向の設計思想は
もはや宗教。
唯一絶対に正しいわけでもないし
概念を余計に複雑にするだけ。
SQLやHTML XMLやJavaScript シェルスクリプト
URLなんかが絡んでくるとグダグダに崩壊
するものばかり。
そして現代のアプリケーションはこれら無しで
作るのは無理だからオブジェクト指向の高度な
技法はほどんど不要。

901 名前:デフォルトの名無しさん [2018/08/16(木) 10:35:20.66 ID:wiNukf+g.net]
NoSQLω



902 名前:デフォルトの名無しさん mailto:sage [2018/08/16(木) 14:12:13.61 ID:sOMWRYDA.net]
NoSQL db って、Redis以外はわりと滅びた感じ。
RDBでもスキーマレスなデータ

903 名前:扱えるようになったし、
トランザクションあった方が便利なことやっぱり多いし、
SQLってなんだかんだ言って表現力高いし。
[]
[ここ壊れてます]

904 名前:デフォルトの名無しさん [2018/08/16(木) 21:39:02.86 ID:xTRm/dST.net]
pythonスレにも書いたのですが、pandasのMultiIndexにしたデータのままで、データを追加したり、値を更新したり、csvに入出力する方法をご存知の方はいませんか?

905 名前:デフォルトの名無しさん mailto:sage [2018/08/17(金) 05:33:12.57 ID:kMdEBKXA.net]
マルチ

906 名前:デフォルトの名無しさん mailto:sage [2018/08/18(土) 16:47:45.36 ID:Misswrnn.net]
マルチインデックスだけに

907 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 13:56:25.55 ID:Opme7aq9.net]
>>886
その辺はクラウドに吸収されたよ

908 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:04:12.93 ID:85QcXChJ.net]
クラウドだけに雲散霧消

909 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 08:51:55.17 ID:rDVjwTPV.net]
クラウドってなんだっけ?

910 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 11:43:20.70 ID:oFGqb4Dq.net]
興味ないね

911 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:02:43.50 ID:Ecv/l33V.net]
雲の中にトレーラーがいっぱいあること



912 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 11:59:51.59 ID:t35BnR1i.net]
>>893
チリチリしてろ

913 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 11:36:30.01 ID:jf9m7XuW.net]
AOJ の「DPL_1_I: Knapsack Problem with Limitations II」が分からん。

個数制限付きナップサック問題の
・ある品物の重さと個数制限
・ナップサック容量
が極めて大きいバージョン。


例えば解法
judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2856557#1
を見ると、品物の価値の総和が i であるときの最大容量を記録した動的計画法テーブルを作った後に貪欲法で答えを出してるんだが
・なぜこの方法で上手くいくのか
・前半の動的計画法で、品物の個数を min(m[i], MAX_V) としている (できる) 理由が分からない。


誰か知恵を貸してください。
僕としてはこの解法が理解できれば満足です。

914 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:30:03.75 ID:OpvYfh8N.net]
>>896
数学からやり直したほうがいい

915 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:38:34.35 ID:AAPeDezt.net]
>>897
どういう意味?
「このアルゴリズムを理解するのに必要な数学の分野」というものがあるならそれを参照するが、そんなものはない (挙げられないでしょ?)

俺個人の専門は物理で、「数学の勉強」というものも一応してきたが、このごく具体的な問の一解法を理解することと「数学の勉強」は関係がない

単純に論理的思考力を上げよ、と言っているなら会話になっていないのでこれ以上は結構

916 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 16:59:47.21 ID:rxoSSaq5.net]
論理的思考力を上げるために将棋をしなさい。数学など不要です。

917 名前:デフォルトの名無しさん [2018/08/30(木) 18:00:22.07 ID:RB/Vojpj.net]
うむ

918 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 18:13:22.55 ID:OpvYfh8N.net]
>>898
DPは数学的に求まるよ

919 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 18:43:47.20 ID:nhWZJRvT.net]
>>898
数学科の数学と物理科の数学とコンピュータの数学は違う(笑)

920 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:55:53.34 ID:dq2VmAiX.net]
>>901
最適性の証明のことを言ってるの?
いずれにせよこの問題に限った話じゃないよね?
別に動的計画法が上手くいく理由が分からないと言っているのではなく、>>896の解法が分からないのだが。



>>902
違わない
算術、代数、幾何、解析だ全て

921 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:59:32.89 ID:rxoSSaq5.net]
例えば、バブルソートには
数学の、えっと、幾何?の知識が必要だろ?
え?



922 名前:デフォルトの名無しさん [2018/08/30(木) 20:02:00.51 ID:JJE0QqNc.net]
フローチャートでも書けよバカ。

923 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 20:07:14.70 ID:dq2VmAiX.net]
>>905
無論書いたが分からん

924 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 20:55:16.95 ID:LfSXnVaM.net]
>>903
やったことないだろ(笑)

925 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 20:58:00.20 ID:LfSXnVaM.net]
単に頭が悪い見栄っ張り

926 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:05:25.02 ID:fZXCQKMc.net]
>>906
分からんと思っているだけでは進まない。

なにを目的にして、どのようなフローチャートを描いて、
その結果なにが理解できていて、なにがまだ理解できていないのか、
可能な限り事細かに洗い出して、自分の理解の最前線を特定してみるといい。

と言うことを、私は数学で学んだ。

927 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:18:12.57 ID:51/MDOyO.net]
数I?数II?

928 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:43:49.44 ID:HM7SCTN2.net]
>>909
だからそれは>>896の時点で書いてるんだが
関係ないことしか言えないならレス不要です


>>907
何を?

929 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 00:40:53.58 ID:/Xr6ByPq.net]
俺の周りで物理やってる人はとんでもなく数学ができる人ばかりなのに

930 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 00:57:19.27 ID:1Yp+WIrl.net]
まあゲームじゃない限り物理なんて使わないよね
本格的な物理系シミュレーションとかだと
専門家が担当するだろうし

931 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 01:02:18.59 ID:avsEGe4h.net]
この程度の問題で数学数学言ってるアホ多過ぎて呆れる

多分>>910みたいな感じで高校の算数基準で話してるんだろうな



932 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 01:09:41.75 ID:6Alav1/S.net]
そんなに言うのなら、具体的に数学のどの分野なのか
それが具体的に何と同じなのか言えって。
どうせ論理的思考力がーみたいな精神論しか言えないんだろ

933 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 07:21:05.29 ID:wT3DulcX.net]
数列、非線形解析学
はい言いました
論理的思考力が無いのはあなたですね

934 名前:デフォルトの名無しさん [2018/08/31(金) 07:23:04.73 ID:KNbvu5CI.net]
どうしてこうなった

935 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 09:04:32.63 ID:csqJsH/K.net]
>>916
では、数列、非線形解析学を利用した
アルゴリズムを答えてください

936 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 09:05:36.36 ID:csqJsH/K.net]
ちなみに、数列は高校数学である

937 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 11:52:41.02 ID:5OSgw2nY.net]
>>918
>>896

938 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 12:44:50.11 ID:DXKxWv2O.net]
>>920
数学の問題をコンピュータで解決するってのはわかる、
だが数学・物理特有の問題以外をコンピュータで解決するのに
数学はいらねーだろって話

939 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 14:32:18.54 ID:5OSgw2nY.net]
>>921
微分積分も理解せずにコンピュータに信号処理をやらせるの?
そういうレベルの質問

940 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 14:39:40.99 ID:DXKxWv2O.net]
信号処理なんて、誰がやっても同じなんだから
一度ライブラリ作って、他の人はそれ使うだけだろ・・・

941 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 16:28:19.03 ID:5OSgw2nY.net]
>>923
それじゃあ初音ミクは生まれないね
こういうやつが技術を停滞させる



942 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 18:49:37.43 ID:DXKxWv2O.net]
>>924
だからそういうのは専門家に任せたほうが良くね?

音声合成をやる人は、そういう専門家に任せて
他の人は便利なインターフェースを作るとかさ、
なんでも1人でやるもんじゃないよ?

943 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:18:52.92 ID:5OSgw2nY.net]
別にそういう原理を知りたくないんなら勉強しなくて良いんじゃない
表面的なものしか作りたくないなら勉強しないことをおすすめします

944 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:24:24.23 ID:DXKxWv2O.net]
>>926
だから作る層が違うって言ってんの
水道局で働いてる人全員が
工事技師じゃないんだよ

945 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:27:43.29 ID:5OSgw2nY.net]
>>927
つまり君はそういう層にはなるのを拒む側ってだけだ

946 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:05:55.05 ID:OUCwI4mz.net]
>>928
その理屈で言えば、君がそういう層になりたいだけでは?

残念だけど、自分がやりたいことと、他人がやってもらいたいこと
っていうのは同じじゃないんだよね

そして給料っていうのは、他人がやって欲しいことをやった対価として
もらえるものなので、いくら自分がすごいことができるって言ったからって
給料は高くならないんだよね。

947 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 00:41:52.18 ID:GjC7kJfb.net]
>>929
作りたいものがあるから勉強する、それだけ

948 名前:デフォルトの名無しさん [2018/09/01(土) 09:56:42.06 ID:pu0WuyWZ.net]
うむ

949 名前:デフォルトの名無しさん [2018/09/01(土) 10:48:54.59 ID:iQmzKze8.net]
自分一人で作るような小さいアプリとかなら、
全部を知っておかなければいけない、って思いたくなるのもわかる。

が、通常は数学の専門家でも無い人間を数学で信用する事は無いし、
プログラムの専門家でも無い人間をプログラムで信用する事は無い。

付け焼き刃は事故の元。
大きな仕事になればなるほど役割や責任が細分化される。

950 名前:デフォルトの名無しさん [2018/09/01(土) 12:24:44.93 ID:rDlJp/s7.net]
ぼやっとして結局何を言いたいのか良くわからんが
何か良い事を言いってみたい必死さは伝わった

951 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:52:20.45 ID:mPcVbgud.net]
え?言いたいことがわからんの?



952 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:01:11.42 ID:8oBLXasx.net]
そりゃあ馬鹿の言ってることは分からんだろ

953 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:13:44.90 ID:mPcVbgud.net]
言ってることがわからんから、言ってるほうが馬鹿だと思ってるだけじゃないの?
俺に言わせれば、馬鹿だから言ってることがわからないんだと思うが?

954 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:42:02.18 ID:8oBLXasx.net]
俺に言わせれば世界はお前を中心に回ってないってこと

955 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:47:09.53 ID:mPcVbgud.net]
>>937
お前を中心に回ってるといいたいのかな?

956 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:37:08.16 ID:8oBLXasx.net]
>>938
>>936

957 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:47:05.92 ID:mPcVbgud.net]
>>939
俺のレスがどうした?

958 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 02:27:34.18 ID:Tt3u8CpR.net]
アルゴリズム辞典みたいなものを手元に置いときたいんだが、最も支持されてるのってどれ?


・網羅性が高い
・支持されている(売れている)
・日本語版がある
・コード例はあってもなくても良くて、あるとしたら C/C++ か擬似コードで
という条件で
テーマ別に「どれとどれとどれを持っとけばまず問題ない」という言い方でもありがたい
とにかく網羅性を重視してる

959 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 07:04:17.98 ID:OlESf3Ok.net]
英語は知らんけど、日本語なら
[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)
奥村 晴彦
amzn.asia/d/bAqY5Be
が網羅性は随一じゃないかな。
改訂だけど初版が1991年で、収録アルゴリズムは増えてないらしいので、
機械学習とかここ25年の新分野は当然入っていない。

960 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 07:32:26.75 ID:/VBaeORw.net]
機械学習の何をアルゴリズム辞典に入れるべきだというのか

Amazonレビューかよテメェは

961 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 07:36:36.34 ID:5tN3iveh.net]
>>942
この本はBoyer-Moore法が簡易版しか載っていないし、Aho-Corasick法も載ってないから弱い



962 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 08:37:54.35 ID:HF+7qfHp.net]
より網羅的な対案示してからでないと批判にならないよ。

共立のアルゴリズム辞典が現存すればこっちも挙げてたかもしれん。
BM法に関してはコード例は簡略版のみだが。

個別のアルゴリズムについてどこまで踏み込むかは、
辞典の物理的な性質上取捨があるのはしかたないでしょ。

963 名前:デフォルトの名無しさん [2018/09/04(火) 10:34:21.16 ID:gEGTZvcA.net]
>>943
+1

964 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 10:36:29.76 ID:ROt4XEkp.net]
名前がついていて解放も明らかになってるアルゴリズムに興味はない
そんなのいくらやっても新しいものは生み出されない

965 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 14:25:14.21 ID:JAXadswE.net]
>>947
先輩、かっけぇっす

966 名前:デフォルトの名無しさん [2018/09/11(火) 14:44:06.44 ID:O54onciS.net]
質問させてください。
マイコンからAD変換で入力したサイン波を配列に格納し、周波数を求めたいと思います。
ゼロクロスの位置を求めれば正確に周波数を求められそうですが、教えてください。
https://i.imgur.com/FC5XP0K.png

967 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 16:27:37.38 ID:zEn+kcA0.net]
質問が不完全だけど、そのためのアルゴリズムを教えてほしいということでよい?

前提として、各周期で確実に2回だけゼロクロスすると保証できるのなら、
前回の値を覚えておいて、今回との積が0以下になったらゼロクロス。

この保証がないのなら十分長く波形をとってFFTしてピークを探す。

968 名前:デフォルトの名無しさん [2018/09/11(火) 22:09:31.90 ID:i7axZbyN.net]
♀だったらセクロス教えてやる

969 名前:デフォルトの名無しさん [2018/09/11(火) 22:11:28.88 ID:4O7I7zcY.net]
え!?童貞なのにセクロスを!?

970 名前:デフォルトの名無しさん [2018/09/12(水) 03:44:12.77 ID:gw3HbkUV.net]
できらあ!

971 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 07:05:35.15 ID:Jy3sklaz.net]
それページ逆だぞ



972 名前:デフォルトの名無しさん [2018/11/05(月) 18:00:44.74 ID:ajh0QscM.net]
有向グラフの有向閉路を求める問題です。

深さ優先探索を実行したときに、 Backward Edge が存在する。



有向閉路をもつ



⇒は自明ですが、逆はどう証明するのでしょうか?

973 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 20:50:16.30 ID:wBSUle4B.net]
深さ優先、幅優先探索を理解するのにオススメの本ってありますか?(コードサンプル付きでできればC)

974 名前:デフォルトの名無しさん [2018/12/04(火) 09:57:38.19 ID:euG8Im7Y.net]
https://www.amazon.co.jp/dp/4874084141

975 名前:デフォルトの名無しさん [2018/12/04(火) 10:14:50.08 ID:GTmuusXQ.net]
>>957

全くおすすめできません。その本。

976 名前:デフォルトの名無しさん [2018/12/04(火) 10:27:11.51 ID:GTmuusXQ.net]
>>956

グラフ・ネットワークアルゴリズムの基礎: 数理とCプログラム
浅野 孝夫
固定リンク: amzn.asia/d/2MetXvf

977 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 11:20:17.46 ID:6CbA0WHr.net]
馬鹿アスペの推奨w

978 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 14:19:52.12 ID:X/ZQLD1J.net]
学ぶ目的には全くお勧めできないってのはその通りだけど、
手元に置いておいて使う分には便利な本ではあるような。
あ、浅野先生の本も待ってます。
(この分野、浅野先生が2人いて紛らわしい)

979 名前:デフォルトの名無しさん [2018/12/04(火) 14:28:35.23 ID:GTmuusXQ.net]
>>956

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
渡部 有隆
固定リンク: amzn.asia/d/g8qmfS6

↑この本にも、 BFS、DFS共に書いてあります。

解説は非常に雑ですが。

980 名前:デフォルトの名無しさん [2018/12/04(火) 14:33:05.75 ID:GTmuusXQ.net]
>>959

の本には、再帰を使う DFS プログラムが書いてあります。(スタックを使う DFS プログラムは演習問題にあり、コードをダウンロードできます。)

981 名前:デフォルトの名無しさん [2018/12/04(火) 14:34:21.14 ID:GTmuusXQ.net]
>>963

スタックを使う DFS プログラムは演習問題にあり、コードをダウンロードできますし、本にも解答のところにコードが載っています。)



982 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 14:39:02.72 ID:eKuwOju4.net]
前置記法(ポーランド記法) + 1 2
後置記法(逆ポーランド記法) 1 2 +
中置記法 1 + 2

確か、構文木をたどる時に、どれかが幅優先で、どれかが深さ優先探索になると、記憶している

983 名前:デフォルトの名無しさん [2018/12/05(水) 13:24:47.73 ID:2sSegHBZ.net]
shaderって何回書き換えてもメモリ壊れない?

984 名前:デフォルトの名無しさん [2018/12/05(水) 21:47:02.62 ID:xYhP2Ga4.net]
テンプレのソース探検なんちゃらのサイトいいね
pdf買えはうざいけど

ソートはクイックマージヒープの特性くらい押さえとけば良さそうな感じだな
そこら中に実装あるしまあ
バケットソートは聞いたこと無かったけど、これは局所で凄い威力発揮しそうだ
覚えとく価値ありそう

985 名前:デフォルトの名無しさん [2019/06/19(水) 04:49:26.98 ID:tVNS+22r.net]
【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/

986 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 12:48:16.96 ID:LiTO8m+L.net]
O(n)で中央値を求めるアルゴリズムを思いついた

987 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 01:21:11.30 ID:buSsFrEd.net]
クイックセレクトのこと?

988 名前:デフォルトの名無しさん [2020/01/13(月) 02:33:48 ID:D6MgPK0q.net]
こんにちは、初質問させていただきます、グラフアルゴリズム初心者です

・無向グラフGが入力として与えられる(ファイルからでも、コード内での手打ちでも、どちらも良い)
・Gがサイクルを持てばGの中の最小サイクル(長さが最も短いサイクル)とそのコストを出力する
・各辺、頂点の重みは考えなくても良い(つまり辺のコストは1とする)
といったアルゴリズムを実装したいです。
できればC言語もしくはC系統の言語でコーディングしたいです。

考え方と共に、コーディング例をご教授いただけると幸いです。

浅い知識ではありますが、この実装に必要そうである
・DFS,BFS
・ダイクストラ、ベルマンフォード
に関しては、基礎レベルは把握しています。

お手数おかけしますが、ご助力いただけると幸いです。

989 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:31:10.60 ID:6QaMEdT1.net]
適当に言うけど、

すべての辺を1回だけ通りながら、通った頂点を記録していく
それで同じ頂点を、2回以上通ったら、閉路がある?

990 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 12:21:39.99 ID:jqPh5nAm.net]
>>971
グラフのサイズが書いてないと答えられないな

991 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:32:08.60 ID:D6MgPK0q.net]
>>973
条件不足で申し訳ございません

グラフサイズの制約は特に設けないものとしています。
とりあえずは最大でも100頂点程度で考えています。

お手数お掛け致しますが、よろしくお願いします。



992 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:32:16.76 ID:D6MgPK0q.net]
>>973
条件不足で申し訳ございません

グラフサイズの制約は特に設けないものとしています。
とりあえずは最大でも100頂点程度で考えています。

お手数お掛け致しますが、よろしくお願いします。

993 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 17:13:44.37 ID:jqPh5nAm.net]
>>975
頂点数をn,辺数をmとする
ある頂点uを含んだ最小閉路は頂点uからbfsをすればO(n+m)で求められる(最初にuに戻ってきたときの経路が最小)
あとはすべての頂点に対してこれをして,その中から一番短いものを選べばいいので,全体でO(n(n+m))で求められる

994 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 22:42:08.62 ID:D6MgPK0q.net]
>>976
ありがとうございます。

つまり、例えば
各頂点を始点-終点とするダイクストラアルゴリズム処理を行えば良い
ということでしょうか。

995 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 23:30:01.64 ID:jqPh5nAm.net]
>>977
イメージとしてはそんな感じです
辺を考えたほうがわかりやすいかもしれないです

ある辺(u-v)を含むようなサイクルの中で最小のものを求めたいとします
まずグラフから辺(u-v)を除去します.このグラフ上でuからvの最短距離dを求めます
すると,d + 辺(u-v)が辺(u-v)を含むサイクルの中で最小のものとなります

グラフの中で一番短いサイクルは辺(u-v)を含んでいるかはわからないので,すべての辺に対して上の操作を実行します
その中から一番短いものを選べば,それがグラフの中で一番短いサイクルです
この場合だとO(m(n+m))です

996 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 13:45:14.74 ID:oHYk5H5Q.net]
>>978
ありがとうございます。
ご教授いただいた考えをもとに、ダイクストラ法を用いて実装してみました。
・ダイクストラ(グラフは頂点とコストで表現)
https://ideone.com/bXF0iQ

また、以前似たものを実装したのですが、これはダイクストラ(もしくはBFS)の考えに則れていますでしょうか・・・?
(グラフは隣接行列で表現)
https://ideone.com/snxvav

どちらにしても、始点と終点が同一でない場合はうまくいくのですが、
始点と終点を同一として閉路で求めようとすると、うまくいきません。
自己ループ辺のコストが0であるから、と思い9999などにしてみましたが、うまくいきませんでした。

すごく単純なミスなのでしょうが、詰まってしまっている状態です。
修正等いただけると幸いです。

一応、(可能であれば)望む仕様と結果としては
・グラフは隣接行列で表現
・辺の重みは非負である(今回、簡易化のために辺の重みは1~9)
・グラフサイズは制限しない(今回、簡易化のために10頂点程度)
・ダイクストラを用いて自分自身を始点かつ終点とする最短経路を求める
・各頂点に対して上のダイクストラを行い、中でも最短の閉路の経路とそのコストを表示する

です。

お手数をおかけしますが、よろしくお願いします。

997 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 16:39:42.37 ID:Ex9G0OLU.net]
>>979
>>971だと辺のコストは1となっているが,実際は辺に1以外のコストがある?
求めたい最小サイクルというのは,使う辺の本数が最小という意味なのか,使う辺の合計コストが最小という意味のどちらなのか

998 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 21:49:25 ID:oHYk5H5Q.net]
>>980
コストは1だと申し上げましたが、
ダイクストラなので非負であれば求まると思い、汎用性を考えて1以外のコストも付与してみました。
説明不足で申し訳ございません。

999 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 23:25:41 ID:Ex9G0OLU.net]
>>981
無向グラフだと面倒くさくて,uからvにいったあとvからuにいくような場合がでてくるのでこれを除かないといけない
そのような経路を除いたうえで始点に戻ってきたものが最短になる
ある辺が2回使われることはないので,辺は1度しか使えないようにすればいいと思う

1000 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 23:28:15 ID:Ex9G0OLU.net]
https://www.geeksforgeeks.org/shortest-cycle-in-an-undirected-unweighted-graph/
これとかわりとそのままだな 重みなしだけど

1001 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 23:56:14 ID:Ex9G0OLU.net]
https://www.geeksforgeeks.org/find-minimum-weight-cycle-undirected-graph/
こっちは重み付きのやつ



1002 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 22:58:37.26 ID:iLU56BHo.net]
>>983
>>984

ありがとうございます。
コストだけでなく、経路も出力したいのですが、弄ってみてもなかなかうまくいきません...。

1003 名前:デフォルトの名無しさん [2020/01/19(日) 12:55:00.98 ID:VFlG/sWR.net]
CLRSのダイクストラのアルゴリズムの正しさの証明を読み終わりました。
行間が全くなく、確かに、正しいことは分かりますが、あまりイメージのわかない証明ですね。

CLRSって他の本と比べると異常に行間がないですよね。

1004 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 15:11:46.01 ID:+ZQhvd/Y.net]
巨大なsparce行列(ゼロ要素が多い行列)で行列演算やるときデータ構造考えるよね

1005 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 17:27:30.27 ID:/b+J8VIk.net]
>>985
どのへんがわからないか言ってくれ
Find minimum weight cycle in an undirected graphは
int Graph :: ShortestPathでu-vを削除したときの最短経路を求めてる
このときdist[v]が更新されるたびにvにきたノードをメモしておけば最後にvからprevをたどって復元できる
このときの経路をvector

楽な実装方法は,グローバル変数にこれまでの最短経路の距離とルートをもっておいて
常に最短のものを保存しておけばいい

1006 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 17:28:22.60 ID:/b+J8VIk.net]
途中で送信してしまった
このときの経路をvetorにいれておけばいい

1007 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 23:49:17 ID:Q85YRMjK.net]
>>988
正直、C++の知識不足で勉強を頑張ってはいるのですがVectorの使い方がまだ、慣れていません。。。

厚かましいのは重々理解しているのですが、可能であればFind minimum weight cycle in an undirected graphのプログラムを>>988さんなりに改変したものをお教えいただけると幸いです。。。

悪い勉強法とは分かっているのですが、答えというか実装例が無いとなかなか理解できなくて。。。

1008 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 01:32:16.02 ID:63DOpTVc.net]
言語の基本的な部分はさすがによそでやろうや・・・

1009 名前:デフォルトの名無しさん [2020/01/26(日) 13:25:18.52 ID:eN1PAkvI.net]
>>990

https://ideone.com/pShuim

↑一応動きました。
piという変数に経路を覚えさせています。

1010 名前:デフォルトの名無しさん [2020/01/26(日) 13:32:46.65 ID:eN1PAkvI.net]
>>990

piについては、

Cormen, Leiserson, Rivest, Stein著『Introduction to Algorithms 3rd Edition』の最短路の章を見ると、

書いてあります。

1011 名前:デフォルトの名無しさん [2020/01/26(日) 13:47:50.10 ID:eN1PAkvI.net]
アルゴリズムとデータ構造ってコンピューターサイエンスの分野で人気ないんですか?



1012 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 16:03:48.66 ID:gJO14xRt.net]
>>994
ネット以外だとデータ構造とアルゴリズム好きな人見たことないな
CS系だと機械学習やってるやつが多い

1013 名前:デフォルトの名無しさん [2020/01/26(日) 16:28:11 ID:eN1PAkvI.net]
>>995

ありがとうございます。

機械学習は非常に流行していますが、勉強するのに面白い分野だとは思えません。

1014 名前:デフォルトの名無しさん [2020/01/27(月) 12:15:36 ID:Dkceayzl.net]
DAGの単一始点の最短経路問題を解くアルゴリズムとか
Bellman - Fordのアルゴリズムとかの正しさの証明が非常
に面白いですね。

1015 名前:デフォルトの名無しさん [2020/01/27(月) 17:15:29 ID:Xu7tzl7q.net]
>>996
+1

1016 名前:デフォルトの名無しさん [2020/01/27(月) 17:16:05 ID:Xu7tzl7q.net]
>>997
-1

1017 名前:デフォルトの名無しさん [2020/01/27(月) 17:16:23 ID:Xu7tzl7q.net]
>>999
+1=1000

1018 名前:1001 [Over 1000 Thread .net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1317日 2時間 28分 54秒

1019 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<282KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef