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

■ このスレッドは過去ログ倉庫に格納されています
2016/06/19(日) 14:47:29.63ID:5KvSKdL/
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所

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

【関連スレ】
3Dアルゴリズム全般
http://toro.2ch.net/test/read.cgi/tech/1164171086/
<集大成>アルゴリズム大辞典
http://toro.2ch.net/test/read.cgi/tech/1086272325/
アルゴリズム総合スレ in ム板
http://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
2016/06/22(水) 13:50:41.86ID:WHe3DbmR
>>44
1単語に3箇所もミス入れるなよ
2016/06/22(水) 14:13:53.39ID:sEqYA8cS
根幹のタームの綴りも知らん半可通に何を教われというのか
2016/06/22(水) 14:17:48.79ID:yBOVYSwe
3ヶ所もあると誤り訂正も利かないんじゃまいか
2016/06/22(水) 14:22:16.34ID:EwWgL4+X
バースト発生させんな
2016/06/22(水) 15:16:40.79ID:2z7j8yec
????????????
2016/06/22(水) 21:44:16.49ID:MWgF3eo3
>>44
そんな頭じゃ使いものにならんのも頷けるわ
2016/06/22(水) 22:23:26.91ID:Z2xvvdgM
こんな揚げ足とりの老害から何を学べと?
2016/06/22(水) 22:52:24.12ID:X6XCfxlz
馬鹿の自己紹介されても困る
2016/06/24(金) 11:47:43.21ID:hSLmnyaY
>>19
は?変なのはお前だ
プログラミングは最初から工学的だろ何言ってんだ?

そもそもお前は工学と科学を理解してないから可笑しなことを言うんだ
2016/07/15(金) 12:10:18.78ID:P21uCIN+
何ヶ月か前に近代科学社に電話でセジウィックアルゴリズムの第四版の翻訳の予定はありますか、と訊いてみたが無いって返事だったんだよな
書いて欲しいんだがな
2016/07/16(土) 08:00:53.05ID:Akpk7DL9
アルゴリズムさえ知ってりゃ動くプログラムは書けるから他は優先度低いと考えてた結果
データ構造すら分からない化石プログラマになってしまった

今必死にデータ構造とデザインパターン勉強中だけど、わかってくると楽しいね

アルゴリズムみたいにオーダー詰める楽しみはないけど…
2016/07/18(月) 09:37:52.19ID:YPoLSDg9
両方大事だろ。
データ構造が整理されてないとアルゴリズムも煩雑になるし。
57デフォルトの名無しさん
垢版 |
2016/07/21(木) 23:06:49.37ID:TpMXx+Na
vEB木の「僕の考えた最強のデータ構造」感が大好きなんだが誰か共感してくれる人いる?
2016/07/22(金) 07:32:19.08ID:ot11jjQx
データ構造の基本は、以下の2つと、他にはハッシュがある

A → B → C → D
のように、メモリ上の位置がバラバラなオブジェクトを、リンクでつないでいくものと、
(シーケンシャルアクセス)

ABCD
のように、連続したメモリ位置に、オブジェクトやオブジェクトの参照が確保されていて、
単純な計算式で、各オブジェクトにアクセスできるもの(ランダムアクセス)

シーケンシャルは、リンクをたどるから、アクセスには時間がかかるけど、
要素の追加・削除では、リンクを付け替えるだけで、要素をずらさないから速い
2016/07/26(火) 06:56:53.95ID:HN1KCMsQ
letの時代がもうすぐそこまで来ているよね
2016/07/26(火) 14:27:18.12ID:z5g/0KTZ
let
-------
 λ
2016/09/23(金) 22:08:49.88ID:oKXONAGb
どうも、お久しぶりです。スモモンガーです。(誰って感じだと思いますがそれで結構です)
以前紹介したアルゴリズムですが、結局全然応用分野は見つかっておりません。
前回は画像処理分野を中心に解説しましたが今回はより簡単に実装ができる
探索分野に絞って動画を作ってみました。つたない動画で大変申し訳ございませんが
見てみていただけたら幸いです。特許などは取得しておりませんのでどうかご自由に
お使いください。長文失礼いたします。痛いのは承知なのですが応用分野を必死に
探しているのでどうかご協力よろしくお願いします。

