データ構造,アルゴリズム,デザインパターン総合スレ 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
472デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:55:27.46ID:b174092u
なんか他の本を調べてみても、

>>471

のような素朴な証明法が載っていませんね。

ソートするアルゴリズムが存在することを示せ

という問題があったとして、答えとして、バブルソートをあげれば十分であるにもかかわらず、
ヒープソートをあげるようなもんですね。
2017/07/03(月) 12:01:19.36ID:2KgtUC+G
>471

頂点a b c d eがあって、
辺が、
a b
a c
a d のとき、
Mとして
a bを選べば、増加パスはないけど、
cとdはFreeな頂点になるのでは?
474デフォルトの名無しさん
垢版 |
2017/07/03(月) 12:17:16.61ID:b174092u
>>473

ありがとうございます。

>>471
は間違いですね。
2017/07/03(月) 22:09:21.73ID:d7TtC2S/
>>474

ズコーッ
476デフォルトの名無しさん
垢版 |
2017/07/03(月) 23:57:03.23ID:kWtGcdOg
>>474

ヽ(・ω・)/ズコー
2017/07/06(木) 14:52:18.01ID:MPcf+VnS
松坂君はおつむ弱いなー
478デフォルトの名無しさん
垢版 |
2017/07/07(金) 10:19:21.25ID:LuN3QDVY
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。

ネットワークフローについてですが、
ソースから流出する総フローが、
シンクに流入する総フローに
等しいということを自明のこととして、
証明していません。

これはOKなのでしょうか?
2017/07/07(金) 10:33:49.72ID:Hkhwo5qO
おつむが弱いアスペ参上
480デフォルトの名無しさん
垢版 |
2017/07/07(金) 11:03:27.05ID:LuN3QDVY
やはり証明は必要なんですね。
↓の本に証明が載っていました。

組合せ数学入門 II (共立全書)
C.L.リウ
https://www.amazon.co.jp/dp/4320005422
481デフォルトの名無しさん
垢版 |
2017/07/07(金) 11:04:16.11ID:LuN3QDVY
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

は、計算量の評価の説明がひどすぎます。

ほとんど結果しか書いていません。
482デフォルトの名無しさん
垢版 |
2017/07/07(金) 11:53:23.95ID:LuN3QDVY
>>478

少し後のところで、
ソースから流出する総フローが、
シンクに流入する総フローに
等しいという結果を特別な場合として
含むような結果を示していました。

ソースから流出する総フローが、
シンクに流入する総フローに
等しいということが自明なことならば、
そのより一般化された結果も自明です。

著者の態度は矛盾していますね。
2017/07/07(金) 13:13:44.59ID:G2hd19q1
僕の肛門から流出するソースの総フローがシンクに流入します
484デフォルトの名無しさん
垢版 |
2017/07/07(金) 17:37:48.39ID:LuN3QDVY
今、ウィルソンのグラフ理論の本を見てみたのですが、内容がスカスカですね。

アルゴリズム的なグラフ理論の本のほうが分かりやすいし、面白いですね。
485デフォルトの名無しさん
垢版 |
2017/07/07(金) 19:30:12.19ID:LchmZiK1
「29歳既婚、2年前に会社を辞めた。ボードゲーム作りを始めて3700万円を
売り上げたけど何か聞きたいことはある?」回答いろいろ
http://labaq.com/archives/51880196.html
日本ボードゲーム界の異端児に聞く!ボードゲームデザイナーとして生きていくには?
https://bodoge.hoobby.net/columns/00013
カードゲームを自作する1 【自宅でカード印刷】
http://tanishi.org/?p=801
100円ショップでボードゲームを自作しよう
https://sites.google.com/site/jun1sboardgames/blog/makeyourbg
ノーアイデアでボードゲームを作ろう第1回「100円ショップで物を買う」
http://boardgamelove.com/archives/boardgame-make-1/
ボードゲーム市場がクラウドファンディングの出現で急成長を遂げ市場規模を拡大中
http://gigazine.net/news/20150820-board-game-crowdfunding/
自作ゲーム即売会「ゲームマーケット」に1万人超
http://www.nikkansports.com/general/nikkan/news/1750500.html
ボードゲームの展示イベント「ゲームマーケット」の成長記録からこれからの
市場に必要なことを妄想してみた。6年間の来場者数推移(2016年4月時点調べ)
https://bodoge.hoobby.net/columns/00001
2017/07/08(土) 06:00:28.99ID:h3/vqusb
>>484
あ? スカトロが何だって?
487デフォルトの名無しさん
垢版 |
2017/07/08(土) 09:51:52.03ID:bx7kaphQ
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)の
Ford - Fulkerson のアルゴリズムのプログラムを読んでいます。

