このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
データ構造,アルゴリズム,デザインパターン総合スレ 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
探検
データ構造,アルゴリズム,デザインパターン総合スレ 3©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/06/19(日) 14:47:29.63ID:5KvSKdL/
402デフォルトの名無しさん
2017/06/21(水) 13:33:59.73ID:CsbvaOkp 要するに、↓が間違っているわけです。
「補木辺は、同じ深さの点を結んでいるか、あるいは深さが 1 異なる点を結んでいることに注意しよう。」
「補木辺は、同じ深さの点を結んでいるか、あるいは深さが 1 異なる点を結んでいることに注意しよう。」
403デフォルトの名無しさん
2017/06/21(水) 13:55:32.90ID:BP6mUhEj ここじゃなくて著者なり出版社なりに連絡しなよ
その方がちゃんと議論できるだろうし修正されればあとから読む人の為になるよ
その方がちゃんと議論できるだろうし修正されればあとから読む人の為になるよ
404デフォルトの名無しさん
2017/06/21(水) 14:30:39.96ID:TkpRSZSL >>400
幅優先で探索木作ったら同じ深さを結ぶ補木辺ができるから二部グラフでないことがわかる
幅優先で探索木作ったら同じ深さを結ぶ補木辺ができるから二部グラフでないことがわかる
405デフォルトの名無しさん
2017/06/21(水) 16:12:29.38ID:e3wPbus7 >394
三枚目の図は、反例になっていない。
あなたが幅優先探索を理解できていないだけで、書籍の記述は間違っていないよ。
根でない2つの頂点は、どちらも、根から辺が張られていて、根と隣接しているのだから、同じ深さの位置にある。
三枚目の図は、反例になっていない。
あなたが幅優先探索を理解できていないだけで、書籍の記述は間違っていないよ。
根でない2つの頂点は、どちらも、根から辺が張られていて、根と隣接しているのだから、同じ深さの位置にある。
406デフォルトの名無しさん
2017/06/21(水) 18:57:35.69ID:CsbvaOkp あ、勘違いしました。
無向グラフでしたね。
無向グラフでしたね。
407デフォルトの名無しさん
2017/06/21(水) 19:28:34.24ID:TkpRSZSL 教科書だって間違いはいくらでもある。
だからといって、間違いらしきものを見つけて喜々としてあげつらうのではなく、
自分の解釈ではこうだが違うのだろうかという態度で質問しておけばよかったね。
だからといって、間違いらしきものを見つけて喜々としてあげつらうのではなく、
自分の解釈ではこうだが違うのだろうかという態度で質問しておけばよかったね。
408デフォルトの名無しさん
2017/06/21(水) 22:04:49.64ID:GPdgYp3Z 何がいんだろ
409デフォルトの名無しさん
2017/06/23(金) 09:05:15.05ID:0OdP20aK410デフォルトの名無しさん
2017/06/23(金) 13:07:58.26ID:IBCt0Ik9 間違いを恐れるな
411デフォルトの名無しさん
2017/06/23(金) 13:38:13.56ID:8e+v7OlS 馬鹿、アスペを恐れるな
412デフォルトの名無しさん
2017/06/23(金) 19:23:07.84ID:vbPiU/7d KIZLA7]]]
%≒72%,M,L,TO"JYOJA"
%≒72%,M,L,TO"JYOJA"
413デフォルトの名無しさん
2017/06/26(月) 15:07:57.81ID:wjem+ipT 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)ですが、この
本には強連結成分分解のアルゴリズムは書いてあるのですが、その正しさについて
の説明がありません。
「アルゴリズムの正当性については演習問題とする。」などと書かれているだけです。
そして、解答がありません。
解答をつけないほど簡単な問題でしょうか?
エイホ、ホップクロフト、ウルマン著『データ構造とアルゴリズム』に分かりやすい説明がありました。
本には強連結成分分解のアルゴリズムは書いてあるのですが、その正しさについて
の説明がありません。
「アルゴリズムの正当性については演習問題とする。」などと書かれているだけです。
そして、解答がありません。
解答をつけないほど簡単な問題でしょうか?
エイホ、ホップクロフト、ウルマン著『データ構造とアルゴリズム』に分かりやすい説明がありました。
414デフォルトの名無しさん
2017/06/26(月) 15:09:29.86ID:wjem+ipT あ、よくみたら解答がありました。
415デフォルトの名無しさん
2017/06/26(月) 15:14:33.33ID:wjem+ipT 強連結成分分解のアルゴリズムはグラフ理論的な観点からは興味深いですが、
応用についてはあまりないようですね。
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)の「はじめに」に
「強連結成分分解はシステムの故障診断や効率的解析への応用があると言われている。」
などと書かれいます。浅野さん自身は応用について具体的な詳細を知らないと宣言して
いるようなものですね。
応用についてはあまりないようですね。
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)の「はじめに」に
「強連結成分分解はシステムの故障診断や効率的解析への応用があると言われている。」
などと書かれいます。浅野さん自身は応用について具体的な詳細を知らないと宣言して
いるようなものですね。
416デフォルトの名無しさん
2017/06/26(月) 15:27:14.29ID:H+izVTcm ステマ乙としか
417デフォルトの名無しさん
2017/06/26(月) 15:32:39.93ID:wjem+ipT ところで、LEDAというライブラリはお勧めですか?
418デフォルトの名無しさん
2017/06/26(月) 16:23:39.69ID:xVfkWcpc 病人が粘着してる
419デフォルトの名無しさん
2017/06/27(火) 13:16:02.75ID:NGLAHv1W 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。
G のトポロジカルラベリングについては説明があるのですが、トポロジカルソートの応用例が
全く書かれていません。
勉強するモチベーションが全くありません。
著者は一体何を考えているのでしょうか?
G のトポロジカルラベリングについては説明があるのですが、トポロジカルソートの応用例が
全く書かれていません。
勉強するモチベーションが全くありません。
著者は一体何を考えているのでしょうか?
420デフォルトの名無しさん
2017/06/27(火) 14:05:21.18ID:41er5Tk4 NGにしてほしいんじゃね
421デフォルトの名無しさん
2017/06/27(火) 14:08:46.74ID:7kGXm9Ae 勉強しなきゃいいのに
422デフォルトの名無しさん
2017/06/27(火) 15:22:28.20ID:LAkf1Hly 馬鹿のアスペの気持ちなんか分からん
423デフォルトの名無しさん
2017/06/27(火) 17:51:10.93ID:LqFx/Quf 本人だったりして
424デフォルトの名無しさん
2017/06/27(火) 19:32:13.18ID:NGLAHv1W あ、その後の有向無閉路ネットワークの最長パスを求めるアルゴリズムで
トポロジカルラベリングが使われていました。
なかなか面白い応用ですね。
この本、説明にちょっと粗雑なところもありますが、見せ場があって楽しいですね。
トポロジカルラベリングが使われていました。
なかなか面白い応用ですね。
この本、説明にちょっと粗雑なところもありますが、見せ場があって楽しいですね。
425デフォルトの名無しさん
2017/06/27(火) 19:34:40.25ID:NGLAHv1W 有向無閉路ネットワークという制限が強すぎますね。
でもこの制限のおかげでちょっと面白いトポロジカルラベリングの応用例が見れたわけですね。
でもこの制限のおかげでちょっと面白いトポロジカルラベリングの応用例が見れたわけですね。
426デフォルトの名無しさん
2017/06/27(火) 21:47:11.43ID:i+35CN1y プログラミング・コンテスト・チャレンジブック、第2版、2012
ほとんど全てのアルゴリズムを網羅。
問題数も多く、パズル感覚で楽しめる。
AIやシミュレーションゲームの参考になる
ほとんど全てのアルゴリズムを網羅。
問題数も多く、パズル感覚で楽しめる。
AIやシミュレーションゲームの参考になる
427デフォルトの名無しさん
2017/06/27(火) 21:55:21.79ID:NGLAHv1W428デフォルトの名無しさん
2017/06/27(火) 21:58:43.82ID:NGLAHv1W429デフォルトの名無しさん
2017/06/27(火) 22:34:26.12ID:Tdvy+2PR 一から百まで説明しないとダメな奴、すなわち無能
430デフォルトの名無しさん
2017/06/28(水) 02:20:53.63ID:W36D2Opo 入門 データ構造とアルゴリズム、2013、オライリー
Narasimha Karumanchi(インド人) 著
アルゴリズムなら、セジウィックでも読めば?
プログラミング・コンテスト・チャレンジブックは、
コンテストの問題を集めた本だから、便利
一々、ウェブサイトの問題を見なくても良いから、楽
Narasimha Karumanchi(インド人) 著
アルゴリズムなら、セジウィックでも読めば?
プログラミング・コンテスト・チャレンジブックは、
コンテストの問題を集めた本だから、便利
一々、ウェブサイトの問題を見なくても良いから、楽
431デフォルトの名無しさん
2017/06/28(水) 05:10:12.09ID:6P8PW2pA >>430
そのインド人の本は、アルゴリズムの正当性のまともな説明がありません。
計算量の評価についてもまともな説明がありmせん。
セジウィックのAlgorithms 4th Editionはいい本ですが、計算量の評価については
まともな説明がないように思います。
そのインド人の本は、アルゴリズムの正当性のまともな説明がありません。
計算量の評価についてもまともな説明がありmせん。
セジウィックのAlgorithms 4th Editionはいい本ですが、計算量の評価については
まともな説明がないように思います。
432デフォルトの名無しさん
2017/06/28(水) 05:17:01.98ID:6P8PW2pA D40
T をグラフ G の全域木とする。
C を G のサイクルとする。
AB を C および T に含まれる辺とする。
このとき、 T から AB を除去し、辺 UV を追加したときに、
依然として G の全域木であるような辺 UV が C の中に
含まれることを示せ。
T をグラフ G の全域木とする。
C を G のサイクルとする。
AB を C および T に含まれる辺とする。
このとき、 T から AB を除去し、辺 UV を追加したときに、
依然として G の全域木であるような辺 UV が C の中に
含まれることを示せ。
433デフォルトの名無しさん
2017/06/28(水) 06:24:05.46ID:6P8PW2pA >>432
T は木であるからサイクルを含まない。
よって、 C には T に含まれないような辺が少なくとも一つは存在する。
T は全域木であるから、そのような辺の両端点を結ぶ T の辺のみからなる(一意的な)パスが存在する。
仮に、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなるパスたちがすべて AB を含まない
と仮定すると、 A から B への T の辺のみからなるパスで辺 AB を含まないようなものが存在することになる。
A, B という A から B へのパスは、辺 AB を含み T の辺のみからなる。よって、 A から B への T の辺のみから
なるパスが2つ以上存在することになるが、これは木の性質に反する。
よって、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなるパスたちの中には、 AB を含む
ようなものが存在する。そのようなパスを U, …, A, B, …, V とする。 T から AB を除去し、辺 UV を追加し
たときにできる部分グラフは明らかに T と同じ数の辺をもち、依然として連結なままである。点の数が v で
辺の数が v - 1 であるような連結なグラフは木であるから、そうような部分グラフは木である。
T は木であるからサイクルを含まない。
よって、 C には T に含まれないような辺が少なくとも一つは存在する。
T は全域木であるから、そのような辺の両端点を結ぶ T の辺のみからなる(一意的な)パスが存在する。
仮に、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなるパスたちがすべて AB を含まない
と仮定すると、 A から B への T の辺のみからなるパスで辺 AB を含まないようなものが存在することになる。
A, B という A から B へのパスは、辺 AB を含み T の辺のみからなる。よって、 A から B への T の辺のみから
なるパスが2つ以上存在することになるが、これは木の性質に反する。
よって、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなるパスたちの中には、 AB を含む
ようなものが存在する。そのようなパスを U, …, A, B, …, V とする。 T から AB を除去し、辺 UV を追加し
たときにできる部分グラフは明らかに T と同じ数の辺をもち、依然として連結なままである。点の数が v で
辺の数が v - 1 であるような連結なグラフは木であるから、そうような部分グラフは木である。
434デフォルトの名無しさん
2017/06/28(水) 06:52:24.02ID:6P8PW2pA435デフォルトの名無しさん
2017/06/28(水) 10:22:23.33ID:6P8PW2pA 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。
↓は、ある点から各点への最長パスを求めるプログラムのメイン関数です。
「出発点を入力してください」などと出力していますが、出発点は 1 でないとダメです。
なぜかというと depth_first() 関数がかならず 1 から深さ優先探索を開始するからです。
↓を見ると、あたかも、出発点に選択の余地があるかのようです。なぜ、こんなことを
しているのか意味不明です。
int main(void){
■■■■directed_network_input();
■■■■// 有向ネットワークの辺数m,点数n,各辺の始点,終点,長さが決定される
■■■■dicomp_incidence_list_construct(); // 接続辺リストが構成される
■■■■printf("出発点を入力してください\n");
■■■■scanf("%d", &s);
■■■■printf("出発点 = %d \n", s); // sからすべての点が到達可能であることを仮定
■■■■depth_first(); // 深さ優先探索をして後行順ラベルを求める
■■■■tpsort(); // トポロジカルソートを行う(tporder[1]==sとなることを仮定)
■■■■longestpath_from(s);// sからの到達可能な点への最長パスが計算される
■■■■longestpath_output();// sからの到達可能な点への最長パスが出力される
■■■■return 0;
}
↓は、ある点から各点への最長パスを求めるプログラムのメイン関数です。
「出発点を入力してください」などと出力していますが、出発点は 1 でないとダメです。
なぜかというと depth_first() 関数がかならず 1 から深さ優先探索を開始するからです。
↓を見ると、あたかも、出発点に選択の余地があるかのようです。なぜ、こんなことを
しているのか意味不明です。
int main(void){
■■■■directed_network_input();
■■■■// 有向ネットワークの辺数m,点数n,各辺の始点,終点,長さが決定される
■■■■dicomp_incidence_list_construct(); // 接続辺リストが構成される
■■■■printf("出発点を入力してください\n");
■■■■scanf("%d", &s);
■■■■printf("出発点 = %d \n", s); // sからすべての点が到達可能であることを仮定
■■■■depth_first(); // 深さ優先探索をして後行順ラベルを求める
■■■■tpsort(); // トポロジカルソートを行う(tporder[1]==sとなることを仮定)
■■■■longestpath_from(s);// sからの到達可能な点への最長パスが計算される
■■■■longestpath_output();// sからの到達可能な点への最長パスが出力される
■■■■return 0;
}
436デフォルトの名無しさん
2017/06/28(水) 10:54:52.65ID:6P8PW2pA 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。
ひどいバグを発見しました。
void longestpath_from(int s){// sからの到達可能な点への最長パスを計算する関数
■■■■int a, j, v, w;
■■■■dmax[s]=0; // sからsへの最長パスの長さは0である
■■■■path[s]=0; // sからの到達可能な点への最長パス木の根がsである
■■■■for (j = 1; j <= n; j++) {// トポロジカルソートに基づいて
■■■■■■■■v= tporder[j];
■■■■■■■■// sからvまでの最長パスの長さdmax[v]とパス上でvの直前の点path[v]の計算
■■■■■■■■a=revedgefirst[v]; // vを終点とする辺のリストの先頭の辺がaである
■■■■■■■■w=tail[a]; // wはaの始点
■■■■■■■■if(j == 1) printf("v = %2d, a = %2d, w = %2d", v, a, w); //debug
■■■■■■■■dmax[v]=dmax[w]+length[a]; // 式(4.2)に基づくdmax[v]の初期設定
■■■■■■■■path[v]=w; // 式(4.2)に基づくpath[v]の初期設定
■■■■■■■■a=revedgenext[a]; // aの次の辺をaとする
■■■■■■■■while (a != 0) {// vを終点とする辺のリストの末尾の辺になるまで繰り返す
■■■■■■■■■■■■w=tail[a]; // wはaの始点
■■■■■■■■■■■■if (dmax[v] < dmax[w]+length[a]){// wを経由したほうがより長いとき
■■■■■■■■■■■■■■■■dmax[v] = dmax[w]+length[a]; // wを経由するほうに更新する
■■■■■■■■■■■■■■■■path[v]=a; // aに更新する
■■■■■■■■■■■■}
■■■■■■■■■■■■a=revedgenext[a]; // aの次の辺をaとする
■■■■■■■■}
■■■■}
}
ひどいバグを発見しました。
void longestpath_from(int s){// sからの到達可能な点への最長パスを計算する関数
■■■■int a, j, v, w;
■■■■dmax[s]=0; // sからsへの最長パスの長さは0である
■■■■path[s]=0; // sからの到達可能な点への最長パス木の根がsである
■■■■for (j = 1; j <= n; j++) {// トポロジカルソートに基づいて
■■■■■■■■v= tporder[j];
■■■■■■■■// sからvまでの最長パスの長さdmax[v]とパス上でvの直前の点path[v]の計算
■■■■■■■■a=revedgefirst[v]; // vを終点とする辺のリストの先頭の辺がaである
■■■■■■■■w=tail[a]; // wはaの始点
■■■■■■■■if(j == 1) printf("v = %2d, a = %2d, w = %2d", v, a, w); //debug
■■■■■■■■dmax[v]=dmax[w]+length[a]; // 式(4.2)に基づくdmax[v]の初期設定
■■■■■■■■path[v]=w; // 式(4.2)に基づくpath[v]の初期設定
■■■■■■■■a=revedgenext[a]; // aの次の辺をaとする
■■■■■■■■while (a != 0) {// vを終点とする辺のリストの末尾の辺になるまで繰り返す
■■■■■■■■■■■■w=tail[a]; // wはaの始点
■■■■■■■■■■■■if (dmax[v] < dmax[w]+length[a]){// wを経由したほうがより長いとき
■■■■■■■■■■■■■■■■dmax[v] = dmax[w]+length[a]; // wを経由するほうに更新する
■■■■■■■■■■■■■■■■path[v]=a; // aに更新する
■■■■■■■■■■■■}
■■■■■■■■■■■■a=revedgenext[a]; // aの次の辺をaとする
■■■■■■■■}
■■■■}
}
437デフォルトの名無しさん
2017/06/28(水) 10:57:07.89ID:+O8L6XqQ 366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744
367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/
372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する
↓
Railsはマイナー、メジャーのアップデートが半年以内に必ずある
↓
客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく
↓
気づいてから1年以内に通知すれば、5年間無料保証ゲット
↓
つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな
376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744
367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/
372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する
↓
Railsはマイナー、メジャーのアップデートが半年以内に必ずある
↓
客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく
↓
気づいてから1年以内に通知すれば、5年間無料保証ゲット
↓
つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな
376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
438デフォルトの名無しさん
2017/06/28(水) 11:02:48.67ID:6P8PW2pA ↑の for 文は j = 1 から始まっています。
v == tporder[1] == 1 です。
a == revedgefirst[1] == 0 です。
ところが、この本では配列のインデックスは 1 からしか利用していません。
インデックスが 0 の要素は初期化すらしていません。
どうも配列を初期化しないと値は不定だそうですが、実際には 0 で初期化されることが
多いようです。
仕様では不定であるはずの
tail[0]
dmax[0]
length[0]
がたまたま 0 で初期化されるため、偶然、問題なく動作しています。
正しくは、
for 文は j = 2 から始めなくては駄目です。
v == tporder[1] == 1 です。
a == revedgefirst[1] == 0 です。
ところが、この本では配列のインデックスは 1 からしか利用していません。
インデックスが 0 の要素は初期化すらしていません。
どうも配列を初期化しないと値は不定だそうですが、実際には 0 で初期化されることが
多いようです。
仕様では不定であるはずの
tail[0]
dmax[0]
length[0]
がたまたま 0 で初期化されるため、偶然、問題なく動作しています。
正しくは、
for 文は j = 2 から始めなくては駄目です。
439デフォルトの名無しさん
2017/06/28(水) 11:19:51.44ID:6P8PW2pA あ、もう一つバグがありました↑
path[v]=w; // 式(4.2)に基づくpath[v]の初期設定
となっていますが、
path[v]=a; // 式(4.2)に基づくpath[v]の初期設定
でなければなりません。
path[v]=w; // 式(4.2)に基づくpath[v]の初期設定
となっていますが、
path[v]=a; // 式(4.2)に基づくpath[v]の初期設定
でなければなりません。
440デフォルトの名無しさん
2017/06/28(水) 12:31:24.06ID:W36D2Opo441デフォルトの名無しさん
2017/06/28(水) 12:34:24.00ID:6P8PW2pA >>440
そうですが、
for(j = 1;
とすると
意図せず配列[0]を使うことになってしまいます。
この値がたまたま 0 で初期化されていて、かつ 0 であれば正しく動くため、
問題が表面化していないだけです。
そうですが、
for(j = 1;
とすると
意図せず配列[0]を使うことになってしまいます。
この値がたまたま 0 で初期化されていて、かつ 0 であれば正しく動くため、
問題が表面化していないだけです。
442デフォルトの名無しさん
2017/06/28(水) 12:37:24.37ID:6P8PW2pA 有向無閉路ネットワークの最長パスをトポロジカルラベリングを利用して、
求めるアルゴリズムって他の本に載っていますか?
あまりにも特殊すぎて載っていないのではないかと推測しますが。
この本は、鮮やかに解けるように問題を特殊化して見せ場を作っていますね。
求めるアルゴリズムって他の本に載っていますか?
あまりにも特殊すぎて載っていないのではないかと推測しますが。
この本は、鮮やかに解けるように問題を特殊化して見せ場を作っていますね。
443デフォルトの名無しさん
2017/06/28(水) 13:17:27.40ID:6P8PW2pA >>426
その本を読むのでしたら、
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
のほうがCプログラムも載っていますし、面白いと思いますよ。
オイラーグラフの一筆書きのプログラムがあったりします。
その本を読むのでしたら、
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
のほうがCプログラムも載っていますし、面白いと思いますよ。
オイラーグラフの一筆書きのプログラムがあったりします。
444デフォルトの名無しさん
2017/06/28(水) 14:35:33.86ID:itdARVty 外部変数は0で初期化される。
445デフォルトの名無しさん
2017/06/28(水) 15:46:50.33ID:7M5wzg7m j=1で始まってんのに意図せず配列[0]を参照するの意味がわからん
446デフォルトの名無しさん
2017/06/28(水) 16:26:43.89ID:mp82Jtm6 それでも馬鹿のアスペの荒らしをスルーできない
447デフォルトの名無しさん
2017/06/28(水) 18:29:25.09ID:6P8PW2pA448デフォルトの名無しさん
2017/06/28(水) 18:29:51.34ID:6P8PW2pA449デフォルトの名無しさん
2017/06/28(水) 18:33:38.48ID:6P8PW2pA さらに、
v == tporder[1] == 1 です。
v == tporder[1] == 1 です。
450デフォルトの名無しさん
2017/06/29(木) 11:58:28.12ID:df4uIsIb http://imgur.com/A84Qz1i.jpg
http://imgur.com/NsXCsS1.jpg
http://imgur.com/Bm7ANHm.jpg
http://imgur.com/iSqMNes.jpg
↑は浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)です。
1枚目と2枚目の画像が連結な有向オイラーグラフの一筆書きを求めるアルゴリズムです。
3枚目と4枚目の画像がそのアルゴリズムの正しさの証明です。
「連結グラフ G が一筆書きできるための必要十分条件は、 G がオイラーであることである。」
という定理の証明において、十分性は、↑の3枚目と4枚目の画像の定理5.3により分かるということが書いてあります。
↑の3枚目と4枚目の画像を読めば分かりますが、十分性について証明されていないように思います。
どうでしょうか?
http://imgur.com/NsXCsS1.jpg
http://imgur.com/Bm7ANHm.jpg
http://imgur.com/iSqMNes.jpg
↑は浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)です。
1枚目と2枚目の画像が連結な有向オイラーグラフの一筆書きを求めるアルゴリズムです。
3枚目と4枚目の画像がそのアルゴリズムの正しさの証明です。
「連結グラフ G が一筆書きできるための必要十分条件は、 G がオイラーであることである。」
という定理の証明において、十分性は、↑の3枚目と4枚目の画像の定理5.3により分かるということが書いてあります。
↑の3枚目と4枚目の画像を読めば分かりますが、十分性について証明されていないように思います。
どうでしょうか?
451デフォルトの名無しさん
2017/06/29(木) 12:19:34.40ID:df4uIsIb むしろ、十分性が成り立つことを前提にしてアルゴリズムの正しさを証明しているように思います。
452デフォルトの名無しさん
2017/06/30(金) 09:51:08.15ID:pDIkSJMf 粘着
453デフォルトの名無しさん
2017/06/30(金) 13:39:18.75ID:8CLI6C9V 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。
段々、面白いアルゴリズムが登場してきていますね。
日本語のアルゴリズムの本は本当に初歩的な本が多いですが、なぜなのでしょうか?
例えば、ホップクロフト - カープのアルゴリズムが載っている本はあるでしょうか?
日本語の本に載っているのは、
リスト、ハッシュ、ヒープ、2分探索木、平衡木、ソート、最短経路、文字列
とかそんなもんだけですよね。
ホップクロフト - カープのアルゴリズムのところを読んでいます。
段々、面白いアルゴリズムが登場してきていますね。
日本語のアルゴリズムの本は本当に初歩的な本が多いですが、なぜなのでしょうか?
例えば、ホップクロフト - カープのアルゴリズムが載っている本はあるでしょうか?
日本語の本に載っているのは、
リスト、ハッシュ、ヒープ、2分探索木、平衡木、ソート、最短経路、文字列
とかそんなもんだけですよね。
454デフォルトの名無しさん
2017/06/30(金) 19:08:50.27ID:OVGL+Zaw 初歩的な問題すら理解できずにドヤ顔で間違った反例晒すやつがいるからだよ
455デフォルトの名無しさん
2017/06/30(金) 20:21:27.99ID:QJcLAte5 それ以上の難解アルゴリズムに挑戦する頭脳があれば英語の習得は容易いので、結果すでにある英語本を買うようになると予想
456デフォルトの名無しさん
2017/07/01(土) 09:37:54.54ID:OLSj8alI 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。
do {// マッチされていない左端点からマッチされていない右端点へのパスがある限り
■■■■levelgraph(); // レベルグラフの構成
■■■■if (t_found != n+2) augmentation(); // パスがあるときにはマッチングの更新
} while (t_found != n+2);
などというコードがあります。
do {// マッチされていない左端点からマッチされていない右端点へのパスがある限り
■■■■levelgraph(); // レベルグラフの構成
■■■■if (t_found == n+2) break;
■■■■else augmentation(); // パスがあるときにはマッチングの更新
} while (1);
と書いた方が分かりやすいですよね。
augmentation() 内では、グローバル変数 t_found の値は変更されません。
なので、以下のように書くのが標準的だと思います。
levelgraph();
while(t_found != n + 2){
■■■■augmentation();
■■■■levelgraph();
}
ホップクロフト - カープのアルゴリズムのところを読んでいます。
do {// マッチされていない左端点からマッチされていない右端点へのパスがある限り
■■■■levelgraph(); // レベルグラフの構成
■■■■if (t_found != n+2) augmentation(); // パスがあるときにはマッチングの更新
} while (t_found != n+2);
などというコードがあります。
do {// マッチされていない左端点からマッチされていない右端点へのパスがある限り
■■■■levelgraph(); // レベルグラフの構成
■■■■if (t_found == n+2) break;
■■■■else augmentation(); // パスがあるときにはマッチングの更新
} while (1);
と書いた方が分かりやすいですよね。
augmentation() 内では、グローバル変数 t_found の値は変更されません。
なので、以下のように書くのが標準的だと思います。
levelgraph();
while(t_found != n + 2){
■■■■augmentation();
■■■■levelgraph();
}
457デフォルトの名無しさん
2017/07/01(土) 09:42:20.68ID:OLSj8alI 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。
a = edgefirst[v1];
while(a != 0){
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
a = edgenext[a];
}
などというコードが本書のソースコードのいたるところで使われています。
↓のように書くべきですよね。
for(a = edgefirst[v1]; a != 0; a = edgenext[a]){
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
}
a = edgefirst[v1];
while(a != 0){
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
a = edgenext[a];
}
などというコードが本書のソースコードのいたるところで使われています。
↓のように書くべきですよね。
for(a = edgefirst[v1]; a != 0; a = edgenext[a]){
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
}
458デフォルトの名無しさん
2017/07/01(土) 09:46:11.85ID:OLSj8alI 茨木俊秀さんの本でも感じましたが、ひどいコードを書く人が多いですよね。
一番、驚いたのが野崎昭弘さんの本です。
goto 文を使わなくていいところで常用しています。
一番、驚いたのが野崎昭弘さんの本です。
goto 文を使わなくていいところで常用しています。
459デフォルトの名無しさん
2017/07/01(土) 09:53:17.51ID:w5457acR 粗さがしが得意みたいだから、出版社で校正でもやったら良いのでは?
460デフォルトの名無しさん
2017/07/01(土) 09:55:39.01ID:PrUYVLVg 伏字かと思ったらインデントかよ。
これが見やすいと思ったんだろうか?ここに辿り着くまでの思考過程を見てみたいわ。
これが見やすいと思ったんだろうか?ここに辿り着くまでの思考過程を見てみたいわ。
461デフォルトの名無しさん
2017/07/01(土) 09:59:03.29ID:OLSj8alI 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。
for (v = 1; v <= n; v++) parent[v] = unvisited;
というコードがあります。
点 v の親の処理ですが、深さ優先探索で使う定数である unvisited == -1 を流用しています。
親は訪問するものではないにもかかわらずです。
単に -1 という値が使いたいだけです。
ひどいコードです。
ホップクロフト - カープのアルゴリズムのところを読んでいます。
for (v = 1; v <= n; v++) parent[v] = unvisited;
というコードがあります。
点 v の親の処理ですが、深さ優先探索で使う定数である unvisited == -1 を流用しています。
親は訪問するものではないにもかかわらずです。
単に -1 という値が使いたいだけです。
ひどいコードです。
462デフォルトの名無しさん
2017/07/01(土) 12:24:50.45ID:HZmJrzKI >>460
基地外の思考過程なんて見たらSAN値下がるぞ。
基地外の思考過程なんて見たらSAN値下がるぞ。
463デフォルトの名無しさん
2017/07/01(土) 12:35:14.71ID:OLSj8alI 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。
このプログラムですが、意味不明に冗長なところがあるので超分かりにくいです。
もし、この本を読む人は、注意した方がいいです。
分かりやすい等価なコードにすこしずつ変えながら読んでいます。
ホップクロフト - カープのアルゴリズムのところを読んでいます。
このプログラムですが、意味不明に冗長なところがあるので超分かりにくいです。
もし、この本を読む人は、注意した方がいいです。
分かりやすい等価なコードにすこしずつ変えながら読んでいます。
464デフォルトの名無しさん
2017/07/01(土) 20:40:17.40ID:OLSj8alI 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。
プログラムに、非常に非効率な部分を発見しました。
深さ優先探索で最短パスを探す部分があるのですが、一つの最短パスを
発見した後も、うろうろと探索を続けています。 return 文で呼び出し元へと
遡って戻るべき箇所です。
具体的にいうと、p.95の void bipartite_dfs(int) 関数内の
bipartite_dfs(w1);
は、
bipartite_dfs(w1);
if(pathfound) return;
とすべきです。
ホップクロフト - カープのアルゴリズムのところを読んでいます。
プログラムに、非常に非効率な部分を発見しました。
深さ優先探索で最短パスを探す部分があるのですが、一つの最短パスを
発見した後も、うろうろと探索を続けています。 return 文で呼び出し元へと
遡って戻るべき箇所です。
具体的にいうと、p.95の void bipartite_dfs(int) 関数内の
bipartite_dfs(w1);
は、
bipartite_dfs(w1);
if(pathfound) return;
とすべきです。
465デフォルトの名無しさん
2017/07/01(土) 22:15:24.31ID:fqWBe1B0 俺様のアスペ日記
466デフォルトの名無しさん
2017/07/01(土) 23:27:45.18ID:OLSj8alI 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
のHopcroft-Karpのアルゴリズムのプログラムを一切変更を加えずに使用して、
Aizu Online Judgeの2部グラフのマッチングの問題を解かせてみたら、
1問目から正しい結果が得られませんでした。
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
では一つの例に対して、プログラムをチェックしているだけです。
その例に対しては正しい結果が得られます。
著者はおそらく他の例についてはチェックしていないと思われます。
これから原因を究明しようと思います。
ちなみに
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
での例ですが、この著者の旧著でも全く同じ例を使っています。
使いまわしですね。他の例は一度もチェックしていないようです。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
のHopcroft-Karpのアルゴリズムのプログラムを一切変更を加えずに使用して、
Aizu Online Judgeの2部グラフのマッチングの問題を解かせてみたら、
1問目から正しい結果が得られませんでした。
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
では一つの例に対して、プログラムをチェックしているだけです。
その例に対しては正しい結果が得られます。
著者はおそらく他の例についてはチェックしていないと思われます。
これから原因を究明しようと思います。
ちなみに
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
での例ですが、この著者の旧著でも全く同じ例を使っています。
使いまわしですね。他の例は一度もチェックしていないようです。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
467デフォルトの名無しさん
2017/07/01(土) 23:59:37.67ID:OLSj8alI あ、勘違いでした。
入力のフォーマットが会津と浅野の本で違いました。
入力のフォーマットが会津と浅野の本で違いました。
468デフォルトの名無しさん
2017/07/02(日) 12:42:08.55ID:KDfMECXZ マッチングといっても、いろいろな問題があるんですね。
安定マッチングと最大マッチングは互いに何の関係もない全く異なる問題ですね。
↓の講義は、安定マッチングについてですが、簡単ですね。
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/lecture-7-matching-problems/#vid_related
MITの微分積分の講義を見ると学生のレベルが低いという印象ですが、この講義を見ると
そうでもないような印象です。
安定マッチングと最大マッチングは互いに何の関係もない全く異なる問題ですね。
↓の講義は、安定マッチングについてですが、簡単ですね。
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/lecture-7-matching-problems/#vid_related
MITの微分積分の講義を見ると学生のレベルが低いという印象ですが、この講義を見ると
そうでもないような印象です。
469デフォルトの名無しさん
2017/07/02(日) 13:22:29.16ID:KDfMECXZ470デフォルトの名無しさん
2017/07/03(月) 08:45:45.65ID:b174092u 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
を読んでいます。
定理:
G のマッチング M に対して、 M が最大マッチングであるための必要十分条件は M に
関する増加パスが存在しないことである。
という定理が書いてあります。
十分性の証明が長すぎます。見た目はちょっとすっきりとしていていいのですが、長くて
素朴な証明法ではありません。
を読んでいます。
定理:
G のマッチング M に対して、 M が最大マッチングであるための必要十分条件は M に
関する増加パスが存在しないことである。
という定理が書いてあります。
十分性の証明が長すぎます。見た目はちょっとすっきりとしていていいのですが、長くて
素朴な証明法ではありません。
471デフォルトの名無しさん
2017/07/03(月) 08:46:22.05ID:b174092u 以下のような証明が素朴なよい証明だと思います。
G のマッチング M に対して、 M が最大マッチングであるための必要十分条件は M に関する増加パスが存在しないことである。
必要性は明らかである。
十分性について証明する。
G は連結である場合に証明できれば、 G が連結でない場合にも、明らかに定理は成り立つ。
そのため、 G は連結であると仮定する。
G には、 M に関する増加パスが存在しないと仮定する。
M の辺に接続されていない点をFreeな点と呼ぶことにする。
G にFreeな点が2点以上存在することはないことを背理法によって証明しよう。
a, b を G の任意のFreeな2点とする。 G は連結だから、 a, b を結ぶ単純なパスが存在する。
a = a_1, …, a_k = b をその単純なパスとする。
このとき、 a_1, …, a_i に含まれるFreeな点の数が 2 であるような i ≧ 2 が存在することは明らかである。
単純なパス a_1, …, a_i は明らかに増加パスである。
これは、 G には、 M に関する増加パスが存在しないという仮定に反する。
よって、 G にFreeな点が2点以上存在することはない
G にFreeな点が1点存在する場合には、 G の点の数は、奇数であり、明らかに M は最大マッチングである。
G にFreeな点が1点も存在しない場合には、 G の点の数は、偶数であり、明らかに M は最大マッチングである。
G のマッチング M に対して、 M が最大マッチングであるための必要十分条件は M に関する増加パスが存在しないことである。
必要性は明らかである。
十分性について証明する。
G は連結である場合に証明できれば、 G が連結でない場合にも、明らかに定理は成り立つ。
そのため、 G は連結であると仮定する。
G には、 M に関する増加パスが存在しないと仮定する。
M の辺に接続されていない点をFreeな点と呼ぶことにする。
G にFreeな点が2点以上存在することはないことを背理法によって証明しよう。
a, b を G の任意のFreeな2点とする。 G は連結だから、 a, b を結ぶ単純なパスが存在する。
a = a_1, …, a_k = b をその単純なパスとする。
このとき、 a_1, …, a_i に含まれるFreeな点の数が 2 であるような i ≧ 2 が存在することは明らかである。
単純なパス a_1, …, a_i は明らかに増加パスである。
これは、 G には、 M に関する増加パスが存在しないという仮定に反する。
よって、 G にFreeな点が2点以上存在することはない
G にFreeな点が1点存在する場合には、 G の点の数は、奇数であり、明らかに M は最大マッチングである。
G にFreeな点が1点も存在しない場合には、 G の点の数は、偶数であり、明らかに M は最大マッチングである。
472デフォルトの名無しさん
2017/07/03(月) 08:55:27.46ID:b174092u なんか他の本を調べてみても、
>>471
のような素朴な証明法が載っていませんね。
ソートするアルゴリズムが存在することを示せ
という問題があったとして、答えとして、バブルソートをあげれば十分であるにもかかわらず、
ヒープソートをあげるようなもんですね。
>>471
のような素朴な証明法が載っていませんね。
ソートするアルゴリズムが存在することを示せ
という問題があったとして、答えとして、バブルソートをあげれば十分であるにもかかわらず、
ヒープソートをあげるようなもんですね。
473デフォルトの名無しさん
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な頂点になるのでは?
頂点a b c d eがあって、
辺が、
a b
a c
a d のとき、
Mとして
a bを選べば、増加パスはないけど、
cとdはFreeな頂点になるのでは?
475デフォルトの名無しさん
2017/07/03(月) 22:09:21.73ID:d7TtC2S/476デフォルトの名無しさん
2017/07/03(月) 23:57:03.23ID:kWtGcdOg477デフォルトの名無しさん
2017/07/06(木) 14:52:18.01ID:MPcf+VnS 松坂君はおつむ弱いなー
478デフォルトの名無しさん
2017/07/07(金) 10:19:21.25ID:LuN3QDVY 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。
ネットワークフローについてですが、
ソースから流出する総フローが、
シンクに流入する総フローに
等しいということを自明のこととして、
証明していません。
これはOKなのでしょうか?
ネットワークフローについてですが、
ソースから流出する総フローが、
シンクに流入する総フローに
等しいということを自明のこととして、
証明していません。
これはOKなのでしょうか?
479デフォルトの名無しさん
2017/07/07(金) 10:33:49.72ID:Hkhwo5qO おつむが弱いアスペ参上
480デフォルトの名無しさん
2017/07/07(金) 11:03:27.05ID:LuN3QDVY481デフォルトの名無しさん
2017/07/07(金) 11:04:16.11ID:LuN3QDVY 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
は、計算量の評価の説明がひどすぎます。
ほとんど結果しか書いていません。
は、計算量の評価の説明がひどすぎます。
ほとんど結果しか書いていません。
482デフォルトの名無しさん
2017/07/07(金) 11:53:23.95ID:LuN3QDVY >>478
少し後のところで、
ソースから流出する総フローが、
シンクに流入する総フローに
等しいという結果を特別な場合として
含むような結果を示していました。
ソースから流出する総フローが、
シンクに流入する総フローに
等しいということが自明なことならば、
そのより一般化された結果も自明です。
著者の態度は矛盾していますね。
少し後のところで、
ソースから流出する総フローが、
シンクに流入する総フローに
等しいという結果を特別な場合として
含むような結果を示していました。
ソースから流出する総フローが、
シンクに流入する総フローに
等しいということが自明なことならば、
そのより一般化された結果も自明です。
著者の態度は矛盾していますね。
483デフォルトの名無しさん
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
売り上げたけど何か聞きたいことはある?」回答いろいろ
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
486デフォルトの名無しさん
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];
■■■■■■■■}
■■■■}
}
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];
■■■■■■■■}
■■■■}
}
488デフォルトの名無しさん
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;
■■■■■■■■■■■■}
■■■■■■■■}
■■■■}
}
すっきりとしていて分かりやすいですね。↓
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 浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)のプログラムは
すべて↑こんな感じなので、いちいち自分でまともな等価なプログラムに改善してから
読む必要に迫られます。
すべて↑こんな感じなので、いちいち自分でまともな等価なプログラムに改善してから
読む必要に迫られます。
491デフォルトの名無しさん
2017/07/08(土) 10:29:14.58ID:W4vGtvme 海苔弁プログラムと呼ぶことにしよう
492デフォルトの名無しさん
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
↓こちらが浅野さんの 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
↓こちらが浅野さんのソースコードです:
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
495デフォルトの名無しさん
2017/07/08(土) 14:46:01.89ID:shVOEDs/ ■■■■■■■■■■■■■
■■このスレ闇が深すぎ■■
■■■■■■■■■■■■■
■■このスレ闇が深すぎ■■
■■■■■■■■■■■■■
496デフォルトの名無しさん
2017/07/08(土) 15:34:28.51ID:/nxmjkTk すみません、松坂くんて誰ですか
497デフォルトの名無しさん
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/
教科書の荒さがして著者をdisることを生きがいとしてる厨房
ID:bx7kaphQ
Daniel Marcus Graph Theory を読む。 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/math/1497007079/
>>497
高等な趣味だと思うよ,よく頑張っているね
高等な趣味だと思うよ,よく頑張っているね
499デフォルトの名無しさん
2017/07/08(土) 19:37:28.26ID:ICTsGxtb 馬鹿アスペ同士仲良く
500デフォルトの名無しさん
2017/07/09(日) 17:28:01.51ID:X4hx0gz3 お前ら、ちゃんと次スレ立ててやれよ?
隔離スレさえあればこっちに被害は及ばないからな
隔離スレさえあればこっちに被害は及ばないからな
501デフォルトの名無しさん
2017/07/09(日) 17:29:01.52ID:ZR+XIVIQ お前がやれよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★11 [BFU★]
- 高市政権の経済環境、アベノミクスと対極 インフレ・円安・金利上昇 [蚤の市★]
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 ★2 [蚤の市★]
- 【野球】「地上波で放送しないWBC」は2軍選手中心で十分! 今こそネットフリックスに『ノー』を突き付けてほしい 江本氏が提言 [冬月記者★]
- 中国官製報道「日本経済はもうもたない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 ★2 [1ゲットロボ★]
- 国民・榛葉氏「中国焦ってる」 ★2 [ぐれ★]
- とらせん IP
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap599
- 福島競馬3回5日目
- こいせん 全レス転載禁止
- 巨専】
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1806
- 【悲報】鈴木コメ大臣「農協の守護神」だった…消費者でなく農協を向いて働いている模様 [993451824]
- 【悲報】白浜町、パンダを返還しても中国に依存してた事がバレて馬鹿にされる🤭 [616817505]
- 【実況】博衣こよりのえちえちゼルダの伝説 ムジュラの仮面🧪 ★2
- 空き家や廃墟だらけなのに、解体業の倒産が史上最多ペース… この国、一体これからどうなるかワクワクしてくっぞ [452836546]
- ゆず、香港・上海・台北ツアー突如中止wwwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 【画像】高市早苗、車のナンバー「37-77」が中国人に見つかる!(盧溝橋事件は1937年7月7日)