https://youtu.be/5m3kPHO2w98

以上、どうぞよろしくお願いします
2016/09/23(金) 22:16:41.76ID:xWgfj234
誰だ
2016/09/23(金) 22:42:52.63ID:fJ2M8QeM
帰れ
2016/09/24(土) 09:14:59.70ID:osPXZH57
>>61
最初の数分見ましたが..

1) 何の探索なの?最初は「探索」と聞いて「グラフかな?」とか思ったけど配列みたいだし、最初に想定される入力を明確にした方がいいですね

2) プレゼンが文章を読み上げてるだけでイメージが湧きにくい
1,4,10,20,25 …
の例ではイラストを用いた方がわかりやすいと思います

3) Kangaroo Method とはのスライドでデータがソートされていて、キーの差が (中略) バイナリサーチと同等の効率を .. とありますが、例では入力が完全にソートされているようです。これなら最初からバイナリサーチを使います

また、11m10s くらいのところで「Sinカーブは整ってる」とありますが、「整っている」の定義がよくわかりません。その後の例も見ましたが、どのくらいまで途中に想定されていないデータが混じっていても許容範囲なのかが不明です

4) 先に長所短所のスライドを持ってきて、擬似コードとオーダーも明記し、「一部ソートされてなくても O(logn) で探索できます」みたいなのを書いて、見ている人を「それならもうちょっと続きを見てみようか」みたいな気にさせられればもっといいですね

以上、感想でした
2016/09/24(土) 09:32:41.92ID:n5/uj8Su
64さん。ありがとうございます。私はこういうスライドを作る機会があまりないのでこんな形になってしまいました。
実は整っているという抽象的な単語を使っていますが、実は定量的にこれを測る方法はまだ思いついていません。
そのほかのご指摘はその通りだと思います。
貴重なご意見ありがとうございます
2016/09/24(土) 09:49:16.96ID:B225F1SQ
動画見るの面倒だから3行で説明して
2016/09/24(土) 09:53:53.39ID:trsNBxRI


2016/09/24(土) 09:55:26.18ID:n5/uj8Su
>>66
まず目的のキーと現在探索中のキーの差をとる。
それを隣接するキーの最大値で割る。
その値だけ進む。

まあ、原理は単純なアルゴリズムです
2016/09/24(土) 10:46:59.06ID:iZTaxfZT
>隣接するキーの最大値

これをあらかじめ求めておかなきゃならんってのが一番のネックだな。
一般のデータに対する探索だと、バイナリサーチと比較したメリットと言っていたものの大半が消し飛んでしまう。
2016/09/24(土) 10:49:01.89ID:9ZsTQHH6
>>61
印象としては
1. 要素間の差の最大値を求めるのに線形時間
2. 各要素の値の差が一定でないと性能を発揮しない(最大値を求めるのも含め)
3. 探索の最悪時間が線形時間、恐らく平均も線形時間
4. ソートされていなくても探索可能な条件が不明瞭
5. データの内容に探索コストが大きく左右される