ひどいプログラムです。

たとえば、深さ優先探索を行う関数を見てください↓

void dfs(int v, int path[]){// vからの深さ優先探索
■■■■int afwd, abk, w;
■■■■afwd = edgefirst[v];
■■■■while (afwd != 0 && rescap[afwd] == 0) afwd = edgenext[afwd];
■■■■while (t_found == false && afwd != 0) {// 増加パスはまだ発見されいない限り
■■■■■■■■w = head[afwd];
■■■■■■■■if (path[w] == unvisited) {// wが未訪問であったらwへ前進
■■■■■■■■■■■■abk = afwd+1; // abkはafwdの逆向きの辺
■■■■■■■■■■■■if (afwd % 2 ==0) abk = afwd-1;
■■■■■■■■■■■■path[w] = abk; // afwdの逆向きの辺abkをpath[w]に記憶する
■■■■■■■■■■■■if (w != t) dfs(w,path); // wからの深さ優先探索へ進む
■■■■■■■■■■■■else {// w == t なので増加パスPが見つかった
■■■■■■■■■■■■■■■■t_found=true; // dfs(v,path)の強制終了へ
■■■■■■■■■■■■}
■■■■■■■■}
■■■■■■■■if (t_found == false) { // dfs(v,path)が強制終了になっていないときのみ
■■■■■■■■■■■■ afwd = edgenext[afwd]; //次の辺に移る
■■■■■■■■■■■■ while (afwd != 0 && rescap[afwd] == 0) afwd = edgenext[afwd];
■■■■■■■■}
■■■■}
}
2017/07/08(土) 10:04:34.97ID:gbIBpGm+
基地外こえーな
489デフォルトの名無しさん
垢版 |
2017/07/08(土) 10:07:07.69ID:bx7kaphQ
↓は、↑と等価なプログラムです。

すっきりとしていて分かりやすいですね。↓

void dfs(int v, int path[]){
■■■■int afwd, abk, w;
■■■■afwd = edgefirst[v];
■■■■for(afwd = edgefirst[v]; afwd != 0; afwd = edgenext[afwd]){
■■■■■■■■if(rescap[afwd] == 0) continue;
■■■■■■■■w = head[afwd];
■■■■■■■■if(path[w] == unvisited){
■■■■■■■■■■■■if(afwd % 2 == 0){
■■■■■■■■■■■■■■■■abk = afwd - 1;
■■■■■■■■■■■■}else{
■■■■■■■■■■■■■■■■abk = afwd + 1;
■■■■■■■■■■■■}■■■■■■■■
■■■■■■■■■■■■path[w] = abk;
■■■■■■■■■■■■if(w != t){
■■■■■■■■■■■■■■■■dfs(w, path);
■■■■■■■■■■■■}else{
■■■■■■■■■■■■■■■■t_found = true;
■■■■■■■■■■■■■■■■return;
■■■■■■■■■■■■}
■■■■■■■■}
■■■■}
}
490デフォルトの名無しさん
垢版 |
2017/07/08(土) 10:10:00.82ID:bx7kaphQ
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)のプログラムは
すべて↑こんな感じなので、いちいち自分でまともな等価なプログラムに改善してから
読む必要に迫られます。
2017/07/08(土) 10:29:14.58ID:W4vGtvme
海苔弁プログラムと呼ぶことにしよう
2017/07/08(土) 10:35:19.17ID:dHGGPCH1
アホのアスペ日記
493デフォルトの名無しさん
垢版 |
2017/07/08(土) 14:20:34.28ID:bx7kaphQ
for-2ch-codes/FlowLibrary.h

↓こちらが浅野さんの Ford - Fulkerson のアルゴリズムのソースコードです:
for-2ch-codes/asano_fordfulkerson.c

↑なぜ、こんな分かりにくいコードを書けるのか不思議です。
アルゴリズムの研究者なのに、プログラミングをしたことがないのでしょうか?

↓こちらが浅野さんのコードを読みやすくした等価なコードです:
for-2ch-codes/my_fordfulkerson.c
494デフォルトの名無しさん
垢版 |
2017/07/08(土) 14:21:50.45ID:bx7kaphQ
https://github.com/for-2ch/for-2ch-codes/blob/master/FlowLibrary.h

↓こちらが浅野さんのソースコードです:
https://github.com/for-2ch/for-2ch-codes/blob/master/asano_fordfulkerson.c

↑なぜ、こんな分かりにくいコードを書けるのか不思議です。
アルゴリズムの研究者なのに、プログラミングをしたことがないのでしょうか?

↓こちらが浅野さんのコードを読みやすくした等価なコードです:
https://github.com/for-2ch/for-2ch-codes/blob/master/my_fordfulkerson.c
2017/07/08(土) 14:46:01.89ID:shVOEDs/
■■■■■■■■■■■■■
■■このスレ闇が深すぎ■■
■■■■■■■■■■■■■
2017/07/08(土) 15:34:28.51ID:/nxmjkTk
すみません、松坂くんて誰ですか
2017/07/08(土) 16:30:54.37ID:/Hl6yXpd
>>496
教科書の荒さがして著者をdisることを生きがいとしてる厨房

ID:bx7kaphQ

Daniel Marcus Graph Theory を読む。 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/math/1497007079/
2017/07/08(土) 18:49:23.91ID:/o9ObF5e
>>497
高等な趣味だと思うよ,よく頑張っているね
2017/07/08(土) 19:37:28.26ID:ICTsGxtb
馬鹿アスペ同士仲良く
2017/07/09(日) 17:28:01.51ID:X4hx0gz3
お前ら、ちゃんと次スレ立ててやれよ?
隔離スレさえあればこっちに被害は及ばないからな
2017/07/09(日) 17:29:01.52ID:ZR+XIVIQ
お前がやれよ
2017/07/10(月) 01:48:04.10ID:LYhH/bN3
よし、今日からワイがM坂だ!
503デフォルトの名無しさん
垢版 |
2017/07/10(月) 10:06:36.48ID:BQfNYjN8
比較によるソートの比較回数の下限についての議論で決定木が登場します。

決定木の葉の数が n! 以上だという記述があるのですが、ちょうど n! ではないのでしょうか?

意味不明です。
504デフォルトの名無しさん
垢版 |
2017/07/10(月) 13:49:55.16ID:BQfNYjN8
そもそも決定木って何ですか?
505デフォルトの名無しさん
垢版 |
2017/07/10(月) 14:01:08.40ID:BQfNYjN8
例えば、決定木の内部ノードに 1: 2 というのノードにおいて、
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、
その計算結果を捨ててしまってもいいんですよね?
506デフォルトの名無しさん
垢版 |
2017/07/10(月) 14:02:15.57ID:BQfNYjN8
例えば、決定木の内部ノードに 1: 2 というノードがあったとすると、そのノードにおいて、
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、その計算結果を捨ててしまっ
て以後利用しなくてもいいんですよね?
507デフォルトの名無しさん
垢版 |
2017/07/10(月) 17:02:14.26ID:BQfNYjN8
http://imgur.com/XyDXq0t.jpg

↑は普通の決定木です。

http://imgur.com/zqlLVWW.jpg

↑のような決定木はどう扱うのでしょうか?
2017/07/10(月) 17:11:43.87ID:OAwCY67i
どこでもたちまち糞日記スレにしてしまう恐ろしさ
2017/07/10(月) 17:39:12.62ID:S+vnKcL6
他にも被害スレが?
510デフォルトの名無しさん
垢版 |
2017/07/10(月) 18:34:52.99ID:BQfNYjN8
段々、言いたいことが分かってきました。

a1, a2, a3, a4 を比較によってソートするあるアルゴリズムがあるとします。

そのアルゴリズムには対応する決定木 T が存在します。

深さ k の決定木の葉の数の最大値は明らかに 2^k です。(深さ k の完全2分木の場合)

a1, a2, a3, a4 の大小関係の可能性は、以下の 4! = 24 通りあります。

a1 < a2 < a3 < a4
a1 < a2 < a4 < a3