例えば
1 2 4 9 15 24 100 120 1002 1225
とあった時、差の最大値は
1002-120=882
1002を探索すると
1002-1=1001, 1001/882=1
1002-2=1000, 1000/882=1
1002-4=998, 998/882=1
1002-9=993, 993/882=1
...
と線形時間になる(やり方あってるよね?)
演算している分、比較だけの線形探索より処理速度が遅くなる
2016/09/24(土) 11:09:23.58ID:n5/uj8Su
>>69
>>70
確かにキーの最大値を求めるのは線形時間かかります。なのであらかじめ、隣接するキーの最大値が分かっているデータに使用可能です。
探索の最悪時間は線形時間ですが、平均時間はlogのオーダーになるのではないでしょうか。私が不勉強なもので理論的には、示めせませんが多分logのオーダーになると思います。
ソートしなくても探索できるのは差の絶対値を取るからです。動画に入れるのを忘れました。すいません。
計算についてはそれであっています。わざわざご指摘ありがとうございます
2016/09/25(日) 01:17:16.51ID:MeFnEkA4
>>71
上でも指摘されているが整っているの定義が不明
二分探査の場合は、存在しないこともlog n で確認可能だが、この手法は整っているの定義次第では存在しない者の確認が非常に時間かかる(ソートされている場合は存在するものと同等だが、そうすると二分探索よりも利点が少なくなる)
平均計算量を求めるのはちと難しそうだけど、格納される値の値域に依存するかな
たぶん、log n 程良くはないと思う
2016/09/25(日) 09:29:52.06ID:byM8xGto
>>72
ご指摘ありがとうございます。確かに整っているの定義ができていないのが一番の難点ですよね。いつか勉強して考えたいと思います
74デフォルトの名無しさん
垢版 |
2016/09/25(日) 12:26:29.96ID:3wiQalb8
>>67
ごめん
みたけど
だめだこりゃ
2016/09/25(日) 12:52:11.14ID:NTqjAG/u
>>71
各要素間の差が一定であればO(1)、当たり前だけど、これは計算で求まる
各要素間の差の分布数が要素数に近づき、尚且つその落差が激しい場合
著しく線形時間になる

で、探索したい数値と差の最大値の商が1だった場合
その探索したい数値がある位置以下の数値探索はO(n)になる
データ列の後半に行くほど1回の演算で要素をステップする数が増えるけど
その移動は微々たるもの
データ列の内容に左右されることを差っ引いても、O(log n)からは程遠いと思う
詳しい計算は出来ないが、これを線形時間としても無理はないと思う

参考として
0 1 3 6 10 15 21 28 36 45
このデータ列では、15以下の探索はO(n)、
21は5回、28は4回、36は4回、45は3回の演算

結論として
このアルゴリズムの最大の欠点は差の最大値が必要な事を含めて
データ列の内容に左右されてしまうことだな
この手のアルゴリズムはデータの外側にあるべきだな
2016/09/25(日) 14:20:01.83ID:8PebKpFu
>>74
88
2016/09/26(月) 13:42:01.27ID:ymOrEJcI
>>61
すもモンがnewton法をガチで知らないのであればnewton法をまず勉強するべき
カンガルーの敵はバイナリではなくnewtonだ
2016/09/26(月) 20:32:40.67ID:7l1kSKga
確かにデータ間の差に一様離散分布を使ったのは公平ではなかったです。
なので、データを完全にランダムにして調べてみました。
データはCのrand()%1000000で10000個生成しソートして、
探索の時配列のうちランダムな値を探すキーとし間を線形探索、カンガルー法
バイナリサーチで100回比べてみました。
その結果線形探索では平均比較回数約4963回最大比較回数は9972回でした
カンガルー法は平均比較回数約70回 最大比較回数は111回でした。
バイナリーサーチはやはり一番はやく、平均比較回数約12回、最大比較回数は14回でした
皆さんがご指摘の通りやはりバイナリーサーチが一番はやいようです。
ただ、例えばKMP法が逆行がないから使われているようにカンガルー法も逆行がないので
使うことはできないでしょうか?もし、とんちんかんなこと言ってたらすいません。
2016/09/26(月) 20:37:55.45ID:7l1kSKga
>>74
www確かにそうかもしれませんね。
>>77
一応私はニュートン法については知っています。Newton法は求める関数の微分した値を
しっていなければならないとおもうのですが、現実の探索だと関数が微分できないことも
多いかと思います。ちょっと、私が使った例が悪くてsinカーブや円を使ったのがよく
なかったのかもしれません。整っていてソートされていないデータとして扱いやすかったので
sin関数を使ったのであってとくにデータが微分可能である必要はありません。円と
Y切片の交点も中学生でも二次方程式ときゃいいのでもっと簡単にできますが、本来は
多角形とさまざまな図形の交点を探るアルゴリズムです。円を使ったのは例をわかりやすく
したかったからです。
80デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:51:48.49ID:LqkHCFhg
状態遷移ってどういうステータス持てばいいの?

A と B のステータスがあって、お互いが切り替わるのに n秒 かかる
切り替わりに失敗したら切り替えをリトライする
AはBになろうとし、BはAになろうとする

というとき、A と B のほかに AからBになるのを待ってる状態と
BからAになるを待ってる状態の 2つがさらに状態として必要?
過渡状態も状態?
2016/10/17(月) 07:56:46.27ID:TukeUWYl
>>80
システムの設計次第。
切り替え中、待ち中が状態として存在するのならプログラムでも状態にすればいい
2016/10/17(月) 15:43:18.44ID:srAFoI0L
>>81
そりゃそうだけど
状態がn個あると過渡状態がたくさんになるのは
辛い
2016/10/17(月) 17:53:14.06ID:75S5w4gh
現在の状態と次の状態のペアにすれば?
2016/10/17(月) 21:23:44.83ID:sc7L52q+
辛かろうが状態が存在するのならしょうがあるまい。
あるいは遷移をアトミックにして遷移中状態そのものを無くすか、遷移中の動作を共通化
できるなら遷移先をパラメータ化して「*への遷移中」という1状態にしてしまうとか。
2016/10/17(月) 23:34:18.88ID:WkWdUImM
>>82には無理ということで
2016/11/05(土) 20:41:10.12ID:PXYcOtjJ
ポリモーフィックなクラスの相互作用において特定の型の組み合わせの場合のみ処理を特殊化したい場合はどうすればいいのだろう?

x = xFactory.create(...);
y = yFactory.create(...);

if(x.typeCode() == X.Foo && y.typeCode() == Y.Hoge)
executeSpecial((Foo) x, (Hoge) y);
else if (...)
...
else
executeNormal(x, y);
2016/12/12(月) 23:13:40.61ID:IcWOSn01
デザインパターンを使って実装すると、年長プログラマーから、またこんなことしやがって的な拒否反応が帰ってくるんだがどうすれば
2016/12/12(月) 23:42:41.92ID:bt79hYqC
排除する他道は無い。
2016/12/12(月) 23:50:03.81ID:hGpJarHd
転職しろ
2016/12/13(火) 03:19:26.34ID:neuXXcOh
若者で組合(または派閥)を創る
2016/12/13(火) 08:14:05.45ID:5xcG7lRc
>>87 がどんなコードを書いたかも分からんのに
2016/12/13(火) 18:53:42.04ID:MUcELcjh
下手くそがデザインパターンとか使うと逆にこんがらがるからなぁ
老害とどっこいどっこいだろ
93デフォルトの名無しさん
垢版 |
2016/12/13(火) 21:32:18.83ID:lYWHr0pJ
マルチスレッドで、なんの考えもなくオブザーバー使いまくられて、データ破壊しまくられた時には、本気で殺意を抱いたよ
94デフォルトの名無しさん
垢版 |
2016/12/16(金) 15:12:11.72ID:kO0vFktz
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』

の優先度付きキューについてのプログラムについて質問です。

p.241の heapIncreaseKey(A, i, key) という関数内で、

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのがあります。

これがなぜ必要なのかが分かりません。

insert(key) を見れば分かるように、この本の使われ方では、
key < A[i] になることは決してありません。

よろしくお願いします。
2016/12/16(金) 15:34:53.22ID:n8JQ6xp/
assertionじゃね
96デフォルトの名無しさん
垢版 |
2016/12/17(土) 16:05:18.68ID:lvQHWty7
完成形をいきなり見てると不思議に思うよね。
でも実際には作成中のバグを考慮して、最初にチェックを入れておくもんなんだよね。
まあ、一言で言えばassertなんだけど。

ただ、作業やデバッグ用には必須であっても、その本の例示として必要か?と言われれば、確かにいらない気がする。
97デフォルトの名無しさん
垢版 |
2016/12/17(土) 16:09:26.93ID:GDWdcO6h
>>95-96

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の参考文献に
挙げられている『アルゴリズムイントロダクション』を見てみたら、全く同じプログラム
が載っていました。