a4 < a3 < a2 < a1

そのすべての可能性に対してそのアルゴリズムはソートしなければならないので、
T の葉の数はちょうど 24 であるはずです。

深さ 1 の決定木はただ一つ存在し、葉の数は 2 です。
24 ≠ 2 なので、 T の深さは 1 ではありません。

深さ 2 の決定木の葉の数の最大値は 2^2 = 4 です。

24 ≦ 4 ではないため深さ 2 の決定木では、 24 個の葉を収容できません。

深さ 3 の決定木の葉の数の最大値は 2^3 = 8 です。

24 ≦ 8 ではないため深さ 3 の決定木では、 24 個の葉を収容できません。
511デフォルトの名無しさん
垢版 |
2017/07/10(月) 18:37:08.78ID:BQfNYjN8
深さ 4 の決定木の葉の数の最大値は 2^4 = 16 です。

24 ≦ 16 ではないため深さ 4 の決定木では、 24 個の葉を収容できません。

深さ 5 の決定木の葉の数の最大値は 2^5 = 32 です。

24 ≦ 32 であるため深さ 5 の決定木には、 24 個の葉を収容可能です。

以上から、決定木 T の葉の深さは最低でも 5 である必要があります。
512デフォルトの名無しさん
垢版 |
2017/07/10(月) 18:52:50.18ID:BQfNYjN8
a_1, a_2, …, a_n を比較によってソートするあるアルゴリズムがあるとします。

そのアルゴリズムには対応する決定木 T が存在します。

深さ k の決定木の葉の数の最大値は明らかに 2^k です。(深さ k の完全2分木の場合)

a_1, a_2, …, a_n の大小関係の可能性は、以下の n! 通りあります。

a_1 < a_2 < … a_(n-1) < a_n
a_1 < a_2 < … a_n < a_(n-1)

a_n < a_(n-1) < … < a_1

そのすべての可能性に対してそのアルゴリズムはソートしなければならないので、
T の葉の数はちょうど n! であるはずです。

n! 個の葉を収容するためには、 T の深さを k とすると、

n! ≦ 2^k

が成り立たなければなりません。

よって、

lg(n!) ≦ lg(2^k) = k*lg(2) = k

が成り立たなければなりません。
513デフォルトの名無しさん
垢版 |
2017/07/10(月) 18:53:05.24ID:BQfNYjN8
lg(n!) = Θ(n*lg(n)) ですので、

Θ(n*lg(n)) ≦ k

が成り立ちます。

以上より、比較によってソートする最高速度のアルゴリズムでも、その決定木の深さは
少なくとも Θ(n*lg(n)) の深さがあります。

よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Θ(n*lg(n)) 回の比較が必要です。
514デフォルトの名無しさん
垢版 |
2017/07/10(月) 18:57:08.74ID:BQfNYjN8
訂正します:

lg(n!) = Ω(n*lg(n)) ですので、

Ω(n*lg(n)) ≦ k

が成り立ちます。

以上より、比較によってソートする最高速度のアルゴリズムでも、その決定木の深さは
少なくとも Ω(n*lg(n)) の深さがあります。

よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Ω(n*lg(n)) 回の比較が必要です。
515デフォルトの名無しさん
垢版 |
2017/07/10(月) 19:00:21.22ID:BQfNYjN8
なんか非常に大雑把な議論で Ω(n*lg(n)) という評価を得ているのに、
ヒープソートやマージソートのような O(n*lg(n)) のアルゴリズムが存在する
というところが不思議ですね。
2017/07/10(月) 19:15:23.77ID:wVcu7osF
この人DHAだろ
2017/07/10(月) 19:19:20.07ID:TpSxkkBl
マグロの目?
518デフォルトの名無しさん
垢版 |
2017/07/10(月) 20:08:22.69ID:BQfNYjN8
アマゾンってダメダメですね。

【全品10%ポイント還元】マンガ・雑誌など本全品がお買い得
7/10 18:00〜7/11 23:59のプライムデー限定で全ての商品が10%ポイント還元中! >今すぐチェック

ヤフーショッピングとかで買えば実質30%引きくらいで買えるときもありますよね。
2017/07/10(月) 20:27:20.96ID:Di3Z2y8c
>>516
ADHD?唯の馬鹿のアスペだと思う
520デフォルトの名無しさん
垢版 |
2017/07/11(火) 02:13:19.92ID:kTultHtx
URLとかファイルパスとかコマンドとかをクッソ汚い文字列として
文字列処理で結合したり変数埋込みしたり正規表現使ったり
するコードとか、
エンコードされたり、エスケープ混じりのぐちゃぐちゃな文字列とか
とにかく汚くて長くて改行されてない文字列処理にも
データ構造やデザインパターンて適用できるの?
またはデータ構造やデザインパターンでソースをきれいに
整形できたりする?
2017/07/11(火) 10:51:23.09ID:GFhKOZAg
文字列処理っつってもいろいろあんだろ
どういう処理がしたいのかもわからんのにデザパタ適用もクソもあるかよ
2017/07/11(火) 11:15:39.29ID:oEYLH8ZM
Stringというデータ構造
2017/07/11(火) 19:00:22.76ID:XmA15/s4
クッソ汚いもぐちゃぐちゃも個人の感想だから伝わらない
2017/07/11(火) 21:26:37.33ID:rybeffro
おう、松坂!
次スレな