完全にパクっていますね。

>>96
デバッグ用にどうして必要なのかが分かりません。

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』はお持ちでしょうか?
もし、お持ちでないようでしたら該当箇所の画像をアップロードします。
98デフォルトの名無しさん
垢版 |
2016/12/17(土) 16:23:27.88ID:GDWdcO6h
>>94

念のため、該当箇所の画像をアップロードさせていただきます。
読めば読むほど意味不明です。

http://imgur.com/zKVWzAJ.jpg
http://imgur.com/owa8NkX.jpg
http://imgur.com/NmCczss.jpg
2016/12/17(土) 16:42:25.50ID:a9hyyPvt
>>97
参考文献ならパクってるとは言わない
2016/12/17(土) 16:43:27.67ID:a9hyyPvt
>>98
こういうのが本当のパクり
訴えられたら負ける
2016/12/17(土) 18:12:28.79ID:rDdwnYMe
>>97
他の本も読んでみるとわかると思うけど、プライオリティキューを二分木ヒープで実装するのは定番で、どの本でも大体同じことが書いてある
102デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:29:55.59ID:GDWdcO6h
>>98

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのが、デバッグ用であるとは思えないのですが、これは一体何なんでしょうか?

heapIncreaseKey(A, i, key) を何か別の用途に使う場合があって、そのときに必要に
なるのならば納得しますが。
103デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:31:29.47ID:GDWdcO6h
>>101

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

という意味不明のコードも『アルゴリズムイントロダクション』のプログラムには
書いてあります。

こんな余計なコードは普通は入れないと思います。

完全にパクりだと思います。
104デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:35:00.61ID:a9hyyPvt
>>103
参考文献に書いてあるんだからパクリも糞も無い罠
参考文献に書き漏れたら小保方さんみたいに突っ込まれるが
105デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:35:29.11ID:GDWdcO6h
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の
他のプログラムもおそらくすべて『アルゴリズムイントロダクション』の
プログラムをそのまま使っています。

恥を知れと言いたいです。
106デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:36:34.73ID:GDWdcO6h
参考文献に文献を挙げれば何でも許されるということはないと思いますが。
107デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:39:42.80ID:GDWdcO6h
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのも『アルゴリズムイントロダクション』のほうでは意味があるのかもしれません。

それをそのまま何も考えずにコピペしたために、意味不明なことになっているのかも
しれません。

>>98

を見て、誰か納得のいく説明ができるでしょうか?

意味不明としか言えないかと思います。
2016/12/17(土) 19:42:21.87ID:C/wQAZQ3
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、
『アルゴリズムイントロダクション』のほうもまたどっか別の本からのパクリの悪寒。
2016/12/17(土) 19:47:48.93ID:YhK78PBA
"error: heap underflow" でググるといっぱい出てくる
2016/12/17(土) 19:57:50.69ID:rDdwnYMe
ID:GDWdcO6h は何をそんなに怒ってるの?
問題が解けなくてイライラしてるだけ?

どんな本も参考文献があり、どんなアルゴリズム、データ構造も元をたどれば最初に「ヒープで実装すればうまく行くぞ!」と発見した人の論文があるはず

新しい本を書くときは参考文献よりもわかりやすくなるように、説明やイラスト、擬似コードを変えたり、あるいは同じものを流用することもあるだろう
2016/12/17(土) 20:55:04.47ID:jmPH7DRp
disるのがはやってるらしい
2016/12/18(日) 00:45:20.51ID:aCKcGLhu
プログラミングコンテスト攻略のための、
アルゴリズムとデータ構造、渡部有隆(わたのべ ゆたか)、2015
Ozy(協力), 秋葉 拓哉(協力)

Aizu Online Judge(AOJ、会津大学)

プログラミング・コンテスト・チャレンジブック、第2版、2012
秋葉 拓哉, 岩田 陽一, 北川 宜稔

元々は、3人の東大大学院生が作った、チャレンジブックが大ヒットした。
今までは、こういうコンテストの問題を研究した本が無かった

一方、すでに海外では、TopCoder, Google Code Jam などが、
プログラマーの主戦場となっていて、日本では、AOJ が後を追っている状態

渡部有隆の本は、チャレンジブックの後に出した。
協力に、秋葉 拓哉の名前もある

プログラマ脳を鍛える数学パズル
シンプルで高速なコードが書けるようになる70問、増井 敏克、2015

一方、増井は、Rubyで解く、このパズル本で、
「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞(ITエンジニア本大賞)」を受賞している
113デフォルトの名無しさん
垢版 |
2016/12/18(日) 00:49:54.79ID:VFzWAIXP
めんどくさ
2016/12/18(日) 01:14:58.25ID:aCKcGLhu
漏れも、JavaScriptで、2分ヒープ(BinaryHeap)を実装したので、参照して
http://jsdo.it/michihito/bGH5

2分ヒープは、優先度つきキュー (順位キュー、priority queue)や、
ダイクストラ法 (Dijkstra's Algorithm)で使う

配列の[0]は使わない。[1]から始めると計算が楽
親1, 左右の子は2, 3で、親n, 子2n, 2n+1

プログラミング・コンテスト・チャレンジブックでは、[0]から始めていますが、
もし[0]から始めると、
親0, 左右の子は1, 2で、
親1, 左右の子は3, 4で、
親n, 子2n+1, 2n+2、となり複雑だから
2016/12/18(日) 01:56:35.37ID:05Ug+E6t
>>114
汚すぎるコードだ。なんだろう。初心者とも違うな。
まるで20年ぐらい前から成長してない人が書いたコードのようだ。
116デフォルトの名無しさん
垢版 |
2016/12/18(日) 02:12:34.14ID:KR24tnjc
>>115
ド素人と丸出しの感想文だな
117114
垢版 |
2016/12/18(日) 04:57:12.61ID:aCKcGLhu
すまぬ

JavaScriptも、よく知らずに書いたのだw
本当は、== ではなく、型も一致する厳密等価演算子、=== を使うべきだろう

まあ、JSなどで、とても開発はできない。
Haxe で書き直せばよいのだろうが

Kotlin, Electron やら何やら、最近の言語に、ついていけてないw
2016/12/18(日) 08:19:04.80ID:05Ug+E6t
> 本当は、== ではなく、型も一致する厳密等価演算子、=== を使うべきだろう
そういうレベルじゃない。

無駄なロジック、意味不明な変数名、多すぎるコメント、
コードの意味を何一つ分かってないとしか思えないといってんの
2016/12/18(日) 11:08:48.21ID:7J/3tpZx
俺はむしろここ
> このソースコードのライセンスは、MIT License です
> Original Copyright (c) 2014 Michihito Seto All Rights Reserved.
残飯を神棚に飾るが如く宣言
ここにこそ初心者らしさが凝縮されてる
120デフォルトの名無しさん
垢版 |
2016/12/18(日) 11:50:21.36ID:5nrc1ooF
>>114

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのは意味があるのでしょうか?
2016/12/18(日) 11:50:54.72ID:05Ug+E6t
jsdo使ってるやつって汚いコードが多いよな。
素人が使いたくなる機能でもあんのか?
ブラウザだけで開発ができるとか?
122デフォルトの名無しさん
垢版 |
2016/12/18(日) 11:53:36.61ID:5nrc1ooF
デバッグなど必要のないくらい簡単なコードなので、デバッグ用とは考えられないかと思います。
2016/12/18(日) 11:57:14.52ID:0+9ctOie
馬鹿ほど自説に拘るw
124デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:12:58.36ID:5nrc1ooF
Introduction to AlgorithmsよりもAlgorithms(Sedgewick、赤い本)のほうがいい本ですね。

読んでいて楽しい。
125デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:18:23.69ID:5nrc1ooF
日本語のデータ構造とアルゴリズムの本だと、茨木の本が有名だけど、
どこがいいのかさっぱりわからない。

翻訳書ではない日本語の本でまともなのは、浅野孝夫の本くらいではないでしょうか?
2016/12/18(日) 12:18:30.80ID:d5jVhhWj
アルゴリズムやコードのライセンスってどの程度のものから付けていいんだ
あんまり簡単なものだと既出すぎてライセンス付けられるのか?って考えてしまう
かといってじゃあライセンス付けていい最低ラインは何なんだという話になる
127デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:20:00.87ID:5nrc1ooF
>>126

ライセンスとか書いてあっても一部だけコピペして利用したら、分からないですよね。

どうやって、だれかのコードを流用したか判定するのか、それに興味があります。
2016/12/18(日) 12:30:54.60ID:RB5DyRP2
アルゴリズムには著作権ないよ
あるのはそれをどう表現したか
簡単なアルゴリズムには表現バリエーションなんて限られてるから
ある程度似るのはどうしようもない
129デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:37:57.44ID:5nrc1ooF
特許ならありますよね。
2016/12/18(日) 13:02:47.44ID:PELrVlNw
デザインパターンの本高い・・・
一冊持ってたけど引っ越しのごたごたでなくしちゃった
無料で網羅できるサイトありませんかね
一冊読んではあるので、さらっと構造や仕組みを紹介してくれていればいいし
英語もある程度は読めます

基本のデザインパターンだけでもありがたいし
マルチスレッド対応に踏み込んだサイトならなおありがたいです
2016/12/18(日) 13:22:26.46ID:d5jVhhWj
基本的な考え方覚えたら幾らでも応用できるだろ
カタログを後生大事にとっておく意味はない
2016/12/18(日) 13:35:15.82ID:PELrVlNw
覚えてないんすよ
記憶力ないんで忘れちゃって、ぼんやりとしか覚えてないんです
だから概要をしっかり覚え直したいなと思って
2016/12/18(日) 13:42:55.97ID:+dKTlaSP
>>132
いや、デザパタ本こそ手元においておくべき
わけのわからん二次情報を見るとどんどんブレていくぞ
2016/12/18(日) 13:45:05.00ID:RB5DyRP2
リファレンスとしてはどの本がいい?
135デフォルトの名無しさん
垢版 |
2016/12/18(日) 13:45:12.43ID:5nrc1ooF
ソフトウェア工学的な本って重要なんですか?
136デフォルトの名無しさん
垢版 |
2016/12/18(日) 13:45:59.00ID:5nrc1ooF
学問的には全く面白くない分野ですよね。
2016/12/18(日) 14:08:17.53ID:PELrVlNw
TECHSCOREのデザインパターンのページ見ることで自己解決しました
138デフォルトの名無しさん
垢版 |
2016/12/18(日) 15:45:37.97ID:VFzWAIXP
デザパタカタログは便利だよね
煮詰まったときに、休憩がてらパターンを眺めてると、閃くときがある
2016/12/18(日) 16:24:54.12ID:+Ko1jSRc
ねーわ、普通のコードが99.99%
2016/12/18(日) 18:22:27.13ID:d5jVhhWj
基本的な発想を学んだらカタログはポイ
パターンに執着してもデザインがぎこちなくなるだけ
141114
垢版 |
2016/12/18(日) 23:03:56.86ID:aCKcGLhu
>>119
jsdo.it では、全員のソースコードが、サイト内に限り、MITになる

漏れが、わざわざ、MITと書いておいたのは、サイト外でも使ってほしいという意味。
学生が勉強することも多いから、コメントも一杯書いた

2分ヒープ、AVL、赤黒木など、アルゴリズムの実装は、どうしても汚いソースコードになる
2016/12/18(日) 23:11:13.26ID:f3M2Oqre
143デフォルトの名無しさん
垢版 |
2016/12/18(日) 23:11:21.17ID:5nrc1ooF
2分ヒープって簡単なアルゴリズムですよね。

汚くなりようがないように思うのですが。
144デフォルトの名無しさん
垢版 |
2016/12/18(日) 23:12:19.64ID:5nrc1ooF
計算幾何学って難しい割に見返りが少ないように思います。

だからあんまり人気がないのかもしれないですね。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況