俺は賢い、ディープラーニング教えて [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1498636978/l50
2017/07/12(水) 14:44:43.08ID:sNyzU/qO
著者名NGに入れて連鎖あぽーんですっきりするな
526デフォルトの名無しさん
垢版 |
2017/07/12(水) 18:59:57.68ID:BkmceXb8
繁野麻衣子著『ネットワーク最適化とアルゴリズム』を読んでいます。

http://imgur.com/RI1TvXi.jpg

部分グラフの定義がおかしいです。

こんな基礎的なところで間違いを犯しているというのが信じられません。
527デフォルトの名無しさん
垢版 |
2017/07/12(水) 19:25:04.11ID:BkmceXb8
あ、グラフになっていないと部分グラフとは言わないからOKなんですね。

でも分かりにくい表現ですね。
528デフォルトの名無しさん
垢版 |
2017/07/12(水) 19:35:27.04ID:BkmceXb8
A' が空集合の場合はどうするんですかね?
529デフォルトの名無しさん
垢版 |
2017/07/12(水) 19:40:24.94ID:BkmceXb8
空写像って何ですか?
2017/07/12(水) 19:50:43.67ID:sNyzU/qO
中学生?
2017/07/13(木) 01:49:26.96ID:dTYbVLC2
ただの基地外だろう。
532デフォルトの名無しさん
垢版 |
2017/07/16(日) 19:13:54.39ID:jm8THNZB
D40
http://imgur.com/i8hq9mG.jpg

↑この問題に対する解答ですが、

https://github.com/for-2ch/for-2ch/blob/master/Chapter_D.ipynb

の解答であっていますか?

2週間くらい前に書いたものですが、理解ができません。

仮に、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなる
パスたちがすべて辺 AB を含まないと仮定すると、 A から B への T の辺のみ
からなるパスで辺 AB を含まないようなものが存在することになる。

↑ここが理解できません。
533デフォルトの名無しさん
垢版 |
2017/07/16(日) 19:22:48.15ID:jm8THNZB
あー理解できました。

ここは分かりやすく書き直したほうがいいですね。
534デフォルトの名無しさん
垢版 |
2017/07/16(日) 19:35:47.89ID:jm8THNZB
仮に、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなる
パスたちがすべて辺 AB を含まないと仮定します。

A_1 := A
A_n ;= B

とします。

サイクル C が以下であるとします:

A_1 → … → A_n → A_1

もしも、

辺 A_i → A_(i+1) が T に含まれないときには、

サイクル C の A_i → A_(i+1) の部分を A_i から A_(i+1) への(一意的な) T の辺のみから
なるパスに置き換えます。

すると、 A から B への T の辺のみからなるパスで辺 AB を含まないようなパスが構成できます。

これは A から B への T の辺のみからなるパスが一意的であるという木の性質に反します。
(ほかに A → B という T の辺のみからなる長さ 1 のパスが存在することに注意。)
2017/07/16(日) 19:54:31.53ID:oSRVjDnX
糞日記

分からない問題はここに書いてね428 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/math/1498222858/749
2017/07/19(水) 22:52:51.73ID:W3gBCwo8
データ構造とアルゴリズムを勉強するときに、プログラム作成の言語は何がおすすめでしょうか?

なぜ、いまだにC++が幅を利かせているのでしょうか?
2017/07/20(木) 01:30:17.29ID:NeFB4pBD
>>536
C/C++が基本だから
2017/07/20(木) 07:32:28.47ID:JPSYgWUy
JAVAやC#はなぜ主流じゃないんですか?
2017/07/20(木) 08:06:18.81ID:VwfBeboA
遅いから。
でも、JAVAはアルゴリズムの教科書でも使われていることあるよ。
2017/07/20(木) 13:39:20.43ID:+UhdLUtU
Golangは爆速やで〜
541デフォルトの名無しさん
垢版 |
2017/07/21(金) 05:47:07.66ID:oNTvtqyo
Foo foo; と
Foo foo = new Foo();
は何が違うの?

あるクラス内で
private String field; のとき

public String method(String field){
return field;
}
と、
public String method(){
return this.field;
}
は何が違うの?
2017/07/21(金) 08:00:44.54ID:DB0JoB9N
>>541
>Foo foo; と
>Foo foo = new Foo();
C/C++ か、それとも C#/Java か、はっきりさせよ
2017/07/21(金) 08:35:20.75ID:gbxtSnvl
命名規約的にJavaだろ
2017/07/21(金) 10:31:24.26ID:AAWIl0Xa
>>541
Foo foo; // 参照型変数fooを宣言
Foo foo = new Foo(); // さらに、メモリのヒープ領域ってとこにFoo型のインスタンスを作成し、その場所を代入

コンストラクタとかでよく見ることになると思うけど
Foo(String name) {
this.name = name;
}
これは想像どおりの挙動をしてくれる
引数とフィールドに同じ名前があったとき
フィールドのものを使いたいときあえてthisつける
Foo() {
String name = "bar";
this.name = name;
}
みたいなときも同じ
名前が被ったとき、フィールド側の変数を選ぶのがthis
2017/07/21(金) 19:57:34.85ID:+Ec9GEX5
>>539
著者はズレてるよな。
2017/07/21(金) 20:06:52.80ID:+Ec9GEX5
データ構造、アルゴリズムはCで勉強して、デザパタはC++で勉強するのがいいな。
547デフォルトの名無しさん
垢版 |
2017/07/22(土) 13:37:57.58ID:S+qzOSdo
本当はGoやRuby Python JavaScript Kotlinあたりやりたいのに、
本格的なプログラミングとか設計勉強しようとすると
必ずJava, C, C++ あたりで解説されるから覚えざるを得ないというジレンマ。
2017/07/22(土) 13:46:49.67ID:0HjhMGYw
おらLispやれLispゥ!
2017/07/22(土) 18:31:48.46ID:Yr9CVNZl
>>547
インプレイス、という概念を植えつけられない言語でアルゴリズムをやるのは問題
でも Java が使われるのは疑問
550デフォルトの名無しさん
垢版 |
2017/07/22(土) 19:09:29.77ID:3d/mUXex
Javaだと問題があるのでしょうか?

セジウィックの本の第4版がJavaですが。
2017/07/22(土) 19:10:22.08ID:fXxiASxC
>>547
GoやRuby Python JavaScript Kotlinあたりに入門ちゃんと済ませて、これから本格的なプログラミングとか設計を勉強していくぞって人なら
具体例の説明に使われる程度のJavaやCなんて、無勉でもある程度は読めるでしょ
552デフォルトの名無しさん
垢版 |
2017/07/22(土) 19:12:56.74ID:3d/mUXex
例えば、Pythonだとソートとかハッシュとかリストとかが用意されていますが、
データ構造を学ぶ上では高級すぎるのではないでしょうか?
2017/07/22(土) 19:21:52.44ID:fJRG67nz
Sedgwick のアルゴリズムの教科書は、C++版やJava版があるよね。
C++版はちょっと古くて、C++11以降のモダンな書き方で改訂版を出してほしい。

自分は、アルゴリズムの教科書は疑似コードのみを示すの(MITのCormenの)で勉強したんだけど、失敗だったと思っている。
疑似コードを真似してそのまま実装してたから、一文字変数あまりまえ、クラスや構造体を定義することはなく、何でもかんでも配列で済ませるというクセがついてしまった。
もうちょっと、オブジェクト指向とかを勉強してからにすればよかったのかも。
554デフォルトの名無しさん
垢版 |
2017/07/23(日) 11:49:40.37ID:cZonGhlD
Javaとか連想配列使うだけでもいちいちnewとかキャストとか
鬱陶しい。
2017/07/23(日) 14:58:46.77ID:CNTwKpOF
アルゴリズムは抽象的で、言語仕様とは切り離されたものであるべきなのだ。
そうは言っても手続き型を意識したものになりがちで、これを関数型に書き直せと言われても一目難しいものがままある
556デフォルトの名無しさん
垢版 |
2017/07/23(日) 15:44:19.76ID:G5QCCj7S
アルゴリズムイントロダクションを読んでいます。

http://imgur.com/xbuAPtJ.jpg

↑は、 ω 記法についてです。

「if the limit exists」

と書かれていますが、なぜこんなことを書いているのでしょうか?

意味不明です。
557デフォルトの名無しさん
垢版 |
2017/07/23(日) 15:46:31.20ID:G5QCCj7S
g(n) が漸近的に正であるような関数であれば、

f(n) = ω(g(n))



lim f(n) / g(n) = ∞

ではないでしょうか?

「if the limit exists」などと書いてある理由が分かりません。
558デフォルトの名無しさん
垢版 |
2017/07/23(日) 15:51:14.63ID:G5QCCj7S
アルゴリズムイントロダクションって結構いい加減ですよね。

やっぱりクヌースの本を読んだ方がいいのかもしれませんね。
559デフォルトの名無しさん
垢版 |
2017/07/23(日) 15:54:26.92ID:G5QCCj7S
漸近的に正である関数
漸近的に非負である関数

について説明がありますが、

なぜ、漸近的に正である関数だけを考えないのでしょうか?

漸近的に非負である関数などこの本で登場する機会はあるのでしょうか?
2017/07/23(日) 15:55:21.76ID:p86Uodim
松坂君の夏休みの糞日記
2017/07/23(日) 16:03:03.18ID:I43wPtVl
>>556-559
この基地外が人様を害さないことを祈るばかりだ。
2017/07/23(日) 16:05:04.45ID:7bD+iXj9
>>555
現実問題、アルゴリズムを書くコードはC、C++に限られる。
Fortran、Java、Python、C#など他の言語はそれで書かれたライブラリを呼ぶだけだ。
563デフォルトの名無しさん
垢版 |
2017/07/23(日) 16:09:19.74ID:cZonGhlD
機械のパフォーマンスを追求するあまりに
人間時間のパフォーマンスを際限なく犠牲にする池沼
2017/07/23(日) 18:48:09.61ID:wW+3pobQ
>>563
それはお前みたいな業務プログラマの視点
565デフォルトの名無しさん
垢版 |
2017/07/23(日) 19:06:54.73ID:cZonGhlD
>>564
何だよ業務プログラマって
俺は人に使役されてないし、インフラも構築できるし、
人工知能や数学もやってるんだぞ。
お前みたいなパフォーマンスオタクのほうが頭おかしいから。
2017/07/23(日) 20:44:29.00ID:Js688EZT
>Javaとか連想配列使うだけでもいちいちnewとかキャストとか
>鬱陶しい。
567デフォルトの名無しさん
垢版 |
2017/07/23(日) 20:46:56.02ID:LRxsFVvF
>>565
なんでそんなに必死なの?
2017/07/23(日) 21:10:16.48ID:7eA3s3Ch
>>562
Youがライブラリ作ってもいいんだぞ
569デフォルトの名無しさん
垢版 |
2017/07/23(日) 23:45:48.25ID:G5QCCj7S
アルゴリズムイントロダクションを読んでいます。

「関数 n^(1 + sin(n)) の指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとる」

などと書かれていますが、明らかに間違っていますよね。

sin(n) = 1/sqrt(2) となるような自然数 n は存在しません。

何を考えているのでしょうか?
570デフォルトの名無しさん
垢版 |
2017/07/23(日) 23:54:11.92ID:G5QCCj7S
n と書いておきながら n が R を動くと仮定しているとかそんなことはないですよね?
2017/07/24(月) 00:08:11.63ID:1mGhcU0l
原文なの? IT関係の翻訳は誤訳だらけだよ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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