板検索:
データ構造,アルゴリズム,デザインパターン総合スレ 3 (941)
まとめビュー
重複読み込みスレ:このスレは、2重読み込みでレスが重複している可能性があります。修復する場合はこちらをクリックしてください。
1
デフォルトの名無しさん[sageteoff]   投稿日:2016/06/19 14:47:29  ID:5KvSKdL/.net(4)
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所

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

【関連スレ】
3Dアルゴリズム全般
<集大成>アルゴリズム大辞典
アルゴリズム総合スレ in ム板

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


2
デフォルトの名無しさん[]   投稿日:2016/06/19 14:52:46  ID:5KvSKdL/.net(4)
http://hissi.org/read.php/tech/20160619/YW80V0xnZlg.html
へんなのが居着いたな

981 :デフォルトの名無しさん[sage]:2016/06/19(日) 12:16:06.94 ID:ao4WLgfX
>980
いつも思うんだけれども,この碁の勝負,棋譜は公開されているの?

985 :デフォルトの名無しさん[sage]:2016/06/19(日) 12:47:45.21 ID:ao4WLgfX
>982
どこに貼ってあるかな?たぶん公開されてないんじゃないかな

986 :デフォルトの名無しさん[sage]:2016/06/19(日) 12:59:15.60 ID:ao4WLgfX
http://blogs.yahoo.co.jp/ten_nan_91/35774553.html

988 :デフォルトの名無しさん[sage]:2016/06/19(日) 13:02:20.35 ID:ao4WLgfX
ありがとう

1000:デフォルトの名無しさん[sage]:2016/06/19(日) 14:49:22.87 ID:ao4WLgfX
0
コメント4件

3
デフォルトの名無しさん[sage]   投稿日:2016/06/19 15:04:05  ID:IRfn+3ke.net(2)
>1 乙

4
デフォルトの名無しさん[sage]   投稿日:2016/06/19 16:13:42  ID:gP7jNw8f.net(2)

5
デフォルトの名無しさん[sage]   投稿日:2016/06/19 17:17:34  ID:ao4WLgfX.net(2)
ruby って変な人が多いんだね,俺も今 ruby をマスターしようと必死ではあるが

6
デフォルトの名無しさん[sage]   投稿日:2016/06/19 17:37:31  ID:X+E3gNs8.net(2)
>2
盛大な自演だったってこと?

7
デフォルトの名無しさん[]   投稿日:2016/06/19 19:39:00  ID:iKM7Z0CI.net(6)
Haskellって勉強する意味ある?
実用性はないよね?

8
デフォルトの名無しさん[sage]   投稿日:2016/06/19 19:46:20  ID:0JS60cqV.net(2)
雇われプログラマには不要

9
デフォルトの名無しさん[]   投稿日:2016/06/19 20:49:00  ID:iKM7Z0CI.net(6)
なぜ、HaskellやSchemeをありがたがる人がいるの?
どう考えてもC#とかのほうが生産性が高いのに。
単なるかっこつけ?


10
デフォルトの名無しさん[]   投稿日:2016/06/19 20:49:49  ID:iKM7Z0CI.net(6)
MITのコンピュータの入門書もSchemeを使っていたりする。

11
デフォルトの名無しさん[sage]   投稿日:2016/06/19 20:59:07  ID:Axw7zBsF.net(2)
言語としてのlisp最強論は理解できるけどね。
実用的ではないのは言語自体の問題ではなくてシェアとかサポートする企業の存在とかコミュニティの問題。

12
デフォルトの名無しさん[sage]   投稿日:2016/06/19 23:46:31  ID:XG1Xog94.net(2)
haskellやschemeは勉強したくない奴には不要
雇われには言語選択権はないので、かりにそれらがよいものであったとしたとしても、フラストレーションたまるだけだろ

一言でいうなら自分で一から十まで計算を構築するための言語だな
ライブラリ駆使して、なんとかすることが求められている人間にはこんなものは不要
コメント4件

13
デフォルトの名無しさん[]   投稿日:2016/06/20 00:15:53  ID:VsbhBHIt.net(2)
>12
マジかよ

14
デフォルトの名無しさん[sage]   投稿日:2016/06/20 00:57:04  ID:rbqmVuz6.net(2)
>12
> ライブラリ駆使して、なんとかすることが求められている人間にはこんなものは不要

ライブラリを駆使するのが今のプログラマに求められている技術だからな。

MITがSICPを教えなくなった理由
https://ezoeryou.github.io/blog/article/2016-05-05-sicp.html
> 今日では、状況が変わっている。今のエンジニアは、自分が完全に理解していない複雑なハードウェアの
> ためのコードを日常的に書いている(そして、大抵の場合、企業秘密により完全に理解するのは不可能である)。
> ソフトウェアでも状況は同じだ。プログラミング環境は、多大な機能を提供する巨大なライブラリ群の集合として存在している。
> Sussmanの今日の生徒は、その時間の大半を、ライブラリのマニュアルを読み、どのように組み合わせれば目的が
> 達成できるのかを把握することに費やしている。Sussman曰く、今日のプログラミングは、「より科学に近い。
> ライブラリを持ち寄って、つっつき回すのだ。プログラムを書くには、突っつき回して、どのように動作するかを観察する。
> そして、「目的を達成するために改造できるか」と考えるのだ」。SICPの「合成による解析」という物の見方である、
> 小さな、単純な部品を組み合わせて大きなシステムを作るということは、もはや今日の状況にそぐわなくなった。
> 今や、我々のプログラミングはつっつき回すことで行われている。
>
> なぜPythonを選んだかということについて、Sussmanは、"late binding"に決定したと冗談を飛ばした。
> Pythonには大量のライブラリがあり、教育者の様々な実習に使いやすい(たとえば、ロボットを制御するソフトウェアを書くなど)
コメント2件

15
デフォルトの名無しさん[]   投稿日:2016/06/20 06:52:18  ID:1vrQKLsp.net(12)
HaskellやSchemeの利点は?
少なくとも、分かりにくいよね。

16
デフォルトの名無しさん[sage]   投稿日:2016/06/20 08:05:44  ID:8yK3ULXk.net(2)
オブジェクト指向程ではないけどな

17
デフォルトの名無しさん[sage]   投稿日:2016/06/20 12:30:23  ID:iz9OSKHh.net(4)
エンジニアの選定時の足切りにちょうどいいよ

18
デフォルトの名無しさん[sage]   投稿日:2016/06/20 18:11:51  ID:Z8Or5TTF.net(2)
その基準で剪定できるのはかなり恵まれてる気が
コメント4件

19
デフォルトの名無しさん[sage]   投稿日:2016/06/20 18:23:24  ID:78XmmaUt.net(2)
>14
>今日のプログラミングは、「より科学に近い。

ここは変だな
「より工学に近い。」
というなら判るが
コメント2件

20
デフォルトの名無しさん[]   投稿日:2016/06/20 18:31:26  ID:1vrQKLsp.net(12)
SICPをプログラミング初学者に教えるというのは確かに異様だよね。

やっとまともになったというだけの話。

21
デフォルトの名無しさん[]   投稿日:2016/06/20 18:35:05  ID:1vrQKLsp.net(12)
コンピュータサイエンスの中でアルゴリズムとデータ構造ってどれくらい重要な科目なの?

22
デフォルトの名無しさん[]   投稿日:2016/06/20 18:50:31  ID:FhfmjeRD.net(2)
アルゴリズム + データ構造 = プログラム。
ということは。
プログラムの占める割合と等価なのでは。

23
デフォルトの名無しさん[]   投稿日:2016/06/20 18:52:50  ID:1vrQKLsp.net(12)
なんか計算の理論とかのほうが上みたいな感じじゃない?

24
デフォルトの名無しさん[]   投稿日:2016/06/20 18:53:47  ID:1vrQKLsp.net(12)
コンピュータサイエンスで最も重要な科目は、コンパイラとかOS?

25
デフォルトの名無しさん[sage]   投稿日:2016/06/20 18:53:55  ID:K++azvDQ.net(2)
自演乙

26
デフォルトの名無しさん[sage]   投稿日:2016/06/20 19:14:10  ID:/YC1nkci.net(2)
>18
この道30年の修業でようやく一人前

27
デフォルトの名無しさん[sage]   投稿日:2016/06/20 20:44:30  ID:EiR/M7I9.net(2)
寿司職人乙
コメント2件

28
デフォルトの名無しさん[sage]   投稿日:2016/06/20 20:58:16  ID:amTC+NJd.net(2)
schemeやらないとアルゴリズムとデータ構造を組み立てるってことがどういうことなのか、コードでわからないだろうな
コメント4件

29
デフォルトの名無しさん[]   投稿日:2016/06/20 21:06:41  ID:taQ4Dh1l.net(2)
>28
javaでよくない?

30
デフォルトの名無しさん[sage]   投稿日:2016/06/20 21:24:25  ID:iSiyYjqf.net(2)
javaでconsを表現するときにどうすればいいか知ってますか?

31
デフォルトの名無しさん[]   投稿日:2016/06/20 21:29:28  ID:1vrQKLsp.net(12)
>28

アルゴリズムとデータ構造の本に疑似コードが載っていることがあるけど、
Scheme風に書かれていることなど決してない。

32
デフォルトの名無しさん[sage]   投稿日:2016/06/20 21:47:01  ID:eW3OX+fW.net(4)
>27
植木職人

33
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:10:02  ID:iz9OSKHh.net(4)
>18
未経験でも理解出来るならとりあえず地雷の可能性は下がる

34
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:22:55  ID:m9phkWTx.net(2)
恵まれてない会社だと全員切る羽目になるって話だろw

35
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:43:48  ID:zvz85rzc.net(4)
31
そのSICPはschemeでかかれているわけで
昨今のライブラリ重視の観点からいえば、javaがいいっていうのはとおるけど、アルゴリズムかくのにjavaがいいってのは、センスないというか、お手入れ大好きなんだろうな

36
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:49:30  ID:eW3OX+fW.net(4)
引用できないやつに言われると

37
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:50:33  ID:zvz85rzc.net(4)
スマホで>>うつのめんどいんだよ

38
デフォルトの名無しさん[sage]   投稿日:2016/06/22 04:43:48  ID:W4spe1mc.net(2)
日立、新型半導体コンピュータの実用化に向けた前処理アルゴリズムを開発
http://news.mynavi.jp/news/2016/06/21/172/

新型半導体コンピュータの実用化に向けて、
要素間の複雑なつながりを規則的な構造に自動変換する前処理アルゴリズムを開発
http://www.hitachi.co.jp/New/cnews/month/2016/06/0621a.html

関連記事
日立、量子コンピュータに匹敵する性能の室温動作の新型コンピュータを試作
http://news.mynavi.jp/news/2015/02/23/121/

39
デフォルトの名無しさん[]   投稿日:2016/06/22 07:14:40  ID:rmORGvIR.net(6)
日本人の書いたアルゴリズムとデータ構造の本でまともなのって1冊もないの?
コメント4件

40
デフォルトの名無しさん[sage]   投稿日:2016/06/22 07:53:05  ID:HSGRYDR8.net(2)
>39
まともとは?

41
デフォルトの名無しさん[]   投稿日:2016/06/22 07:59:50  ID:rmORGvIR.net(6)
日本人の書いた本は薄っぺらくて説明も十分ではなく厳密でもなく網羅性もない本ばかりに思う。

42
デフォルトの名無しさん[]   投稿日:2016/06/22 08:00:26  ID:rmORGvIR.net(6)
杉原厚吉の本は特にひどいと思った。

43
デフォルトの名無しさん[sage]   投稿日:2016/06/22 11:07:15  ID:DmPvlaR4.net(2)
>39
そのものズバリでアルゴリズムとデータ構造という本が岩波から出てる

44
デフォルトの名無しさん[sage]   投稿日:2016/06/22 12:53:15  ID:YevSrNYa.net(2)
まともな本とは?
argolythm introduction?
knuth本?
どっちも使い物にならないが
コメント4件

45
デフォルトの名無しさん[sage]   投稿日:2016/06/22 13:50:41  ID:WHe3DbmR.net(2)
>44
1単語に3箇所もミス入れるなよ

46
デフォルトの名無しさん[sage]   投稿日:2016/06/22 14:13:53  ID:sEqYA8cS.net(2)
根幹のタームの綴りも知らん半可通に何を教われというのか

47
デフォルトの名無しさん[sage]   投稿日:2016/06/22 14:17:48  ID:yBOVYSwe.net(2)
3ヶ所もあると誤り訂正も利かないんじゃまいか

48
デフォルトの名無しさん[sage]   投稿日:2016/06/22 14:22:16  ID:EwWgL4+X.net(2)
バースト発生させんな

49
デフォルトの名無しさん[sage]   投稿日:2016/06/22 15:16:40  ID:2z7j8yec.net(2)
????????????

50
デフォルトの名無しさん[sage]   投稿日:2016/06/22 21:44:16  ID:MWgF3eo3.net(2)
>44
そんな頭じゃ使いものにならんのも頷けるわ

51
デフォルトの名無しさん[sage]   投稿日:2016/06/22 22:23:26  ID:Z2xvvdgM.net(2)
こんな揚げ足とりの老害から何を学べと?

52
デフォルトの名無しさん[sage]   投稿日:2016/06/22 22:52:24  ID:X6XCfxlz.net(2)
馬鹿の自己紹介されても困る

53
デフォルトの名無しさん[sage]   投稿日:2016/06/24 11:47:43  ID:hSLmnyaY.net(2)
>19
は?変なのはお前だ
プログラミングは最初から工学的だろ何言ってんだ?

そもそもお前は工学と科学を理解してないから可笑しなことを言うんだ

54
デフォルトの名無しさん[sage]   投稿日:2016/07/15 12:10:18  ID:P21uCIN+.net(2)
何ヶ月か前に近代科学社に電話でセジウィックアルゴリズムの第四版の翻訳の予定はありますか、と訊いてみたが無いって返事だったんだよな
書いて欲しいんだがな

55
デフォルトの名無しさん[sage]   投稿日:2016/07/16 08:00:53  ID:Akpk7DL9.net(2)
アルゴリズムさえ知ってりゃ動くプログラムは書けるから他は優先度低いと考えてた結果
データ構造すら分からない化石プログラマになってしまった

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

アルゴリズムみたいにオーダー詰める楽しみはないけど…

56
デフォルトの名無しさん[sage]   投稿日:2016/07/18 09:37:52  ID:YPoLSDg9.net(2)
両方大事だろ。
データ構造が整理されてないとアルゴリズムも煩雑になるし。

57
デフォルトの名無しさん[]   投稿日:2016/07/21 23:06:49  ID:TpMXx+Na.net(2)
vEB木の「僕の考えた最強のデータ構造」感が大好きなんだが誰か共感してくれる人いる?

58
デフォルトの名無しさん[sage]   投稿日:2016/07/22 07:32:19  ID:ot11jjQx.net(2)
データ構造の基本は、以下の2つと、他にはハッシュがある

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

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

シーケンシャルは、リンクをたどるから、アクセスには時間がかかるけど、
要素の追加・削除では、リンクを付け替えるだけで、要素をずらさないから速い

59
デフォルトの名無しさん[sage]   投稿日:2016/07/26 06:56:53  ID:HN1KCMsQ.net(2)
letの時代がもうすぐそこまで来ているよね

60
デフォルトの名無しさん[sage]   投稿日:2016/07/26 14:27:18  ID:z5g/0KTZ.net(2)
let
-------
 λ

61
スモモンガー[sage]   投稿日:2016/09/23 22:08:49  ID:oKXONAGb.net(2)
どうも、お久しぶりです。スモモンガーです。(誰って感じだと思いますがそれで結構です)
以前紹介したアルゴリズムですが、結局全然応用分野は見つかっておりません。
前回は画像処理分野を中心に解説しましたが今回はより簡単に実装ができる
探索分野に絞って動画を作ってみました。つたない動画で大変申し訳ございませんが
見てみていただけたら幸いです。特許などは取得しておりませんのでどうかご自由に
お使いください。長文失礼いたします。痛いのは承知なのですが応用分野を必死に
探しているのでどうかご協力よろしくお願いします。

https://youtu.be/5m3kPHO2w98

以上、どうぞよろしくお願いします
コメント6件

62
デフォルトの名無しさん[sage]   投稿日:2016/09/23 22:16:41  ID:xWgfj234.net(2)
誰だ

63
デフォルトの名無しさん[sage]   投稿日:2016/09/23 22:42:52  ID:fJ2M8QeM.net(2)
帰れ

64
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:14:59  ID:osPXZH57.net(2)
>61
最初の数分見ましたが..

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

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

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

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

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

以上、感想でした

65
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:32:41  ID:n5/uj8Su.net(6)
64さん。ありがとうございます。私はこういうスライドを作る機会があまりないのでこんな形になってしまいました。
実は整っているという抽象的な単語を使っていますが、実は定量的にこれを測る方法はまだ思いついていません。
そのほかのご指摘はその通りだと思います。
貴重なご意見ありがとうございます

66
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:49:16  ID:B225F1SQ.net(2)
動画見るの面倒だから3行で説明して
コメント2件

67
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:53:53  ID:trsNBxRI.net(2)



コメント2件

68
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:55:26  ID:n5/uj8Su.net(6)
>66
まず目的のキーと現在探索中のキーの差をとる。
それを隣接するキーの最大値で割る。
その値だけ進む。

まあ、原理は単純なアルゴリズムです

69
デフォルトの名無しさん[sage]   投稿日:2016/09/24 10:46:59  ID:iZTaxfZT.net(2)
>隣接するキーの最大値

これをあらかじめ求めておかなきゃならんってのが一番のネックだな。
一般のデータに対する探索だと、バイナリサーチと比較したメリットと言っていたものの大半が消し飛んでしまう。
コメント2件

70
デフォルトの名無しさん[sage]   投稿日:2016/09/24 10:49:01  ID:9ZsTQHH6.net(2)
>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
...
と線形時間になる(やり方あってるよね?)
演算している分、比較だけの線形探索より処理速度が遅くなる
コメント2件

71
デフォルトの名無しさん[sage]   投稿日:2016/09/24 11:09:23  ID:n5/uj8Su.net(6)
>69
>70
確かにキーの最大値を求めるのは線形時間かかります。なのであらかじめ、隣接するキーの最大値が分かっているデータに使用可能です。
探索の最悪時間は線形時間ですが、平均時間はlogのオーダーになるのではないでしょうか。私が不勉強なもので理論的には、示めせませんが多分logのオーダーになると思います。
ソートしなくても探索できるのは差の絶対値を取るからです。動画に入れるのを忘れました。すいません。
計算についてはそれであっています。わざわざご指摘ありがとうございます
コメント4件

72
デフォルトの名無しさん[sage]   投稿日:2016/09/25 01:17:16  ID:MeFnEkA4.net(2)
>71
上でも指摘されているが整っているの定義が不明
二分探査の場合は、存在しないこともlog n で確認可能だが、この手法は整っているの定義次第では存在しない者の確認が非常に時間かかる(ソートされている場合は存在するものと同等だが、そうすると二分探索よりも利点が少なくなる)
平均計算量を求めるのはちと難しそうだけど、格納される値の値域に依存するかな
たぶん、log n 程良くはないと思う
コメント2件

73
デフォルトの名無しさん[sage]   投稿日:2016/09/25 09:29:52  ID:byM8xGto.net(2)
>72
ご指摘ありがとうございます。確かに整っているの定義ができていないのが一番の難点ですよね。いつか勉強して考えたいと思います

74
デフォルトの名無しさん[]   投稿日:2016/09/25 12:26:29  ID:3wiQalb8.net(2)
>67
ごめん
みたけど
だめだこりゃ
コメント4件

75
デフォルトの名無しさん[sage]   投稿日:2016/09/25 12:52:11  ID:NTqjAG/u.net(2)
>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回の演算

結論として
このアルゴリズムの最大の欠点は差の最大値が必要な事を含めて
データ列の内容に左右されてしまうことだな
この手のアルゴリズムはデータの外側にあるべきだな

76
デフォルトの名無しさん[sage]   投稿日:2016/09/25 14:20:01  ID:8PebKpFu.net(2)
>74
88

77
デフォルトの名無しさん[sage]   投稿日:2016/09/26 13:42:01  ID:ymOrEJcI.net(2)
>61
すもモンがnewton法をガチで知らないのであればnewton法をまず勉強するべき
カンガルーの敵はバイナリではなくnewtonだ
コメント2件

78
スモモンガー[sage]   投稿日:2016/09/26 20:32:40  ID:7l1kSKga.net(4)
確かにデータ間の差に一様離散分布を使ったのは公平ではなかったです。
なので、データを完全にランダムにして調べてみました。
データはCのrand()%1000000で10000個生成しソートして、
探索の時配列のうちランダムな値を探すキーとし間を線形探索、カンガルー法
バイナリサーチで100回比べてみました。
その結果線形探索では平均比較回数約4963回最大比較回数は9972回でした
カンガルー法は平均比較回数約70回 最大比較回数は111回でした。
バイナリーサーチはやはり一番はやく、平均比較回数約12回、最大比較回数は14回でした
皆さんがご指摘の通りやはりバイナリーサーチが一番はやいようです。
ただ、例えばKMP法が逆行がないから使われているようにカンガルー法も逆行がないので
使うことはできないでしょうか?もし、とんちんかんなこと言ってたらすいません。

79
デフォルトの名無しさん[sage]   投稿日:2016/09/26 20:37:55  ID:7l1kSKga.net(4)
>74
www確かにそうかもしれませんね。
>77
一応私はニュートン法については知っています。Newton法は求める関数の微分した値を
しっていなければならないとおもうのですが、現実の探索だと関数が微分できないことも
多いかと思います。ちょっと、私が使った例が悪くてsinカーブや円を使ったのがよく
なかったのかもしれません。整っていてソートされていないデータとして扱いやすかったので
sin関数を使ったのであってとくにデータが微分可能である必要はありません。円と
Y切片の交点も中学生でも二次方程式ときゃいいのでもっと簡単にできますが、本来は
多角形とさまざまな図形の交点を探るアルゴリズムです。円を使ったのは例をわかりやすく
したかったからです。

80
デフォルトの名無しさん[]   投稿日:2016/10/16 18:51:48  ID:LqkHCFhg.net(2)
状態遷移ってどういうステータス持てばいいの?

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

というとき、A と B のほかに AからBになるのを待ってる状態と
BからAになるを待ってる状態の 2つがさらに状態として必要?
過渡状態も状態?
コメント2件

81
デフォルトの名無しさん[sage]   投稿日:2016/10/17 07:56:46  ID:TukeUWYl.net(2)
>80
システムの設計次第。
切り替え中、待ち中が状態として存在するのならプログラムでも状態にすればいい
コメント2件

82
デフォルトの名無しさん[sage]   投稿日:2016/10/17 15:43:18  ID:srAFoI0L.net(2)
>81
そりゃそうだけど
状態がn個あると過渡状態がたくさんになるのは
辛い
コメント2件

83
デフォルトの名無しさん[sage]   投稿日:2016/10/17 17:53:14  ID:75S5w4gh.net(2)
現在の状態と次の状態のペアにすれば?

84
デフォルトの名無しさん[sage]   投稿日:2016/10/17 21:23:44  ID:sc7L52q+.net(2)
辛かろうが状態が存在するのならしょうがあるまい。
あるいは遷移をアトミックにして遷移中状態そのものを無くすか、遷移中の動作を共通化
できるなら遷移先をパラメータ化して「*への遷移中」という1状態にしてしまうとか。

85
デフォルトの名無しさん[sage]   投稿日:2016/10/17 23:34:18  ID:WkWdUImM.net(2)
>82には無理ということで

86
デフォルトの名無しさん[sage]   投稿日:2016/11/05 20:41:10  ID:PXYcOtjJ.net(2)
ポリモーフィックなクラスの相互作用において特定の型の組み合わせの場合のみ処理を特殊化したい場合はどうすればいいのだろう?

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);

87
デフォルトの名無しさん[sage]   投稿日:2016/12/12 23:13:40  ID:IcWOSn01.net(2)
デザインパターンを使って実装すると、年長プログラマーから、またこんなことしやがって的な拒否反応が帰ってくるんだがどうすれば
コメント2件

88
デフォルトの名無しさん[sage]   投稿日:2016/12/12 23:42:41  ID:bt79hYqC.net(2)
排除する他道は無い。

89
デフォルトの名無しさん[sage]   投稿日:2016/12/12 23:50:03  ID:hGpJarHd.net(2)
転職しろ

90
デフォルトの名無しさん[sage]   投稿日:2016/12/13 03:19:26  ID:neuXXcOh.net(2)
若者で組合(または派閥)を創る

91
デフォルトの名無しさん[sage]   投稿日:2016/12/13 08:14:05  ID:5xcG7lRc.net(2)
>87 がどんなコードを書いたかも分からんのに

92
デフォルトの名無しさん[sage]   投稿日:2016/12/13 18:53:42  ID:MUcELcjh.net(2)
下手くそがデザインパターンとか使うと逆にこんがらがるからなぁ
老害とどっこいどっこいだろ

93
デフォルトの名無しさん[]   投稿日:2016/12/13 21:32:18  ID:lYWHr0pJ.net(2)
マルチスレッドで、なんの考えもなくオブザーバー使いまくられて、データ破壊しまくられた時には、本気で殺意を抱いたよ

94
デフォルトの名無しさん[]   投稿日:2016/12/16 15:12:11  ID:kO0vFktz.net(2)
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』

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

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

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

というのがあります。

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

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

よろしくお願いします。
コメント2件

95
デフォルトの名無しさん[sage]   投稿日:2016/12/16 15:34:53  ID:n8JQ6xp/.net(2)
assertionじゃね
コメント2件

96
デフォルトの名無しさん[]   投稿日:2016/12/17 16:05:18  ID:lvQHWty7.net(2)
完成形をいきなり見てると不思議に思うよね。
でも実際には作成中のバグを考慮して、最初にチェックを入れておくもんなんだよね。
まあ、一言で言えばassertなんだけど。

ただ、作業やデバッグ用には必須であっても、その本の例示として必要か?と言われれば、確かにいらない気がする。
コメント2件

97
デフォルトの名無しさん[]   投稿日:2016/12/17 16:09:26  ID:GDWdcO6h.net(14)
>95-96

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

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

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

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』はお持ちでしょうか?
もし、お持ちでないようでしたら該当箇所の画像をアップロードします。
コメント4件

98
デフォルトの名無しさん[]   投稿日:2016/12/17 16:23:27  ID:GDWdcO6h.net(14)
>94

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

http://imgur.com/zKVWzAJ.jpg
http://imgur.com/owa8NkX.jpg
http://imgur.com/NmCczss.jpg
コメント6件

99
デフォルトの名無しさん[sage]   投稿日:2016/12/17 16:42:25  ID:a9hyyPvt.net(6)
>97
参考文献ならパクってるとは言わない

100
デフォルトの名無しさん[sage]   投稿日:2016/12/17 16:43:27  ID:a9hyyPvt.net(6)
>98
こういうのが本当のパクり
訴えられたら負ける

101
デフォルトの名無しさん[sage]   投稿日:2016/12/17 18:12:28  ID:rDdwnYMe.net(4)
>97
他の本も読んでみるとわかると思うけど、プライオリティキューを二分木ヒープで実装するのは定番で、どの本でも大体同じことが書いてある
コメント2件

102
デフォルトの名無しさん[]   投稿日:2016/12/17 19:29:55  ID:GDWdcO6h.net(14)
>98

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

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

heapIncreaseKey(A, i, key) を何か別の用途に使う場合があって、そのときに必要に
なるのならば納得しますが。

103
デフォルトの名無しさん[]   投稿日:2016/12/17 19:31:29  ID:GDWdcO6h.net(14)
>101

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

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

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

完全にパクりだと思います。
コメント2件

104
デフォルトの名無しさん[]   投稿日:2016/12/17 19:35:00  ID:a9hyyPvt.net(6)
>103
参考文献に書いてあるんだからパクリも糞も無い罠
参考文献に書き漏れたら小保方さんみたいに突っ込まれるが

105
デフォルトの名無しさん[]   投稿日:2016/12/17 19:35:29  ID:GDWdcO6h.net(14)
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の
他のプログラムもおそらくすべて『アルゴリズムイントロダクション』の
プログラムをそのまま使っています。

恥を知れと言いたいです。

106
デフォルトの名無しさん[]   投稿日:2016/12/17 19:36:34  ID:GDWdcO6h.net(14)
参考文献に文献を挙げれば何でも許されるということはないと思いますが。

107
デフォルトの名無しさん[]   投稿日:2016/12/17 19:39:42  ID:GDWdcO6h.net(14)
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、

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

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

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

>98

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

意味不明としか言えないかと思います。

108
デフォルトの名無しさん[sage]   投稿日:2016/12/17 19:42:21  ID:C/wQAZQ3.net(2)
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、
『アルゴリズムイントロダクション』のほうもまたどっか別の本からのパクリの悪寒。

109
デフォルトの名無しさん[sage]   投稿日:2016/12/17 19:47:48  ID:YhK78PBA.net(2)
"error: heap underflow" でググるといっぱい出てくる

110
デフォルトの名無しさん[sage]   投稿日:2016/12/17 19:57:50  ID:rDdwnYMe.net(4)
ID:GDWdcO6h は何をそんなに怒ってるの?
問題が解けなくてイライラしてるだけ?

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

新しい本を書くときは参考文献よりもわかりやすくなるように、説明やイラスト、擬似コードを変えたり、あるいは同じものを流用することもあるだろう

111
デフォルトの名無しさん[sage]   投稿日:2016/12/17 20:55:04  ID:jmPH7DRp.net(2)
disるのがはやってるらしい

112
デフォルトの名無しさん[sage]   投稿日:2016/12/18 00:45:20  ID:aCKcGLhu.net(8)
プログラミングコンテスト攻略のための、
アルゴリズムとデータ構造、渡部有隆(わたのべ ゆたか)、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  ID:VFzWAIXP.net(4)
めんどくさ

114
デフォルトの名無しさん[sage]   投稿日:2016/12/18 01:14:58  ID:aCKcGLhu.net(8)
漏れも、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、となり複雑だから
コメント4件

115
デフォルトの名無しさん[sage]   投稿日:2016/12/18 01:56:35  ID:05Ug+E6t.net(6)
>114
汚すぎるコードだ。なんだろう。初心者とも違うな。
まるで20年ぐらい前から成長してない人が書いたコードのようだ。
コメント2件

116
デフォルトの名無しさん[]   投稿日:2016/12/18 02:12:34  ID:KR24tnjc.net(2)
>115
ド素人と丸出しの感想文だな

117
114[sage]   投稿日:2016/12/18 04:57:12  ID:aCKcGLhu.net(8)
すまぬ

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

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

Kotlin, Electron やら何やら、最近の言語に、ついていけてないw

118
デフォルトの名無しさん[sage]   投稿日:2016/12/18 08:19:04  ID:05Ug+E6t.net(6)
> 本当は、== ではなく、型も一致する厳密等価演算子、=== を使うべきだろう
そういうレベルじゃない。

無駄なロジック、意味不明な変数名、多すぎるコメント、
コードの意味を何一つ分かってないとしか思えないといってんの

119
デフォルトの名無しさん[sage]   投稿日:2016/12/18 11:08:48  ID:7J/3tpZx.net(2)
俺はむしろここ
> このソースコードのライセンスは、MIT License です
> Original Copyright (c) 2014 Michihito Seto All Rights Reserved.
残飯を神棚に飾るが如く宣言
ここにこそ初心者らしさが凝縮されてる
コメント2件

120
デフォルトの名無しさん[]   投稿日:2016/12/18 11:50:21  ID:5nrc1ooF.net(20)
>114

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

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

というのは意味があるのでしょうか?

121
デフォルトの名無しさん[sage]   投稿日:2016/12/18 11:50:54  ID:05Ug+E6t.net(6)
jsdo使ってるやつって汚いコードが多いよな。
素人が使いたくなる機能でもあんのか?
ブラウザだけで開発ができるとか?

122
デフォルトの名無しさん[]   投稿日:2016/12/18 11:53:36  ID:5nrc1ooF.net(20)
デバッグなど必要のないくらい簡単なコードなので、デバッグ用とは考えられないかと思います。

123
デフォルトの名無しさん[sage]   投稿日:2016/12/18 11:57:14  ID:0+9ctOie.net(2)
馬鹿ほど自説に拘るw

124
デフォルトの名無しさん[]   投稿日:2016/12/18 12:12:58  ID:5nrc1ooF.net(20)
Introduction to AlgorithmsよりもAlgorithms(Sedgewick、赤い本)のほうがいい本ですね。

読んでいて楽しい。

125
デフォルトの名無しさん[]   投稿日:2016/12/18 12:18:23  ID:5nrc1ooF.net(20)
日本語のデータ構造とアルゴリズムの本だと、茨木の本が有名だけど、
どこがいいのかさっぱりわからない。

翻訳書ではない日本語の本でまともなのは、浅野孝夫の本くらいではないでしょうか?

126
デフォルトの名無しさん[sage]   投稿日:2016/12/18 12:18:30  ID:d5jVhhWj.net(6)
アルゴリズムやコードのライセンスってどの程度のものから付けていいんだ
あんまり簡単なものだと既出すぎてライセンス付けられるのか?って考えてしまう
かといってじゃあライセンス付けていい最低ラインは何なんだという話になる
コメント2件

127
デフォルトの名無しさん[]   投稿日:2016/12/18 12:20:00  ID:5nrc1ooF.net(20)
>126

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

どうやって、だれかのコードを流用したか判定するのか、それに興味があります。

128
デフォルトの名無しさん[sage]   投稿日:2016/12/18 12:30:54  ID:RB5DyRP2.net(4)
アルゴリズムには著作権ないよ
あるのはそれをどう表現したか
簡単なアルゴリズムには表現バリエーションなんて限られてるから
ある程度似るのはどうしようもない

129
デフォルトの名無しさん[]   投稿日:2016/12/18 12:37:57  ID:5nrc1ooF.net(20)
特許ならありますよね。

130
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:02:47  ID:PELrVlNw.net(6)
デザインパターンの本高い・・・
一冊持ってたけど引っ越しのごたごたでなくしちゃった
無料で網羅できるサイトありませんかね
一冊読んではあるので、さらっと構造や仕組みを紹介してくれていればいいし
英語もある程度は読めます

基本のデザインパターンだけでもありがたいし
マルチスレッド対応に踏み込んだサイトならなおありがたいです

131
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:22:26  ID:d5jVhhWj.net(6)
基本的な考え方覚えたら幾らでも応用できるだろ
カタログを後生大事にとっておく意味はない

132
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:35:15  ID:PELrVlNw.net(6)
覚えてないんすよ
記憶力ないんで忘れちゃって、ぼんやりとしか覚えてないんです
だから概要をしっかり覚え直したいなと思って
コメント2件

133
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:42:55  ID:+dKTlaSP.net(2)
>132
いや、デザパタ本こそ手元においておくべき
わけのわからん二次情報を見るとどんどんブレていくぞ

134
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:45:05  ID:RB5DyRP2.net(4)
リファレンスとしてはどの本がいい?

135
デフォルトの名無しさん[]   投稿日:2016/12/18 13:45:12  ID:5nrc1ooF.net(20)
ソフトウェア工学的な本って重要なんですか?

136
デフォルトの名無しさん[]   投稿日:2016/12/18 13:45:59  ID:5nrc1ooF.net(20)
学問的には全く面白くない分野ですよね。

137
デフォルトの名無しさん[sage]   投稿日:2016/12/18 14:08:17  ID:PELrVlNw.net(6)
TECHSCOREのデザインパターンのページ見ることで自己解決しました

138
デフォルトの名無しさん[]   投稿日:2016/12/18 15:45:37  ID:VFzWAIXP.net(4)
デザパタカタログは便利だよね
煮詰まったときに、休憩がてらパターンを眺めてると、閃くときがある

139
デフォルトの名無しさん[sage]   投稿日:2016/12/18 16:24:54  ID:+Ko1jSRc.net(2)
ねーわ、普通のコードが99.99%

140
デフォルトの名無しさん[sage]   投稿日:2016/12/18 18:22:27  ID:d5jVhhWj.net(6)
基本的な発想を学んだらカタログはポイ
パターンに執着してもデザインがぎこちなくなるだけ

141
114[sage]   投稿日:2016/12/18 23:03:56  ID:aCKcGLhu.net(8)
>119
jsdo.it では、全員のソースコードが、サイト内に限り、MITになる

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

2分ヒープ、AVL、赤黒木など、アルゴリズムの実装は、どうしても汚いソースコードになる

142
デフォルトの名無しさん[sage]   投稿日:2016/12/18 23:11:13  ID:f3M2Oqre.net(2)

143
デフォルトの名無しさん[]   投稿日:2016/12/18 23:11:21  ID:5nrc1ooF.net(20)
2分ヒープって簡単なアルゴリズムですよね。

汚くなりようがないように思うのですが。

144
デフォルトの名無しさん[]   投稿日:2016/12/18 23:12:19  ID:5nrc1ooF.net(20)
計算幾何学って難しい割に見返りが少ないように思います。

だからあんまり人気がないのかもしれないですね。
コメント4件

145
デフォルトの名無しさん[sage]   投稿日:2016/12/19 00:01:07  ID:hSWjQy3F.net(10)
漏れw

146
デフォルトの名無しさん[sage]   投稿日:2016/12/19 01:06:56  ID:8cVREo5r.net(2)
流石に漏れは笑う

147
デフォルトの名無しさん[sage]   投稿日:2016/12/19 08:08:43  ID:judB9f5Y.net(2)
>144
全体的なリテラシの底上げがされるまではどうしてもね。

148
デフォルトの名無しさん[]   投稿日:2016/12/19 12:42:11  ID:z9XVuDpo.net(4)
>144
理論的な上限値をあらかじめ計算することが出来て
無駄な努力や試行錯誤をしなくて済むというメリットがあるよ

149
デフォルトの名無しさん[sage]   投稿日:2016/12/19 17:37:02  ID:ic0p/3Yf.net(28)
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する長さ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。
コメント2件

150
間違ってたので直します[sage]   投稿日:2016/12/19 17:39:59  ID:ic0p/3Yf.net(28)
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。
コメント2件

151
デフォルトの名無しさん[sage]   投稿日:2016/12/19 17:48:27  ID:z9XVuDpo.net(4)
(1,-1,1)の長さが2?

152
デフォルトの名無しさん[]   投稿日:2016/12/19 17:53:09  ID:yHCszZUX.net(12)
>なのでその対応をする関数をおしえてください。

意味不明です。

153
デフォルトの名無しさん[]   投稿日:2016/12/19 17:55:40  ID:yHCszZUX.net(12)
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

(a_1, a_2, ..., a_i-1, ..., a_n)

a_i < 0 のときには、

(a_1, a_2, ..., a_i+1, ..., a_n)

a_i = 0 のときには、

(a_1, a_2, ..., a_i±1, ..., a_n)

を返せばいいのでは?

154
デフォルトの名無しさん[]   投稿日:2016/12/19 17:57:14  ID:yHCszZUX.net(12)
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

(a_1, a_2, ..., a_i-1, ..., a_n)

a_i < 0 のときには、

(a_1, a_2, ..., a_i+1, ..., a_n)

を返せばいいのでは?

a_i = 0 のときには、条件を満たす列は存在しないね。
コメント2件

155
デフォルトの名無しさん[]   投稿日:2016/12/19 17:58:07  ID:yHCszZUX.net(12)
>150

何がやりたいのかが不明確。

156
デフォルトの名無しさん[sage]   投稿日:2016/12/19 17:58:17  ID:hSWjQy3F.net(10)
>149
列の最初の数字だけ1足すなり引くなりして返せばいいだけじゃないの?
コメント4件

157
デフォルトの名無しさん[]   投稿日:2016/12/19 18:01:17  ID:yHCszZUX.net(12)
>例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
>(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
>なのでその対応をする関数をおしえてください。

一つに定まらないから、すべての結果を返したいのか、
任意の一つの結果を返したいのか?
コメント2件

158
デフォルトの名無しさん[]   投稿日:2016/12/19 18:02:09  ID:yHCszZUX.net(12)
明らかに、

(0, 0, ..., 0) に対しては条件を満たす結果は存在しないね。

159
デフォルトの名無しさん[sage]   投稿日:2016/12/19 18:50:37  ID:ic0p/3Yf.net(28)
0はスタート地点なので

160
デフォルトの名無しさん[sage]   投稿日:2016/12/19 18:57:02  ID:ic0p/3Yf.net(28)
>154
a_2を1としたとき(-1, 1)のとき(-1,0)を返し
a_1を-1としたとき (-1,1)は(0,1)をかえすことになるので
一つに定まりません

161
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:06:19  ID:ic0p/3Yf.net(28)
>157
大きさn>0の任意の列aにたいしてf(a)=bでbがn-1の大きさでaと列の中の値が1だけ違う
列を出力する関数fを求めるということです。
コメント2件

162
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:13:51  ID:ic0p/3Yf.net(28)
>156
初めはそんな風に考えてる時期もありました
もう2か考えてるけれど全然わからないのでここで質問してみました

163
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:16:05  ID:hSWjQy3F.net(10)
>161
問題文を鸚鵡返しするんじゃなくて、質問者の質問に答えたら?
コメント2件

164
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:23:49  ID:ic0p/3Yf.net(28)
>163
fの出力は列の集合じゃないから普通わかりますよね
コメント2件

165
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:31:58  ID:hSWjQy3F.net(10)
>164
fが返すのは集合じゃないってのはどこに書いてある?
コメント2件

166
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:34:42  ID:ic0p/3Yf.net(28)
>165
14行上に書いてあります
コメント2件

167
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:47:31  ID:hSWjQy3F.net(10)
>166
Mateだと>156って書いてあるわ
自分の中ではこれは当然みたいな条件がいろいろあるんだろうけど、それを人に説明するのが下手なんじゃね

168
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:02:25  ID:ic0p/3Yf.net(28)
改行コードの数を数えてますか?
文の折り返しと改行とは違いますよ?

169
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:17:02  ID:2q/Y95iw.net(8)
こりゃまたひどい質問者だな
コメント2件

170
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:18:06  ID:Xx/umGft.net(6)
課題の丸投げ、しかも「日本語」が
コメント2件

171
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:25:56  ID:ic0p/3Yf.net(28)
課題という証拠はありますか?
実際課題じゃなくプログラミングしていたら出てきた問題なので
全然課題じゃないです
コメント2件


172
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:33:03  ID:ic0p/3Yf.net(28)
>170
あなたには誤った文を訂正する能力がないんですか?
それでは人間ではなくコンパイラーと同じですよ
コメント2件

173
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:37:51  ID:ic0p/3Yf.net(28)
>169
面白い問題とつまらない問題を区別する能力が数学的推測には
一番必要なんんです
この問題がつまらないと思うのなら解かないでいいです

174
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:50:46  ID:2q/Y95iw.net(8)
問題をきちんと記述する能力に欠けている
コメント2件

175
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:52:23  ID:2q/Y95iw.net(8)
あと、面白い問題だと思うなら、それこそ自分で解くのが楽しいのでは
ここで聞かずに
コメント2件

176
デフォルトの名無しさん[sage]   投稿日:2016/12/19 21:27:51  ID:ic0p/3Yf.net(28)
>175
楽しいものは独り占めるのではなく分け与えようと習わなかったのでは?

177
デフォルトの名無しさん[sage]   投稿日:2016/12/19 21:44:43  ID:ic0p/3Yf.net(28)
>174
今読み返してみましたがキチンと書かれてますよ
どこがキチンと書かれてないのか言ってくれたら
それは理解力の無さなので説明してもいいです

178
デフォルトの名無しさん[sage]   投稿日:2016/12/19 22:34:08  ID:2q/Y95iw.net(8)
十分楽しんだからあとは一人で楽しんでくれていいよ

179
デフォルトの名無しさん[sage]   投稿日:2016/12/19 22:53:51  ID:Xx/umGft.net(6)
>172
馬鹿乙

180
デフォルトの名無しさん[sage]   投稿日:2016/12/19 23:04:39  ID:L2gIhLeK.net(2)
先頭から非0を探して、はじめの要素が正なら1ひく、負なら1足す
これで終わりじゃないの?

181
デフォルトの名無しさん[sage]   投稿日:2016/12/19 23:45:15  ID:Xx/umGft.net(6)
アルゴリズムは自分で考えるじゃ、ボケ

182
デフォルトの名無しさん[sage]   投稿日:2016/12/20 13:05:59  ID:lAXr92yw.net(2)
>171
茶か尿かもう判らんって意見があるけど
検出時のガスクロのデータ見直したら判るはずという話がある
仮にそれでお茶だとしてももう発表はないだろう

183
デフォルトの名無しさん[]   投稿日:2016/12/21 18:35:54  ID:UR5SKYPV.net(30)
数列 1, 2, 3, …

すなわち、

数列 {a_n} = {n}

を考える。

{a_n} の任意の連続する有限部分列を a_k, a_(k+1), …, a_l(k ≦ l)とする。

各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する:

「2^(b_i) は a_i を割り切るが、 2^(b_i+1) は a_i を割り切らない」

このとき、 #{m | k ≦ i ≦ l である任意の i に対して、 b_i ≦ b_m} = 1 であることを示せ。

また、有限部分列 a_k, a_(k+1), …, a_l(k ≦ l)が与えられたとき、 k ≦ i ≦ l である
任意の i に対して、 b_i ≦ b_m となるような m を求めるプログラムを作れ。
コメント8件

184
デフォルトの名無しさん[sage]   投稿日:2016/12/21 18:45:01  ID:trArLuj5.net(8)
お断りいたします

185
デフォルトの名無しさん[sage]   投稿日:2016/12/21 18:49:10  ID:IT3zLaEf.net(2)
俺も断るわ

186
デフォルトの名無しさん[]   投稿日:2016/12/21 19:41:25  ID:UR5SKYPV.net(30)
早くも降参宣言か。
コメント2件

187
デフォルトの名無しさん[sage]   投稿日:2016/12/21 19:55:05  ID:RIWp4Ngq.net(18)
mなんていくらでもあるんじゃないの?
なんで#{m}=1?
コメント2件

188
デフォルトの名無しさん[]   投稿日:2016/12/21 20:06:55  ID:UR5SKYPV.net(30)
>187

一意的です。そこがちょっと面白いところです。

反例を作ろうと思ってもできないはずです。

189
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:09:57  ID:trArLuj5.net(8)
>183
分からない問題はここに書いてね421 [無断転載禁止]©2ch.net
分からない問題はここに書いてね421 /数学板

190
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:12:10  ID:RIWp4Ngq.net(18)
k=1, l=2で、{m}={2,4,6,8,...}
k=l=1で、{m}=自然数の集合
じゃないの?
コメント2件

191
デフォルトの名無しさん[]   投稿日:2016/12/21 20:16:47  ID:UR5SKYPV.net(30)
>190

{a_n} の任意の*連続する*有限部分列を a_k, a_(k+1), …, a_l(k ≦ l)とする。
コメント2件

192
デフォルトの名無しさん[]   投稿日:2016/12/21 20:18:48  ID:UR5SKYPV.net(30)
k=1, l=2で、{m}={2,4,6,8,...}
k=l=1で、{m}=自然数の集合
じゃないの?

a_1, a_2 = 1, 2

なので、 b_1, b_2 = 0, 1

です。

なので、 {m} = {2} です。

193
デフォルトの名無しさん[]   投稿日:2016/12/21 20:19:15  ID:UR5SKYPV.net(30)
>191
は勘違いです。

194
デフォルトの名無しさん[]   投稿日:2016/12/21 20:20:14  ID:UR5SKYPV.net(30)
a_1 = 1

なので、

b_1 = 0

です。

なので、

{m} = {1}

です。

195
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:21:17  ID:RIWp4Ngq.net(18)
k=1, l=2も、k=l=1も、当然連続する部分列でしょ
{b_i}を10個ぐらい挙げてみてよ

196
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:22:42  ID:RIWp4Ngq.net(18)
mの条件が足りないんじゃないの?

197
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:24:46  ID:RIWp4Ngq.net(18)
b_i ≦ b_mさえ満たせばいいんならmなんていくらでもあるでしょ

198
デフォルトの名無しさん[]   投稿日:2016/12/21 20:32:03  ID:UR5SKYPV.net(30)
b_m は b_i の最大値です。

その最大値となる b_m の m が一意的であるということです。

199
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:32:36  ID:El82f3CE.net(2)
k≦m≦lという条件が抜けているっぽいね
コメント2件

200
デフォルトの名無しさん[]   投稿日:2016/12/21 20:34:06  ID:UR5SKYPV.net(30)
テレンス・タオ ルベーグ積分入門
テレンス タオ
固定リンク: http://amzn.asia/8KaL6NK

「日本の理工系学部ではルベーグ積分は3年次程度の必修相当科目なので、」

↑これっておかしくないですか?

普通、ルベーグ積分なんてやるのは数学科かせいぜい物理学科くらいじゃないですか?
コメント2件

201
デフォルトの名無しさん[]   投稿日:2016/12/21 20:34:58  ID:UR5SKYPV.net(30)
>199

各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する:

202
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:39:27  ID:RIWp4Ngq.net(18)
不完全な問題出しておいて>186はないよね
コメント2件

203
デフォルトの名無しさん[]   投稿日:2016/12/21 20:41:22  ID:UR5SKYPV.net(30)
>202

不完全なところはありません。
よく問題文を読んでください。
コメント2件

204
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:42:06  ID:trArLuj5.net(8)

205
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:43:41  ID:trArLuj5.net(8)
マルチ小僧w

206
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:44:49  ID:RIWp4Ngq.net(18)
>203
mがkからlの間なんて一言もないんだから不完全
コメント2件

207
デフォルトの名無しさん[]   投稿日:2016/12/21 20:47:08  ID:UR5SKYPV.net(30)
>206

>183
各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する

208
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:52:23  ID:RIWp4Ngq.net(18)
そうだとして、わざと誤読を誘おうとしている悪問だね
でO(log k)のアルゴリズム思いついたから俺は降りるね

209
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:53:06  ID:RIWp4Ngq.net(18)
O(log l)だった

210
デフォルトの名無しさん[]   投稿日:2016/12/21 20:55:14  ID:UR5SKYPV.net(30)
>183

の解答は以下です。

http://imgur.com/rAnp3Ga.jpg

赤線を引いたところは「odd」が正しいですね。

211
デフォルトの名無しさん[]   投稿日:2016/12/21 21:27:34  ID:UR5SKYPV.net(30)
実は、この問題には続きがあります。

m, n を m < n を満たす正の整数とします。

このとき、

1/m + 1/(m+1) + … + 1/n

は整数にはならないことを証明せよ。
コメント2件

212
デフォルトの名無しさん[]   投稿日:2016/12/21 21:29:28  ID:UR5SKYPV.net(30)
ちょっとアルゴリズム的な問題からは離れますが。

213
デフォルトの名無しさん[sage]   投稿日:2016/12/21 21:31:37  ID:xYX0mlO/.net(2)
提出日はいつですか?

214
デフォルトの名無しさん[sage]   投稿日:2016/12/21 22:14:54  ID:auJA5Ak8.net(2)
またバカな質問者が暴れてるのか

215
デフォルトの名無しさん[sage]   投稿日:2016/12/21 23:45:05  ID:mNaBBYjZ.net(2)
qiitaでやれ

216
デフォルトの名無しさん[sage]   投稿日:2016/12/23 00:59:54  ID:gOElNe3R.net(4)
>183
そのような m が 2 個ある
m1 < m2
とする

m1 の下位ビット 0 〜 n-1 までは 0で、 ビット n が 1 とする
m2 も同様になる(すなわち b_m1 = b_m2 = n )

m3 = m1 + ( 2 の n 乗 )

と定義すると
m1 < m3 <= m2 であるが、b_m3 > n となって矛盾

217
デフォルトの名無しさん[sage]   投稿日:2016/12/23 01:37:11  ID:gOElNe3R.net(4)
>211
1/m + 1/(m+1) + … + 1/n = P = 整数
だとする

L = ∏ r ; r = m…n
を両辺に掛ける

L/m + L/(m+1) + … + L/n = LP

すべての項は整数。

b_LP ( LP の連続する下位ビット 0 の個数 ) >= Σ b_r ; r = m…n

m <= x <= n は b_x を最大にするもの
左辺の L/x だけ連続する下位ビット 0 の個数は他より少ない
よって b_左辺 = b_x で矛盾

218
デフォルトの名無しさん[]   投稿日:2017/01/01 00:15:18  ID:VtFWW7J2.net(2)
ダイクストラのアルゴリズムの正しさの証明が載っている本で
一番分かりやすい本を教えてください。

219
デフォルトの名無しさん[]   投稿日:2017/01/02 07:40:19  ID:03PPbeGI.net(30)
『アルゴリズムイントロダクション』について質問です。

この本での実数の集合には、 ∞, -∞ が含まれるのでしょうか?

最短路問題の説明で、

実数 a が a≠∞のとき、 a + -∞ = -∞
実数 a が a≠-∞のとき、 a + ∞ = ∞

という記述があるために質問します。

220
デフォルトの名無しさん[]   投稿日:2017/01/02 08:09:15  ID:03PPbeGI.net(30)
実数 a が a≠∞のとき、 a + -∞ = -∞
実数 a が a≠-∞のとき、 a + ∞ = ∞

-∞ + -∞ = -∞
∞ + ∞ = ∞

という等式を含めたいからこのような書き方になったのでしょうか?

221
デフォルトの名無しさん[sage]   投稿日:2017/01/02 09:29:22  ID:J77W/v0L.net(4)
それは実無限派の書き方だが,世の趨勢は可能無限
ほどほどに相手をするだけでいいよ
コメント2件

222
デフォルトの名無しさん[]   投稿日:2017/01/02 11:22:57  ID:03PPbeGI.net(30)
>221

ということは、『アルゴリズムイントロダクション』での実数の集合の定義には、
∞、-∞ が含まれるというk十ですね。
コメント2件

223
デフォルトの名無しさん[]   投稿日:2017/01/02 11:23:39  ID:03PPbeGI.net(30)
頂点の数が n のグラフで、任意の頂点間に辺が存在するようなものを考える。

ある任意の頂点から別の任意の頂点への閉路をふくまない経路の数を求めよ。

224
デフォルトの名無しさん[]   投稿日:2017/01/02 11:26:14  ID:03PPbeGI.net(30)
頂点の数が n(≧2) のグラフで、任意の頂点間に辺が存在するようなものを考える。

ある任意の頂点から別の任意の頂点への閉路をふくまない経路の数を a_n とする。

このとき、

(n-1)! ≧ a_n ≧ (n-2)!

が成り立つことを示せ。
コメント2件

225
デフォルトの名無しさん[sage]   投稿日:2017/01/02 12:08:43  ID:GdcUHK9D.net(6)
宿題は宿題スレへ

226
デフォルトの名無しさん[sage]   投稿日:2017/01/02 12:09:56  ID:GdcUHK9D.net(6)
宿題は宿題スレへ

227
デフォルトの名無しさん[]   投稿日:2017/01/02 12:22:39  ID:03PPbeGI.net(30)
宿題ではないのです。

ある本に、頂点 s から t への最短経路を計算する方法として、
s から t へのあらゆる経路の長さを考えて、最小の経路を選ぶとすると、
経路の数が O(n!) だから現実的ではない

という話が書いてあります。

ところが、計算してみると、 O(n!) は荒い評価であって、 O((n-1)!) とできますね。
コメント4件

228
デフォルトの名無しさん[]   投稿日:2017/01/02 12:24:22  ID:03PPbeGI.net(30)
もっといい評価はありますでしょうか?

229
デフォルトの名無しさん[sage]   投稿日:2017/01/02 12:28:36  ID:GdcUHK9D.net(6)
判ってるなら効くな

230
デフォルトの名無しさん[]   投稿日:2017/01/02 14:08:15  ID:03PPbeGI.net(30)
ダイクストラ法の正しさの証明で分かりやすい証明を思いつきました。

発表しましょうか?

231
デフォルトの名無しさん[sage]   投稿日:2017/01/02 14:21:37  ID:w6ZCrhsc.net(2)
どうぞどうぞ

232
デフォルトの名無しさん[sage]   投稿日:2017/01/02 14:27:23  ID:yIXUnWg3.net(2)
>227
オーダーについてあんま良くわかってないんだろうけどO((n-1)!) なんて書き方はないよ
もし書いたとして、それはO(n!)と同じもの
コメント2件

233
デフォルトの名無しさん[sage]   投稿日:2017/01/02 17:55:38  ID:J77W/v0L.net(4)
>222
実無限はいろいろ破綻するから可能無限にしておいたほうがいいよ
実数の定義に∞, -∞は入らない
というか,そもそも -∞ というのがおかしい存在

つリーマン球面

234
デフォルトの名無しさん[]   投稿日:2017/01/02 19:04:30  ID:03PPbeGI.net(30)
なんか正しさの証明を書いてみると簡単なことなのに長くなりますね。
もし、間違っていたら指摘してください。

http://imgur.com/PDx2vmZ.jpg
http://imgur.com/DbMiSz5.jpg

ダイクストラのアルゴリズムは↑のものとします。
コメント2件

235
デフォルトの名無しさん[]   投稿日:2017/01/02 19:05:18  ID:03PPbeGI.net(30)
節点 s から、ある節点 i への最短経路が存在するとき、その長さを td(i) で表わすことにする。
i への経路、したがって最短経路が存在しないときには、 td(i) = ∞ とする。

ステップ(1)で選ばれる節点 v ∈ V - S に対して、 d(v) = td(v) が成り立つことを数学的帰納法により、以下で証明する。

最初にステップ(1)が実行されるときを考える。
明らかに、 d(s) = td(s) = 0 が成り立つ。

k ≧ 1 とする。
第 1 回目から第 k 回目にステップ(1)が実行されるときに、いつもステップ(1)で選ばれる節点 v ∈ V - S に対して、
d(v) = td(v) が成り立つと仮定する。

236
デフォルトの名無しさん[]   投稿日:2017/01/02 19:05:35  ID:03PPbeGI.net(30)
第 (k+1) 回目にステップ(1)が実行されるときを考える。
このとき、明らかに #S = k であり、 ∀i ∈ S に対して、 d(i) = td(i) が成り立つ。
第 (k+1) 回目にステップ(1)が実行されるときに選ばれる節点を v ∈ V - S とする。
d(v) = ∞ である場合と d(v) ≠ ∞ である場合で場合分けして考える。

(1) d(v) = ∞ である場合。
td(v) ≠ d(v) = ∞ と仮定して矛盾を導く。
td(v) ≠ ∞ であるから、節点 s から節点 v への経路 s = v_0 → v_1 → … → v_(l-1) → v_l = v が存在する。
明らかに、 td(v_0), td(v_1), …, td(v_(l-1)), td(v_l) ≠ ∞ である。
v_0 ∈ S, v_l ∈ V - S であるから、 v_i ∈ S, v_(i+1) ∈ V - S となるような i が存在する。
∀j ∈ V - S に対して、 d(j) = ∞ であるから、 d(v_(i+1)) = ∞ である。また、 v_i ∈ S であるから、
d(v_i) = td(v_i) ≠ ∞ が成り立つ。
v_i がステップ(2)で S に追加されたときのことを考えれば分かるように、 (v_i, v_(i+1)) ∈ E かつ v_(i+1) ∈ V - S であるから、
d(v_(i+1)) = ∞ ということはない。これは矛盾である。
よって、 d(v) = td(v) = ∞ が成り立つ。

237
デフォルトの名無しさん[]   投稿日:2017/01/02 19:05:51  ID:03PPbeGI.net(30)
(2) d(v) ≠ ∞ である場合。
td(v) ≠ d(v) と仮定して矛盾を導く。
ステップ(2)を考えれば明らかなように、 d(v) ≠ ∞ であるから、節点 s から節点 v への
最短経路 s = v_0 → v_1 → … → v_(l-1) → v_l = v が存在する。
よって、 td(v) ≠ ∞ である。
仮定により、 td(v) ≠ d(v) であるから、 td(v) < d(v) が成り立つ。
v_0 ∈ S, v_l ∈ V - S であるから、 v_i ∈ S, v_(i+1) ∈ V - S となるような i が存在する。
td(v_(i+1)) < d(v_(i+1)) である。なぜなら、もし、そうでないと仮定すると、 d(v_(i+1)) = td(v_(i+1)) であるが、
td(v_(i+1)) ≦ td(v) < d(v) であるから、 d(v_(i+1)) < d(v) となってしまい、ステップ(1)での v の
選ばれ方に矛盾するからである。
v_i ∈ S であるから、 d(v_i) = td(v_i) である。
v_i がステップ(2)で S に追加されたときのことを考えれば分かるように、 (v_i, v_(i+1)) ∈ E かつ v_(i+1) ∈ V - S であるから、
d(v_i) + a_(v_i v_(i+1)) ≧ d(v_(i+1)) である。
一方、明らかに、 td(v_i) + a_(v_i v_(i+1)) = td(v_(i+1)) であるから、
td(v_(i+1)) = td(v_i) + a_(v_i v_(i+1)) = d(v_i) + a_(v_i v_(i+1)) ≧ d(v_(i+1)) となるが、これは矛盾である。
よって、 td(v) = d(v) が成り立つ。

238
デフォルトの名無しさん[]   投稿日:2017/01/02 19:06:08  ID:03PPbeGI.net(30)
以上より、第 (k+1) 回目にステップ(1)が実行されるときにも、ステップ(1)で選ばれる節点 v ∈ V - S に対して、
d(v) = td(v) が成り立つ。

S に追加される節点はすべて、ステップ(1)で選ばれた 節点 v ∈ V - S であり、一度 S に追加された節点 v の d(v) はそれ以後、
変更されないから、ステップ(1)でアルゴリズムが終了したとき、 ∀i ∈ S = V に対して、 d(i) = td(i) が成り立つ。

239
デフォルトの名無しさん[]   投稿日:2017/01/02 19:26:36  ID:03PPbeGI.net(30)
>232

ある本では、

正定数 c, n0 が存在して、 n ≧ n0 のとき、 T(n) ≦ c*f(n) であるなら、
T(n) は O(f(n)) であるという

と定義されています。

T(n) = n!
f(n) = n!
g(n) = (n-1)!

とします。

このとき、明らかに、
T(n) は O(f(n)) ですが、
T(n) は O(g(n)) ではありません。

240
デフォルトの名無しさん[]   投稿日:2017/01/02 19:29:54  ID:03PPbeGI.net(30)
したがって、

O(f(n)) と O(g(n)) は異なります。

241
デフォルトの名無しさん[sage]   投稿日:2017/01/03 08:33:06  ID:3o9M4oho.net(2)
この狂人ヤバいなw

242
デフォルトの名無しさん[]   投稿日:2017/01/03 08:50:16  ID:hCDXc7Qp.net(20)
>224
>227

閉路を含まないから、各点を高々1回しか通らない。(端点も)

直通の経路が 1
途中でk個所を通過する経路が
 (n-2)(n-3)・・・・・(n-k-1) = (n-2)!/(n-k-2)!
だけある。ただし、k≦n-2
よって
a_n = (n-2)!{1 + 1/1! + 1/2! + … + 1/(n-2)!},

n ≧ 2 のとき、

(n-2)! ≦ (n-2)! * (1 + 1/1! + 1/2! + … + 1/(n-2)!) ≦ e * (n-2)!

したがって、

a_n = Θ((n-2)!)

である。

243
デフォルトの名無しさん[]   投稿日:2017/01/03 08:52:54  ID:hCDXc7Qp.net(20)
>234-238

のダイクストラのアルゴリズムの正しさの証明に間違いはないという
ことでOKですか?

244
デフォルトの名無しさん[]   投稿日:2017/01/03 11:39:58  ID:hCDXc7Qp.net(20)
Erik DemaineはMITの歴史上最年少で教授になったという天才だそうですね。

今、そのErik Demaineの2005年のダイクストラのアルゴリズムについての講義を見ています。

見終わったら、講義の要約について書きます。

245
デフォルトの名無しさん[]   投稿日:2017/01/03 13:47:58  ID:hCDXc7Qp.net(20)
ダイクストラのアルゴリズム:

01: d[s] ← 0
02: for each v ∈ V - {s}:
03: ■■d[v] ← ∞
04: S ← Φ
05: Q ← V
06: while Q ≠ Φ:
07: ■■u ← ExtractMin(Q)
08: S ← S ∪ {u}
09: for each v ∈ Adj[u]:
10: ■■if d[v] > d[u] + w(u, v):
11: ■■■■d[v] ← d[u] + w(u, v)

246
デフォルトの名無しさん[]   投稿日:2017/01/03 13:49:29  ID:hCDXc7Qp.net(20)
Correctness I:

d[v] の初期化の直後、およびLine 11の直後において、
すべての v ∈ V に対して、 d[v] ≧ δ(s, v) が
成り立つ。

証明:
d[v] の初期化の直後には、
d[s] = 0 かつすべての v ∈ S - {v} に対して、d[v] = ∞
が成り立っている。
δ(s, s) = 0 かつすべての v ∈ S に対して、 δ(s, v) ≦ ∞
であるから、d[v] の初期化の直後には、
すべての v ∈ V に対して、 d[v] ≧ δ(s, v) が確かに
成り立っている。

247
デフォルトの名無しさん[]   投稿日:2017/01/03 13:49:56  ID:hCDXc7Qp.net(20)
Line 11の直後において、すべての v ∈ V に対して、
d[v] ≧ δ(s, v) が成り立つことを背理法により示す。

Line 11の直後において、 d[v] ≧ δ(s, v) が
成り立たないような v ∈ V が存在するとする。
v をそのような点の中で、最初の点とする。

d[v] < δ(s, v)

d[v] < δ(s, v) ≦ ∞ であるから、
ダイクストラのアルゴリズムのLine 11は少なくとも1回は
実行されているはずである。そのような最後の実行を

d[v] ← d[u] + w(u, v)

とすると、

d[u] + w(u, v) = d[v] < δ(s, v)

が成り立つ。

一方、 d[u] ≧ δ(s, u) であるから、

d[u] + w(u, v) ≧ δ(s, u) + w(u, v)
≧ δ(s, u) + δ(u, v)
≧ δ(s, v)

が成り立つが、これは矛盾である。

248
デフォルトの名無しさん[]   投稿日:2017/01/03 13:51:21  ID:hCDXc7Qp.net(20)
Correctness Lemma:
s → … → u → v を s から v への一つの最短路とする。
d[u] = δ(s, u) であるとする。

このとき、Line10-11を実行すると、

d[v] = δ(s, v)

が成り立つ。

証明:
δ(s, v) = w(s → … → u) + w(u, v)
= δ(s, u) + w(u, v)
Correctness Iより、 d[v] ≧ δ(s, v)

(1)Line10-11の実行前に、 d[v] = δ(s, v) である場合。
Line10-11の実行後も d[v] = δ(s, v) である。

(2)Line10-11の実行前に、 d[v] > δ(s, v) である場合。
d[v] > δ(s, v) = δ(s, u) + w(u, v) = d[u] + w(u, v)
Line10-11の実行後は、 d[v] = d[u] + w(u, v) = δ(s, v)
となる。

249
デフォルトの名無しさん[]   投稿日:2017/01/03 13:52:06  ID:hCDXc7Qp.net(20)
Correctness II:
ダイクストラのアルゴリズムが終了したとき、
すべての v ∈ V に対して、 d[v] = δ(s, v) が成り立つ。

証明:
d[v] は v が S に追加された後は、不変である。
よって、 v が S に追加されたときに、
d[v] = δ(s, v) であることを示せばよい。

背理法で示す。
v が S に追加されたときに、 d[v] ≠ δ(s, v) であるような
v ∈ V が存在すると仮定する。
u をそのような点の中で、最初に S に追加された点とする:
d[u] ≠ δ(s, u)
Correctness Iより、
d[u] > δ(s, u)

250
デフォルトの名無しさん[]   投稿日:2017/01/03 13:52:49  ID:hCDXc7Qp.net(20)
今、 u が S に追加される直前の状況を考えることにする。
u はまだ S に追加されていないから、 u ∈ Q である。
p を s から u への一つの最短路とすると、 w(p) = δ(s, u) である。
s ∈ S, u ∈ Q であるから、 p 上の辺 (x, y) で x ∈ S, y ∈ Q となる
ような辺が存在する。そのような辺の一つを (x, y) とする。
すると、 p は以下のようになる。
p : s → … → x → y → … → u
x ∈ S であるから、 u に関する仮定より、
d[x] = δ(s, x) が成り立つ。また、明らかに、
s → … → x → y は s から y への一つの最短路であるから、
Correctness Lemmaより、 d[y] = δ(s, y) が成り立つ。
明らかに、 δ(s, y) ≦ δ(s, u) であるから、
d[y] ≦ δ(s, y)
また、Line07を見れば分かるように、
d[u] ≦ d[y] である。
よって、

d[u] ≦ δ(s, u) となるが、これは矛盾である。

251
デフォルトの名無しさん[]   投稿日:2017/01/03 13:55:46  ID:hCDXc7Qp.net(20)
Lec 17 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005
https://youtu.be/xhG2DyCX3uA

252
デフォルトの名無しさん[]   投稿日:2017/01/05 09:16:14  ID:4i7P3+nF.net(18)
アルゴリズムイントロダクションって自明なことをわざわざループ不変量を使ったりして、
証明していて、うざすぎますね。

253
デフォルトの名無しさん[]   投稿日:2017/01/05 09:16:52  ID:4i7P3+nF.net(18)
通常の数学の本なら自明で済ませるようなことをわざわざ証明している。
コメント2件

254
デフォルトの名無しさん[sage]   投稿日:2017/01/05 09:57:50  ID:OZq8Y/OW.net(6)
このバカ、以前も全く同じこと言って暴れたな。

255
デフォルトの名無しさん[sage]   投稿日:2017/01/05 10:02:39  ID:OZq8Y/OW.net(6)
http://hissi.org/read.php/tech/20160422/cGVtVmVaYUg.html
http://hissi.org/read.php/tech/20160612/YkttemlBQ3Y.html
こいつだ。

> って当たり前のことをループ不変とかを使って説明しているよね。はっきりいってくどい。
> ループ不変式とかいうのが出てくるけど、当たり前のことを形式的に証明しているだけで、つまらなすぎる。
> 馬鹿の一つ覚えみたいにループ不変式をつかって証明しようとしている。

これぞ「馬鹿の一つ覚え」である。

256
デフォルトの名無しさん[sage]   投稿日:2017/01/05 10:44:28  ID:W/+CAQrH.net(4)
数学とコンピュータ科学の区別がつかない厨房だろう

257
デフォルトの名無しさん[]   投稿日:2017/01/05 11:01:45  ID:4i7P3+nF.net(18)
クヌースの本なんかだと妙なくどさはない。

アルゴリズムイントロダクションはメリハリが全くない。
Trivialなこともそうでないことも平等に扱いすぎている。

要するに本を書くセンスがない。

258
デフォルトの名無しさん[]   投稿日:2017/01/05 11:02:52  ID:4i7P3+nF.net(18)
セジウィックとウエインの本のほうがずっとよい。

259
デフォルトの名無しさん[]   投稿日:2017/01/05 11:07:44  ID:4i7P3+nF.net(18)
日本語の本について言及しておく。
例えば、評判のよい茨木俊秀の本。

こんな薄いスカスカの本をよくも恥ずかしげもなく出版するものだとあきれる。

260
デフォルトの名無しさん[]   投稿日:2017/01/05 11:19:31  ID:4i7P3+nF.net(18)
アルゴリズムイントロダクションの悪口を書いたがいいところもある。

例えば、第29章線形計画法。

線形計画法に対しては、Trivialなこともそうでないことも平等に扱うという方針が
向いているように思う。

ただ、アルゴリズムの本に線形計画法を入れる理由が分からない。

整数論的アルゴリズムの章はあまりにも簡単すぎる。
高木貞治の本でも読んだ方がよい。

261
デフォルトの名無しさん[]   投稿日:2017/01/05 11:28:06  ID:4i7P3+nF.net(18)
結論として、ベストな本はクヌースが予定しているTAOCPの要約本ということになる。

262
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:29:47  ID:W/+CAQrH.net(4)
結論として4i7P3+nFはNG行き

263
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:33:33  ID:2uA+A+xC.net(4)
>253
自明ほど危ういものは無いんだが
コメント2件

264
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:40:35  ID:OZq8Y/OW.net(6)
例によって ID:4i7P3+nF が発狂しててワロタ

265
デフォルトの名無しさん[]   投稿日:2017/01/05 11:44:36  ID:4i7P3+nF.net(18)
>263

では、なぜ、一般に、コンピュータ科学者よりも頭が良いとされる数学者が
自明で済ませることが多いのでしょうか?

もし危ういのなら頭のよい数学者は自明などと書かないはずです。
コメント2件

266
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:52:58  ID:r7KPx/TL.net(2)
そんな多くねえよちゃんと論文読め

267
デフォルトの名無しさん[sage]   投稿日:2017/01/05 12:06:11  ID:2uA+A+xC.net(4)
自明連発する方が馬鹿なのか

268
デフォルトの名無しさん[sage]   投稿日:2017/01/05 13:09:24  ID:c6xYhHVb.net(4)
>265
馬鹿丸出し

269
デフォルトの名無しさん[sage]   投稿日:2017/01/05 13:18:34  ID:c6xYhHVb.net(4)
>一般に、コンピュータ科学者よりも頭が良いとされる数学者が
根拠は?
>自明で済ませることが多いのでしょうか?
数学のコンテキストの話

そもそも証明の意味もコンピュータ科学と数学では違うだろ

270
デフォルトの名無しさん[sage]   投稿日:2017/01/05 14:56:52  ID:jagWiFjG.net(2)
なんでバカって本質に関係ないところでギャーギャー騒ぐの?
コメント2件

271
デフォルトの名無しさん[sage]   投稿日:2017/01/05 14:58:54  ID:YjTG1plI.net(2)
うむ

272
デフォルトの名無しさん[]   投稿日:2017/01/05 19:46:02  ID:4i7P3+nF.net(18)
アルゴリズムイントロダクションについて、数学が出来る人向けの本だという人がいる。
そして、数学ができない人はセジウィック&ウエインの本を読めという人がいる。

アルゴリズムイントロダクションが数学的な本だとは全く思わない。数学的な内容については
主に結果だけを書いている。

ただネチネチとアルゴリズムの正しさの証明が書かれているだけのこと。

クヌースの本のように、楽しい本ではない。
コメント2件

273
デフォルトの名無しさん[sage]   投稿日:2017/01/05 20:37:39  ID:UiiKd7HR.net(2)

274
デフォルトの名無しさん[sage]   投稿日:2017/01/05 22:15:16  ID:WPj32BYO.net(2)
書評したければ別のところでやれ

275
デフォルトの名無しさん[]   投稿日:2017/01/06 17:19:30  ID:TSHa+AxL.net(16)
再帰の除去についてやり方が詳しく書いてある本を教えてください。
コメント2件

276
デフォルトの名無しさん[]   投稿日:2017/01/06 17:43:03  ID:TSHa+AxL.net(16)
プログラミングコンテストチャレンジブック第2版のp.35
Lake Counting(POJ No.2386)

の解答として、以下のプログラムはあっていますか?

void dfs(i, j, n){
if(i < 0 || i >= N || j < 0 || j >= M){
return;
}
if(field[i][j] != 'W'){
return;
}
if(visit[i][j] == true){
return;
}
visit[i][j] = true;
dfs(i-1, j-1, n+1);
dfs(i-1, j, n+1);
dfs(i-1, j+1, n+1);
dfs(i, j-1, n+1);
dfs(i, j+1, n+1);
dfs(i+1, j-1, n+1);
dfs(i+1, j, n+1);
dfs(i+1, j+1, n+1);

if(n == 0){
count++;
}
return;
}

277
デフォルトの名無しさん[sage]   投稿日:2017/01/06 18:06:18  ID:XtKi9eaG.net(2)

278
デフォルトの名無しさん[]   投稿日:2017/01/06 18:36:23  ID:TSHa+AxL.net(16)
Wrong Answerになっちゃうんだけど。

279
デフォルトの名無しさん[]   投稿日:2017/01/06 18:38:07  ID:TSHa+AxL.net(16)
例題については正しい答えが計算されるんだけど。

280
デフォルトの名無しさん[sage]   投稿日:2017/01/06 18:43:00  ID:LxnclcVs.net(2)
よかったね

281
デフォルトの名無しさん[]   投稿日:2017/01/06 20:15:02  ID:TSHa+AxL.net(16)
>277

ソースレベルで再帰を除去する方法が知りたいんですが。

282
デフォルトの名無しさん[]   投稿日:2017/01/06 20:22:33  ID:TSHa+AxL.net(16)
秋葉らのプログラムでもWrong Answerになっていまします。

入出力の問題のようですね。

283
デフォルトの名無しさん[]   投稿日:2017/01/06 20:27:59  ID:TSHa+AxL.net(16)
入出力の問題ってやっかいですね。
出力がどうなっているかとかPOJでは調べられないんですか?

284
デフォルトの名無しさん[]   投稿日:2017/01/06 20:41:27  ID:TSHa+AxL.net(16)
なんなんだろう?

scanf,printfを使っていたらダメだったのが、cinとcoutにしたらOKになった。

285
デフォルトの名無しさん[]   投稿日:2017/01/08 12:26:37  ID:E98VLsZL.net(26)
F(p, n, r) の計算量を教えてください。

n: 整数
p, r: 整数配列(インデックス0からn-1)

F(p, n, r):
■■if r[n] ≧ 0:
■■■■return r[n]
■■if n == 0:
■■■■q = 0
■■else:
■■■■q = -∞
■■■■for i = 1 to n:
■■■■■■q = max(q, p[i] + F(p, n-i, r))
■■r[n] = q
■■return q
コメント2件

286
デフォルトの名無しさん[sage]   投稿日:2017/01/08 12:31:27  ID:0mVP2hZ6.net(4)

287
デフォルトの名無しさん[sage]   投稿日:2017/01/08 12:32:34  ID:0mVP2hZ6.net(4)

288
デフォルトの名無しさん[]   投稿日:2017/01/08 13:51:15  ID:E98VLsZL.net(26)
>286-287

ありがとうございます。

でも解説されていませんね。

289
デフォルトの名無しさん[]   投稿日:2017/01/08 13:57:19  ID:E98VLsZL.net(26)
どうやって計算量を見積もるんですか?

何を単位にするんですか?
コメント2件

290
デフォルトの名無しさん[]   投稿日:2017/01/08 14:06:13  ID:E98VLsZL.net(26)
T(n)
=
c1 + c2 * n + T(n-1) + … + T(0)
=
c1 + c2 * n + T(n-1) + c3*(n-1)

と解けばいいんですかね?
コメント2件

291
デフォルトの名無しさん[]   投稿日:2017/01/08 14:07:36  ID:E98VLsZL.net(26)
T(n) = c1 + c2*n + T(n-1)
T(0) = c3

この漸化式の解を求めればいいんですかね?

292
デフォルトの名無しさん[]   投稿日:2017/01/08 14:12:15  ID:E98VLsZL.net(26)
T(n)
=
[T(n) - T(n-1)] + [T(n-2) - T(n-3)] + … + [T(1) - T(0)] + T(0)
=
[c1 + c2*n] + [c1 + c2*(n-1)] + … + [c1 + c2*1] + c3
=
c1*n + c2*(1/2)*n*(n+1) + c3
=
Θ(n^2)

おお、あってるっぽいですね。

293
デフォルトの名無しさん[]   投稿日:2017/01/08 14:20:56  ID:E98VLsZL.net(26)
>290-292
は我ながら明解な解答ですが、

教科書では、以下のように導出しています。
この導出がよく分からないのですが。

「以前に解かれている部分問題を解くための再帰は直ちに戻るので、Fは
各部分問題をただ1度だけ解く。この手続きはサイズが0,1,....,nの部分問題
を解く。サイズがnの部分問題を解くために、for文がn回繰り返される。したがって、
Fの再帰呼び出し全体における、このfor文の繰り返し回数は等差数列を形成し、
総繰り返し回数はΘ(n^2)となる。」

294
デフォルトの名無しさん[]   投稿日:2017/01/08 14:26:56  ID:E98VLsZL.net(26)
あーあ、分かりました。

T(n)
=
c1 + c2 * n + T(n-1) + … + T(0)
=
c1 + c2 * n + T(n-1) + c3*(n-1)

このあたりのことを言っているんですね。

295
デフォルトの名無しさん[sage]   投稿日:2017/01/08 14:27:53  ID:rSxBm0q1.net(2)
馬鹿には無理

296
デフォルトの名無しさん[]   投稿日:2017/01/08 14:28:32  ID:E98VLsZL.net(26)
>289

for文の繰り返し回数=計算量ですね。

297
デフォルトの名無しさん[]   投稿日:2017/01/08 14:29:42  ID:E98VLsZL.net(26)
結局自分ですべて解決してしまいました。

298
デフォルトの名無しさん[sage]   投稿日:2017/01/08 17:12:11  ID:8OGZNgRf.net(2)
よくやった
褒美として自分専用のスレを立てる権利をやろう

299
デフォルトの名無しさん[sage]   投稿日:2017/01/08 18:45:26  ID:KkEYpXLY.net(2)
命名ID:E98VLsZは俺様

300
デフォルトの名無しさん[]   投稿日:2017/01/08 20:55:21  ID:E98VLsZL.net(26)
プログラミングコンテストチャレンジブック

p.45 Best Cow Lineっていう問題の解答のプログラムって無駄がありますよね。

この本を難しいという人がいますが、そんなに難しいですかね?

301
デフォルトの名無しさん[]   投稿日:2017/01/08 22:46:42  ID:E98VLsZL.net(26)
プログラミングコンテストチャレンジブック
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
最強最速アルゴリズマー養成講座

この3冊に共通していることですが、日本語が下手ですよね。

一番ひどいのが

最強最速アルゴリズマー養成講座

ですね。
コメント2件

302
デフォルトの名無しさん[]   投稿日:2017/01/08 22:50:51  ID:E98VLsZL.net(26)
一番面白いのは、

プログラミングコンテストチャレンジブック

だと思いますけど、例えば、貪欲法でなぜうまくいくのかの証明が書いてないですね。

303
デフォルトの名無しさん[sage]   投稿日:2017/01/08 22:51:13  ID:Qw43e7Zm.net(2)
ここはプログラミング問題集書評のスレなの?

304
デフォルトの名無しさん[]   投稿日:2017/01/09 06:08:00  ID:JOAqSyBk.net(2)
>301
うむ
日本語下手なのはもちろん英語も下手みたいだな

305
デフォルトの名無しさん[sage]   投稿日:2017/01/09 06:09:36  ID:cSodeH17.net(2)
頭の使い方が下手というかそもそも頭が不自由なんだろう

306
デフォルトの名無しさん[]   投稿日:2017/01/09 10:59:50  ID:TqLncjlX.net(12)
アルゴリズムイントロダクションの練習問題15.1-3の解答って以下であっていますか?

BOTTOM-UP-CUT-ROD(p, c, n)
1 r[0..n] を新しい配列とする
2 r[0] = 0
3 for j = 1 to n
4 ■■q = -∞
5 ■■for i = 1 to j-1
6 ■■■■q = maxx(q, p[i] + r[j-i] - c)
7 ■■q = max(q, p[j])
8 ■■r[j] = q
9 return r[n]

307
デフォルトの名無しさん[]   投稿日:2017/01/09 11:02:45  ID:TqLncjlX.net(12)
15.1-2

反例

p[1] = 1
p[2] = 5
p[3] = 7

308
デフォルトの名無しさん[]   投稿日:2017/01/09 13:21:16  ID:TqLncjlX.net(12)
F_0 = 0
F_1 = 1
F_i = F_(i-1) + F_(i-2) (i≧2)

F_n を O(n) 時間で計算する動的計画アルゴリズムを設計せよ。
対応する部分問題グラフを描け。
このグラフにはいくつの頂点と辺が存在するか?


↑はアルゴリズムイントロダクションの練習問題15.1-5なんですけど、
なんか簡単すぎるようにみえるんですけど、落とし穴があるんですかね?

なんでΘ(n)じゃなくてO(n)と書いてあるんですかね?
コメント2件

309
デフォルトの名無しさん[]   投稿日:2017/01/09 13:34:48  ID:TqLncjlX.net(12)
配列を使わないとDPとは言えないですか?
配列いらないですよね。
でもi = 0〜nに対して、F[i]が求まるという意味はありますね。


F[0] = 0
F[1] = 1
for i = 2 to n
■■F[n] = F[n-1] + F[n-2]

明らかにΘ(n)ですよね。

部分問題グラフは以下ですよね:

http://imgur.com/WUQMG8R.jpg

#V = n + 1
#E = 2*(n - 1)

ですね。

310
デフォルトの名無しさん[]   投稿日:2017/01/09 13:37:23  ID:TqLncjlX.net(12)
あ、ひっかけがありましたね。
訂正します:

n > 0 のとき、

#V = n + 1
#E = 2*(n - 1)

n = 0 のとき

#V = n + 1
#E = 0

ですね。

311
デフォルトの名無しさん[]   投稿日:2017/01/09 15:27:31  ID:TqLncjlX.net(12)
アルゴリズムイントロダクションに、以下の事実を1955年にRobbinsが発見したと書いてあります。

--------------------------------------------
すべての n ≧ 1 に対して

n! = sqrt(2*π*n) * (n/e)^n * exp(α_n)

と書ける。

ただし、 1/(12*n+1) < α_n < 1/(12*n)
--------------------------------------------

本当にこんな比較的簡単にみえる結果が1955年という比較的最近になって発見された
のでしょうか?
コメント2件

312
デフォルトの名無しさん[]   投稿日:2017/01/09 15:37:47  ID:4OeNzyzM.net(2)
>308
フィボナッチだろ
√5が出て来る公式
O(1)になるかも試練が

313
デフォルトの名無しさん[sage]   投稿日:2017/01/09 15:46:27  ID:FSSb8O2Z.net(2)
>311
      r ‐、
      | ○ |         r‐‐、
     _,;ト - イ、      ∧l☆│∧  良い子の諸君!
    (⌒`    ⌒ヽ   /,、,,ト.-イ/,、 l  
    |ヽ   ~~⌒γ ⌒ ) r'⌒ `!´ `⌒) よく頭のおかしい数学者気取りのバカが
   │ ヽー―'^ー-'  ( ⌒γ ⌒~~ / 「誰も気付かなかった事を発見したことを発表」とほざくが
   │  〉    |│  |`ー^ー― r' | 大抵それは「先人が思いついたけどあえて発表しなかった」ことだ
   │ /───| |  |/ |  l  ト、 |  王道が何故面白いか理解できない人間に面白い話は
   |  irー-、 ー ,} |    /     i 作れないぞ!
   | /   `X´ ヽ    /   入  |

314
デフォルトの名無しさん[]   投稿日:2017/01/10 20:16:10  ID:Zd0v4023.net(2)
アルゴリズムイントロダクションが難しいという人がいますけど、
この本は馬鹿丁寧に書かれていますよね。

いわゆる「書きすぎ」ですね。

「書きすぎ」れば分かりやすくなると思い込んでいますね、著者らは。

315
デフォルトの名無しさん[sage]   投稿日:2017/01/10 20:19:42  ID:kxFYGz06.net(2)
http://hissi.org/read.php/tech/20160614/U2lCYS9zNTM.html

マジ基地だな。壊れたレコードかよ。

316
デフォルトの名無しさん[sage]   投稿日:2017/01/13 21:58:42  ID:wiy2qrIv.net(2)
プログラミング言語のパーサーってどういう仕組みで動いてるんですか?
文字列をトークンの配列に分ける
特定のパターンにマッチするトークンの部分集合をひとまとめにして新しいトークンに置き換える
再帰的に同じ事を繰り返す
こんな感じ?
コメント2件

317
デフォルトの名無しさん[sage]   投稿日:2017/01/13 22:37:46  ID:+ExxsU2F.net(2)

318
デフォルトの名無しさん[sage]   投稿日:2017/01/14 00:10:28  ID:H4kTcvBH.net(2)
>317
これ考えた奴は天才だな

319
デフォルトの名無しさん[sage]   投稿日:2017/01/16 17:57:37  ID:YH2Bx58z.net(2)
Lisperか
BNF

320
デフォルトの名無しさん[sage]   投稿日:2017/01/19 09:40:05  ID:uhfgjGGl.net(2)

321
デフォルトの名無しさん[sage]   投稿日:2017/05/14 13:16:07
類似スレ検索とかのアルゴリズムって何がいいのかな?
編集距離とか数字部分のマスキングくらいしか浮かばない
形態素解析して要素の一致率とかもあるみたいだけど、スレタイみたいな短い文字じゃ弱そう

322
デフォルトの名無しさん[sage]   投稿日:2017/05/14 13:20:48
むしろ短くて重要な単語が多いスレタイこそ一致率うまく働きそうか
毎回評価してたら検索速度悪そうだけど

323
デフォルトの名無しさん[sage]   投稿日:2017/05/14 13:56:17
Baka ha sinanakya
Naoranai
Fucky ou

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

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

                  京都大学霊長類研究所

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

【関連スレ】
3Dアルゴリズム全般
<集大成>アルゴリズム大辞典
アルゴリズム総合スレ in ム板

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

325
デフォルトの名無しさん[]   投稿日:2016/06/19 14:52:46  ID:5KvSKdL/.net(4)
http://hissi.org/read.php/tech/20160619/YW80V0xnZlg.html
へんなのが居着いたな

981 :デフォルトの名無しさん[sage]:2016/06/19(日) 12:16:06.94 ID:ao4WLgfX
>980
いつも思うんだけれども,この碁の勝負,棋譜は公開されているの?

985 :デフォルトの名無しさん[sage]:2016/06/19(日) 12:47:45.21 ID:ao4WLgfX
>982
どこに貼ってあるかな?たぶん公開されてないんじゃないかな

986 :デフォルトの名無しさん[sage]:2016/06/19(日) 12:59:15.60 ID:ao4WLgfX
http://blogs.yahoo.co.jp/ten_nan_91/35774553.html

988 :デフォルトの名無しさん[sage]:2016/06/19(日) 13:02:20.35 ID:ao4WLgfX
ありがとう

1000:デフォルトの名無しさん[sage]:2016/06/19(日) 14:49:22.87 ID:ao4WLgfX
0

326
デフォルトの名無しさん[sage]   投稿日:2016/06/19 15:04:05  ID:IRfn+3ke.net(2)
>1 乙

327
デフォルトの名無しさん[sage]   投稿日:2016/06/19 16:13:42  ID:gP7jNw8f.net(2)

328
デフォルトの名無しさん[sage]   投稿日:2016/06/19 17:17:34  ID:ao4WLgfX.net(2)
ruby って変な人が多いんだね,俺も今 ruby をマスターしようと必死ではあるが

329
デフォルトの名無しさん[sage]   投稿日:2016/06/19 17:37:31  ID:X+E3gNs8.net(2)
>2
盛大な自演だったってこと?

330
デフォルトの名無しさん[]   投稿日:2016/06/19 19:39:00  ID:iKM7Z0CI.net(6)
Haskellって勉強する意味ある?
実用性はないよね?

331
デフォルトの名無しさん[sage]   投稿日:2016/06/19 19:46:20  ID:0JS60cqV.net(2)
雇われプログラマには不要

332
デフォルトの名無しさん[]   投稿日:2016/06/19 20:49:00  ID:iKM7Z0CI.net(6)
なぜ、HaskellやSchemeをありがたがる人がいるの?
どう考えてもC#とかのほうが生産性が高いのに。
単なるかっこつけ?

333
デフォルトの名無しさん[]   投稿日:2016/06/19 20:49:49  ID:iKM7Z0CI.net(6)
MITのコンピュータの入門書もSchemeを使っていたりする。
コメント1件

334
デフォルトの名無しさん[sage]   投稿日:2016/06/19 20:59:07  ID:Axw7zBsF.net(2)
言語としてのlisp最強論は理解できるけどね。
実用的ではないのは言語自体の問題ではなくてシェアとかサポートする企業の存在とかコミュニティの問題。

335
デフォルトの名無しさん[sage]   投稿日:2016/06/19 23:46:31  ID:XG1Xog94.net(2)
haskellやschemeは勉強したくない奴には不要
雇われには言語選択権はないので、かりにそれらがよいものであったとしたとしても、フラストレーションたまるだけだろ

一言でいうなら自分で一から十まで計算を構築するための言語だな
ライブラリ駆使して、なんとかすることが求められている人間にはこんなものは不要

336
デフォルトの名無しさん[]   投稿日:2016/06/20 00:15:53  ID:VsbhBHIt.net(2)
>12
マジかよ

337
デフォルトの名無しさん[sage]   投稿日:2016/06/20 00:57:04  ID:rbqmVuz6.net(2)
>12
> ライブラリ駆使して、なんとかすることが求められている人間にはこんなものは不要

ライブラリを駆使するのが今のプログラマに求められている技術だからな。

MITがSICPを教えなくなった理由
https://ezoeryou.github.io/blog/article/2016-05-05-sicp.html
> 今日では、状況が変わっている。今のエンジニアは、自分が完全に理解していない複雑なハードウェアの
> ためのコードを日常的に書いている(そして、大抵の場合、企業秘密により完全に理解するのは不可能である)。
> ソフトウェアでも状況は同じだ。プログラミング環境は、多大な機能を提供する巨大なライブラリ群の集合として存在している。
> Sussmanの今日の生徒は、その時間の大半を、ライブラリのマニュアルを読み、どのように組み合わせれば目的が
> 達成できるのかを把握することに費やしている。Sussman曰く、今日のプログラミングは、「より科学に近い。
> ライブラリを持ち寄って、つっつき回すのだ。プログラムを書くには、突っつき回して、どのように動作するかを観察する。
> そして、「目的を達成するために改造できるか」と考えるのだ」。SICPの「合成による解析」という物の見方である、
> 小さな、単純な部品を組み合わせて大きなシステムを作るということは、もはや今日の状況にそぐわなくなった。
> 今や、我々のプログラミングはつっつき回すことで行われている。
>
> なぜPythonを選んだかということについて、Sussmanは、"late binding"に決定したと冗談を飛ばした。
> Pythonには大量のライブラリがあり、教育者の様々な実習に使いやすい(たとえば、ロボットを制御するソフトウェアを書くなど)

338
デフォルトの名無しさん[]   投稿日:2016/06/20 06:52:18  ID:1vrQKLsp.net(12)
HaskellやSchemeの利点は?
少なくとも、分かりにくいよね。

339
デフォルトの名無しさん[sage]   投稿日:2016/06/20 08:05:44  ID:8yK3ULXk.net(2)
オブジェクト指向程ではないけどな
コメント1件

340
デフォルトの名無しさん[sage]   投稿日:2016/06/20 12:30:23  ID:iz9OSKHh.net(4)
エンジニアの選定時の足切りにちょうどいいよ

341
デフォルトの名無しさん[sage]   投稿日:2016/06/20 18:11:51  ID:Z8Or5TTF.net(2)
その基準で剪定できるのはかなり恵まれてる気が
コメント1件

342
デフォルトの名無しさん[sage]   投稿日:2016/06/20 18:23:24  ID:78XmmaUt.net(2)
>14
>今日のプログラミングは、「より科学に近い。

ここは変だな
「より工学に近い。」
というなら判るが
コメント1件

343
デフォルトの名無しさん[]   投稿日:2016/06/20 18:31:26  ID:1vrQKLsp.net(12)
SICPをプログラミング初学者に教えるというのは確かに異様だよね。

やっとまともになったというだけの話。

344
デフォルトの名無しさん[]   投稿日:2016/06/20 18:35:05  ID:1vrQKLsp.net(12)
コンピュータサイエンスの中でアルゴリズムとデータ構造ってどれくらい重要な科目なの?

345
デフォルトの名無しさん[]   投稿日:2016/06/20 18:50:31  ID:FhfmjeRD.net(2)
アルゴリズム + データ構造 = プログラム。
ということは。
プログラムの占める割合と等価なのでは。

346
デフォルトの名無しさん[]   投稿日:2016/06/20 18:52:50  ID:1vrQKLsp.net(12)
なんか計算の理論とかのほうが上みたいな感じじゃない?

347
デフォルトの名無しさん[]   投稿日:2016/06/20 18:53:47  ID:1vrQKLsp.net(12)
コンピュータサイエンスで最も重要な科目は、コンパイラとかOS?

348
デフォルトの名無しさん[sage]   投稿日:2016/06/20 18:53:55  ID:K++azvDQ.net(2)
自演乙
コメント2件

349
デフォルトの名無しさん[sage]   投稿日:2016/06/20 19:14:10  ID:/YC1nkci.net(2)
>18
この道30年の修業でようやく一人前

350
デフォルトの名無しさん[sage]   投稿日:2016/06/20 20:44:30  ID:EiR/M7I9.net(2)
寿司職人乙

351
デフォルトの名無しさん[sage]   投稿日:2016/06/20 20:58:16  ID:amTC+NJd.net(2)
schemeやらないとアルゴリズムとデータ構造を組み立てるってことがどういうことなのか、コードでわからないだろうな

352
デフォルトの名無しさん[]   投稿日:2016/06/20 21:06:41  ID:taQ4Dh1l.net(2)
>28
javaでよくない?
コメント2件

353
デフォルトの名無しさん[sage]   投稿日:2016/06/20 21:24:25  ID:iSiyYjqf.net(2)
javaでconsを表現するときにどうすればいいか知ってますか?

354
デフォルトの名無しさん[]   投稿日:2016/06/20 21:29:28  ID:1vrQKLsp.net(12)
>28

アルゴリズムとデータ構造の本に疑似コードが載っていることがあるけど、
Scheme風に書かれていることなど決してない。

355
デフォルトの名無しさん[sage]   投稿日:2016/06/20 21:47:01  ID:eW3OX+fW.net(4)
>27
植木職人

356
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:10:02  ID:iz9OSKHh.net(4)
>18
未経験でも理解出来るならとりあえず地雷の可能性は下がる

357
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:22:55  ID:m9phkWTx.net(2)
恵まれてない会社だと全員切る羽目になるって話だろw

358
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:43:48  ID:zvz85rzc.net(4)
31
そのSICPはschemeでかかれているわけで
昨今のライブラリ重視の観点からいえば、javaがいいっていうのはとおるけど、アルゴリズムかくのにjavaがいいってのは、センスないというか、お手入れ大好きなんだろうな

359
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:49:30  ID:eW3OX+fW.net(4)
引用できないやつに言われると

360
デフォルトの名無しさん[sage]   投稿日:2016/06/20 22:50:33  ID:zvz85rzc.net(4)
スマホで>>うつのめんどいんだよ

361
デフォルトの名無しさん[sage]   投稿日:2016/06/22 04:43:48  ID:W4spe1mc.net(2)
日立、新型半導体コンピュータの実用化に向けた前処理アルゴリズムを開発
http://news.mynavi.jp/news/2016/06/21/172/

新型半導体コンピュータの実用化に向けて、
要素間の複雑なつながりを規則的な構造に自動変換する前処理アルゴリズムを開発
http://www.hitachi.co.jp/New/cnews/month/2016/06/0621a.html

関連記事
日立、量子コンピュータに匹敵する性能の室温動作の新型コンピュータを試作
http://news.mynavi.jp/news/2015/02/23/121/

362
デフォルトの名無しさん[]   投稿日:2016/06/22 07:14:40  ID:rmORGvIR.net(6)
日本人の書いたアルゴリズムとデータ構造の本でまともなのって1冊もないの?

363
デフォルトの名無しさん[sage]   投稿日:2016/06/22 07:53:05  ID:HSGRYDR8.net(2)
>39
まともとは?

364
デフォルトの名無しさん[]   投稿日:2016/06/22 07:59:50  ID:rmORGvIR.net(6)
日本人の書いた本は薄っぺらくて説明も十分ではなく厳密でもなく網羅性もない本ばかりに思う。

365
デフォルトの名無しさん[]   投稿日:2016/06/22 08:00:26  ID:rmORGvIR.net(6)
杉原厚吉の本は特にひどいと思った。

366
デフォルトの名無しさん[sage]   投稿日:2016/06/22 11:07:15  ID:DmPvlaR4.net(2)
>39
そのものズバリでアルゴリズムとデータ構造という本が岩波から出てる

367
デフォルトの名無しさん[sage]   投稿日:2016/06/22 12:53:15  ID:YevSrNYa.net(2)
まともな本とは?
argolythm introduction?
knuth本?
どっちも使い物にならないが

368
デフォルトの名無しさん[sage]   投稿日:2016/06/22 13:50:41  ID:WHe3DbmR.net(2)
>44
1単語に3箇所もミス入れるなよ

369
デフォルトの名無しさん[sage]   投稿日:2016/06/22 14:13:53  ID:sEqYA8cS.net(2)
根幹のタームの綴りも知らん半可通に何を教われというのか

370
デフォルトの名無しさん[sage]   投稿日:2016/06/22 14:17:48  ID:yBOVYSwe.net(2)
3ヶ所もあると誤り訂正も利かないんじゃまいか

371
デフォルトの名無しさん[sage]   投稿日:2016/06/22 14:22:16  ID:EwWgL4+X.net(2)
バースト発生させんな
コメント1件

372
デフォルトの名無しさん[sage]   投稿日:2016/06/22 15:16:40  ID:2z7j8yec.net(2)
????????????

373
デフォルトの名無しさん[sage]   投稿日:2016/06/22 21:44:16  ID:MWgF3eo3.net(2)
>44
そんな頭じゃ使いものにならんのも頷けるわ
コメント1件

374
デフォルトの名無しさん[sage]   投稿日:2016/06/22 22:23:26  ID:Z2xvvdgM.net(2)
こんな揚げ足とりの老害から何を学べと?

375
デフォルトの名無しさん[sage]   投稿日:2016/06/22 22:52:24  ID:X6XCfxlz.net(2)
馬鹿の自己紹介されても困る
コメント1件

376
デフォルトの名無しさん[sage]   投稿日:2016/06/24 11:47:43  ID:hSLmnyaY.net(2)
>19
は?変なのはお前だ
プログラミングは最初から工学的だろ何言ってんだ?

そもそもお前は工学と科学を理解してないから可笑しなことを言うんだ

377
デフォルトの名無しさん[sage]   投稿日:2016/07/15 12:10:18  ID:P21uCIN+.net(2)
何ヶ月か前に近代科学社に電話でセジウィックアルゴリズムの第四版の翻訳の予定はありますか、と訊いてみたが無いって返事だったんだよな
書いて欲しいんだがな

378
デフォルトの名無しさん[sage]   投稿日:2016/07/16 08:00:53  ID:Akpk7DL9.net(2)
アルゴリズムさえ知ってりゃ動くプログラムは書けるから他は優先度低いと考えてた結果
データ構造すら分からない化石プログラマになってしまった

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

アルゴリズムみたいにオーダー詰める楽しみはないけど…
コメント1件

379
デフォルトの名無しさん[sage]   投稿日:2016/07/18 09:37:52  ID:YPoLSDg9.net(2)
両方大事だろ。
データ構造が整理されてないとアルゴリズムも煩雑になるし。
コメント1件

380
デフォルトの名無しさん[]   投稿日:2016/07/21 23:06:49  ID:TpMXx+Na.net(2)
vEB木の「僕の考えた最強のデータ構造」感が大好きなんだが誰か共感してくれる人いる?

381
デフォルトの名無しさん[sage]   投稿日:2016/07/22 07:32:19  ID:ot11jjQx.net(2)
データ構造の基本は、以下の2つと、他にはハッシュがある

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

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

シーケンシャルは、リンクをたどるから、アクセスには時間がかかるけど、
要素の追加・削除では、リンクを付け替えるだけで、要素をずらさないから速い

382
デフォルトの名無しさん[sage]   投稿日:2016/07/26 06:56:53  ID:HN1KCMsQ.net(2)
letの時代がもうすぐそこまで来ているよね

383
デフォルトの名無しさん[sage]   投稿日:2016/07/26 14:27:18  ID:z5g/0KTZ.net(2)
let
-------
 λ

384
スモモンガー[sage]   投稿日:2016/09/23 22:08:49  ID:oKXONAGb.net(2)
どうも、お久しぶりです。スモモンガーです。(誰って感じだと思いますがそれで結構です)
以前紹介したアルゴリズムですが、結局全然応用分野は見つかっておりません。
前回は画像処理分野を中心に解説しましたが今回はより簡単に実装ができる
探索分野に絞って動画を作ってみました。つたない動画で大変申し訳ございませんが
見てみていただけたら幸いです。特許などは取得しておりませんのでどうかご自由に
お使いください。長文失礼いたします。痛いのは承知なのですが応用分野を必死に
探しているのでどうかご協力よろしくお願いします。

https://youtu.be/5m3kPHO2w98

以上、どうぞよろしくお願いします

385
デフォルトの名無しさん[sage]   投稿日:2016/09/23 22:16:41  ID:xWgfj234.net(2)
誰だ

386
デフォルトの名無しさん[sage]   投稿日:2016/09/23 22:42:52  ID:fJ2M8QeM.net(2)
帰れ

387
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:14:59  ID:osPXZH57.net(2)
>61
最初の数分見ましたが..

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

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

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

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

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

以上、感想でした

388
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:32:41  ID:n5/uj8Su.net(6)
64さん。ありがとうございます。私はこういうスライドを作る機会があまりないのでこんな形になってしまいました。
実は整っているという抽象的な単語を使っていますが、実は定量的にこれを測る方法はまだ思いついていません。
そのほかのご指摘はその通りだと思います。
貴重なご意見ありがとうございます

389
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:49:16  ID:B225F1SQ.net(2)
動画見るの面倒だから3行で説明して

390
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:53:53  ID:trsNBxRI.net(2)



391
デフォルトの名無しさん[sage]   投稿日:2016/09/24 09:55:26  ID:n5/uj8Su.net(6)
>66
まず目的のキーと現在探索中のキーの差をとる。
それを隣接するキーの最大値で割る。
その値だけ進む。

まあ、原理は単純なアルゴリズムです

392
デフォルトの名無しさん[sage]   投稿日:2016/09/24 10:46:59  ID:iZTaxfZT.net(2)
>隣接するキーの最大値

これをあらかじめ求めておかなきゃならんってのが一番のネックだな。
一般のデータに対する探索だと、バイナリサーチと比較したメリットと言っていたものの大半が消し飛んでしまう。

393
デフォルトの名無しさん[sage]   投稿日:2016/09/24 10:49:01  ID:9ZsTQHH6.net(2)
>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
...
と線形時間になる(やり方あってるよね?)
演算している分、比較だけの線形探索より処理速度が遅くなる
コメント1件

394
デフォルトの名無しさん[sage]   投稿日:2016/09/24 11:09:23  ID:n5/uj8Su.net(6)
>69
>70
確かにキーの最大値を求めるのは線形時間かかります。なのであらかじめ、隣接するキーの最大値が分かっているデータに使用可能です。
探索の最悪時間は線形時間ですが、平均時間はlogのオーダーになるのではないでしょうか。私が不勉強なもので理論的には、示めせませんが多分logのオーダーになると思います。
ソートしなくても探索できるのは差の絶対値を取るからです。動画に入れるのを忘れました。すいません。
計算についてはそれであっています。わざわざご指摘ありがとうございます
コメント2件

395
デフォルトの名無しさん[sage]   投稿日:2016/09/25 01:17:16  ID:MeFnEkA4.net(2)
>71
上でも指摘されているが整っているの定義が不明
二分探査の場合は、存在しないこともlog n で確認可能だが、この手法は整っているの定義次第では存在しない者の確認が非常に時間かかる(ソートされている場合は存在するものと同等だが、そうすると二分探索よりも利点が少なくなる)
平均計算量を求めるのはちと難しそうだけど、格納される値の値域に依存するかな
たぶん、log n 程良くはないと思う
コメント1件

396
デフォルトの名無しさん[sage]   投稿日:2016/09/25 09:29:52  ID:byM8xGto.net(2)
>72
ご指摘ありがとうございます。確かに整っているの定義ができていないのが一番の難点ですよね。いつか勉強して考えたいと思います

397
デフォルトの名無しさん[]   投稿日:2016/09/25 12:26:29  ID:3wiQalb8.net(2)
>67
ごめん
みたけど
だめだこりゃ

398
デフォルトの名無しさん[sage]   投稿日:2016/09/25 12:52:11  ID:NTqjAG/u.net(2)
>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回の演算

結論として
このアルゴリズムの最大の欠点は差の最大値が必要な事を含めて
データ列の内容に左右されてしまうことだな
この手のアルゴリズムはデータの外側にあるべきだな

399
デフォルトの名無しさん[sage]   投稿日:2016/09/25 14:20:01  ID:8PebKpFu.net(2)

400
デフォルトの名無しさん[sage]   投稿日:2016/09/26 13:42:01  ID:ymOrEJcI.net(2)
>61
すもモンがnewton法をガチで知らないのであればnewton法をまず勉強するべき
カンガルーの敵はバイナリではなくnewtonだ
コメント1件

401
スモモンガー[sage]   投稿日:2016/09/26 20:32:40  ID:7l1kSKga.net(4)
確かにデータ間の差に一様離散分布を使ったのは公平ではなかったです。
なので、データを完全にランダムにして調べてみました。
データはCのrand()%1000000で10000個生成しソートして、
探索の時配列のうちランダムな値を探すキーとし間を線形探索、カンガルー法
バイナリサーチで100回比べてみました。
その結果線形探索では平均比較回数約4963回最大比較回数は9972回でした
カンガルー法は平均比較回数約70回 最大比較回数は111回でした。
バイナリーサーチはやはり一番はやく、平均比較回数約12回、最大比較回数は14回でした
皆さんがご指摘の通りやはりバイナリーサーチが一番はやいようです。
ただ、例えばKMP法が逆行がないから使われているようにカンガルー法も逆行がないので
使うことはできないでしょうか?もし、とんちんかんなこと言ってたらすいません。

402
デフォルトの名無しさん[sage]   投稿日:2016/09/26 20:37:55  ID:7l1kSKga.net(4)
>74
www確かにそうかもしれませんね。
>77
一応私はニュートン法については知っています。Newton法は求める関数の微分した値を
しっていなければならないとおもうのですが、現実の探索だと関数が微分できないことも
多いかと思います。ちょっと、私が使った例が悪くてsinカーブや円を使ったのがよく
なかったのかもしれません。整っていてソートされていないデータとして扱いやすかったので
sin関数を使ったのであってとくにデータが微分可能である必要はありません。円と
Y切片の交点も中学生でも二次方程式ときゃいいのでもっと簡単にできますが、本来は
多角形とさまざまな図形の交点を探るアルゴリズムです。円を使ったのは例をわかりやすく
したかったからです。

403
デフォルトの名無しさん[]   投稿日:2016/10/16 18:51:48  ID:LqkHCFhg.net(2)
状態遷移ってどういうステータス持てばいいの?

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

というとき、A と B のほかに AからBになるのを待ってる状態と
BからAになるを待ってる状態の 2つがさらに状態として必要?
過渡状態も状態?

404
デフォルトの名無しさん[sage]   投稿日:2016/10/17 07:56:46  ID:TukeUWYl.net(2)
>80
システムの設計次第。
切り替え中、待ち中が状態として存在するのならプログラムでも状態にすればいい

405
デフォルトの名無しさん[sage]   投稿日:2016/10/17 15:43:18  ID:srAFoI0L.net(2)
>81
そりゃそうだけど
状態がn個あると過渡状態がたくさんになるのは
辛い

406
デフォルトの名無しさん[sage]   投稿日:2016/10/17 17:53:14  ID:75S5w4gh.net(2)
現在の状態と次の状態のペアにすれば?

407
デフォルトの名無しさん[sage]   投稿日:2016/10/17 21:23:44  ID:sc7L52q+.net(2)
辛かろうが状態が存在するのならしょうがあるまい。
あるいは遷移をアトミックにして遷移中状態そのものを無くすか、遷移中の動作を共通化
できるなら遷移先をパラメータ化して「*への遷移中」という1状態にしてしまうとか。

408
デフォルトの名無しさん[sage]   投稿日:2016/10/17 23:34:18  ID:WkWdUImM.net(2)
>82には無理ということで

409
デフォルトの名無しさん[sage]   投稿日:2016/11/05 20:41:10  ID:PXYcOtjJ.net(2)
ポリモーフィックなクラスの相互作用において特定の型の組み合わせの場合のみ処理を特殊化したい場合はどうすればいいのだろう?

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);

410
デフォルトの名無しさん[sage]   投稿日:2016/12/12 23:13:40  ID:IcWOSn01.net(2)
デザインパターンを使って実装すると、年長プログラマーから、またこんなことしやがって的な拒否反応が帰ってくるんだがどうすれば

411
デフォルトの名無しさん[sage]   投稿日:2016/12/12 23:42:41  ID:bt79hYqC.net(2)
排除する他道は無い。

412
デフォルトの名無しさん[sage]   投稿日:2016/12/12 23:50:03  ID:hGpJarHd.net(2)
転職しろ

413
デフォルトの名無しさん[sage]   投稿日:2016/12/13 03:19:26  ID:neuXXcOh.net(2)
若者で組合(または派閥)を創る

414
デフォルトの名無しさん[sage]   投稿日:2016/12/13 08:14:05  ID:5xcG7lRc.net(2)
>87 がどんなコードを書いたかも分からんのに

415
デフォルトの名無しさん[sage]   投稿日:2016/12/13 18:53:42  ID:MUcELcjh.net(2)
下手くそがデザインパターンとか使うと逆にこんがらがるからなぁ
老害とどっこいどっこいだろ

416
デフォルトの名無しさん[]   投稿日:2016/12/13 21:32:18  ID:lYWHr0pJ.net(2)
マルチスレッドで、なんの考えもなくオブザーバー使いまくられて、データ破壊しまくられた時には、本気で殺意を抱いたよ

417
デフォルトの名無しさん[]   投稿日:2016/12/16 15:12:11  ID:kO0vFktz.net(2)
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』

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

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

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

というのがあります。

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

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

よろしくお願いします。

418
デフォルトの名無しさん[sage]   投稿日:2016/12/16 15:34:53  ID:n8JQ6xp/.net(2)
assertionじゃね

419
デフォルトの名無しさん[]   投稿日:2016/12/17 16:05:18  ID:lvQHWty7.net(2)
完成形をいきなり見てると不思議に思うよね。
でも実際には作成中のバグを考慮して、最初にチェックを入れておくもんなんだよね。
まあ、一言で言えばassertなんだけど。

ただ、作業やデバッグ用には必須であっても、その本の例示として必要か?と言われれば、確かにいらない気がする。

420
デフォルトの名無しさん[]   投稿日:2016/12/17 16:09:26  ID:GDWdcO6h.net(14)
>95-96

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

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

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

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』はお持ちでしょうか?
もし、お持ちでないようでしたら該当箇所の画像をアップロードします。

421
デフォルトの名無しさん[]   投稿日:2016/12/17 16:23:27  ID:GDWdcO6h.net(14)
>94

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

http://imgur.com/zKVWzAJ.jpg
http://imgur.com/owa8NkX.jpg
http://imgur.com/NmCczss.jpg

422
デフォルトの名無しさん[sage]   投稿日:2016/12/17 16:42:25  ID:a9hyyPvt.net(6)
>97
参考文献ならパクってるとは言わない

423
デフォルトの名無しさん[sage]   投稿日:2016/12/17 16:43:27  ID:a9hyyPvt.net(6)
>98
こういうのが本当のパクり
訴えられたら負ける

424
デフォルトの名無しさん[sage]   投稿日:2016/12/17 18:12:28  ID:rDdwnYMe.net(4)
>97
他の本も読んでみるとわかると思うけど、プライオリティキューを二分木ヒープで実装するのは定番で、どの本でも大体同じことが書いてある

425
デフォルトの名無しさん[]   投稿日:2016/12/17 19:29:55  ID:GDWdcO6h.net(14)
>98

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

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

heapIncreaseKey(A, i, key) を何か別の用途に使う場合があって、そのときに必要に
なるのならば納得しますが。

426
デフォルトの名無しさん[]   投稿日:2016/12/17 19:31:29  ID:GDWdcO6h.net(14)
>101

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

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

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

完全にパクりだと思います。
コメント3件

427
デフォルトの名無しさん[]   投稿日:2016/12/17 19:35:00  ID:a9hyyPvt.net(6)
>103
参考文献に書いてあるんだからパクリも糞も無い罠
参考文献に書き漏れたら小保方さんみたいに突っ込まれるが

428
デフォルトの名無しさん[]   投稿日:2016/12/17 19:35:29  ID:GDWdcO6h.net(14)
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の
他のプログラムもおそらくすべて『アルゴリズムイントロダクション』の
プログラムをそのまま使っています。

恥を知れと言いたいです。

429
デフォルトの名無しさん[]   投稿日:2016/12/17 19:36:34  ID:GDWdcO6h.net(14)
参考文献に文献を挙げれば何でも許されるということはないと思いますが。

430
デフォルトの名無しさん[]   投稿日:2016/12/17 19:39:42  ID:GDWdcO6h.net(14)
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、

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

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

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

>98

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

意味不明としか言えないかと思います。
コメント1件

431
デフォルトの名無しさん[sage]   投稿日:2016/12/17 19:42:21  ID:C/wQAZQ3.net(2)
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、
『アルゴリズムイントロダクション』のほうもまたどっか別の本からのパクリの悪寒。

432
デフォルトの名無しさん[sage]   投稿日:2016/12/17 19:47:48  ID:YhK78PBA.net(2)
"error: heap underflow" でググるといっぱい出てくる
コメント2件

433
デフォルトの名無しさん[sage]   投稿日:2016/12/17 19:57:50  ID:rDdwnYMe.net(4)
ID:GDWdcO6h は何をそんなに怒ってるの?
問題が解けなくてイライラしてるだけ?

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

新しい本を書くときは参考文献よりもわかりやすくなるように、説明やイラスト、擬似コードを変えたり、あるいは同じものを流用することもあるだろう

434
デフォルトの名無しさん[sage]   投稿日:2016/12/17 20:55:04  ID:jmPH7DRp.net(2)
disるのがはやってるらしい

435
デフォルトの名無しさん[sage]   投稿日:2016/12/18 00:45:20  ID:aCKcGLhu.net(8)
プログラミングコンテスト攻略のための、
アルゴリズムとデータ構造、渡部有隆(わたのべ ゆたか)、2015
Ozy(協力), 秋葉 拓哉(協力)

Aizu Online Judge(AOJ、会津大学)

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

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

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

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

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

一方、増井は、Rubyで解く、このパズル本で、
「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞(ITエンジニア本大賞)」を受賞している

436
デフォルトの名無しさん[]   投稿日:2016/12/18 00:49:54  ID:VFzWAIXP.net(4)
めんどくさ

437
デフォルトの名無しさん[sage]   投稿日:2016/12/18 01:14:58  ID:aCKcGLhu.net(8)
漏れも、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、となり複雑だから

438
デフォルトの名無しさん[sage]   投稿日:2016/12/18 01:56:35  ID:05Ug+E6t.net(6)
>114
汚すぎるコードだ。なんだろう。初心者とも違うな。
まるで20年ぐらい前から成長してない人が書いたコードのようだ。
コメント1件

439
デフォルトの名無しさん[]   投稿日:2016/12/18 02:12:34  ID:KR24tnjc.net(2)
>115
ド素人と丸出しの感想文だな

440
114[sage]   投稿日:2016/12/18 04:57:12  ID:aCKcGLhu.net(8)
すまぬ

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

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

Kotlin, Electron やら何やら、最近の言語に、ついていけてないw
コメント1件

441
デフォルトの名無しさん[sage]   投稿日:2016/12/18 08:19:04  ID:05Ug+E6t.net(6)
> 本当は、== ではなく、型も一致する厳密等価演算子、=== を使うべきだろう
そういうレベルじゃない。

無駄なロジック、意味不明な変数名、多すぎるコメント、
コードの意味を何一つ分かってないとしか思えないといってんの

442
デフォルトの名無しさん[sage]   投稿日:2016/12/18 11:08:48  ID:7J/3tpZx.net(2)
俺はむしろここ
> このソースコードのライセンスは、MIT License です
> Original Copyright (c) 2014 Michihito Seto All Rights Reserved.
残飯を神棚に飾るが如く宣言
ここにこそ初心者らしさが凝縮されてる

443
デフォルトの名無しさん[]   投稿日:2016/12/18 11:50:21  ID:5nrc1ooF.net(20)
>114

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

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

というのは意味があるのでしょうか?

444
デフォルトの名無しさん[sage]   投稿日:2016/12/18 11:50:54  ID:05Ug+E6t.net(6)
jsdo使ってるやつって汚いコードが多いよな。
素人が使いたくなる機能でもあんのか?
ブラウザだけで開発ができるとか?
コメント1件

445
デフォルトの名無しさん[]   投稿日:2016/12/18 11:53:36  ID:5nrc1ooF.net(20)
デバッグなど必要のないくらい簡単なコードなので、デバッグ用とは考えられないかと思います。
コメント1件

446
デフォルトの名無しさん[sage]   投稿日:2016/12/18 11:57:14  ID:0+9ctOie.net(2)
馬鹿ほど自説に拘るw

447
デフォルトの名無しさん[]   投稿日:2016/12/18 12:12:58  ID:5nrc1ooF.net(20)
Introduction to AlgorithmsよりもAlgorithms(Sedgewick、赤い本)のほうがいい本ですね。

読んでいて楽しい。

448
デフォルトの名無しさん[]   投稿日:2016/12/18 12:18:23  ID:5nrc1ooF.net(20)
日本語のデータ構造とアルゴリズムの本だと、茨木の本が有名だけど、
どこがいいのかさっぱりわからない。

翻訳書ではない日本語の本でまともなのは、浅野孝夫の本くらいではないでしょうか?

449
デフォルトの名無しさん[sage]   投稿日:2016/12/18 12:18:30  ID:d5jVhhWj.net(6)
アルゴリズムやコードのライセンスってどの程度のものから付けていいんだ
あんまり簡単なものだと既出すぎてライセンス付けられるのか?って考えてしまう
かといってじゃあライセンス付けていい最低ラインは何なんだという話になる

450
デフォルトの名無しさん[]   投稿日:2016/12/18 12:20:00  ID:5nrc1ooF.net(20)
>126

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

どうやって、だれかのコードを流用したか判定するのか、それに興味があります。

451
デフォルトの名無しさん[sage]   投稿日:2016/12/18 12:30:54  ID:RB5DyRP2.net(4)
アルゴリズムには著作権ないよ
あるのはそれをどう表現したか
簡単なアルゴリズムには表現バリエーションなんて限られてるから
ある程度似るのはどうしようもない

452
デフォルトの名無しさん[]   投稿日:2016/12/18 12:37:57  ID:5nrc1ooF.net(20)
特許ならありますよね。

453
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:02:47  ID:PELrVlNw.net(6)
デザインパターンの本高い・・・
一冊持ってたけど引っ越しのごたごたでなくしちゃった
無料で網羅できるサイトありませんかね
一冊読んではあるので、さらっと構造や仕組みを紹介してくれていればいいし
英語もある程度は読めます

基本のデザインパターンだけでもありがたいし
マルチスレッド対応に踏み込んだサイトならなおありがたいです

454
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:22:26  ID:d5jVhhWj.net(6)
基本的な考え方覚えたら幾らでも応用できるだろ
カタログを後生大事にとっておく意味はない

455
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:35:15  ID:PELrVlNw.net(6)
覚えてないんすよ
記憶力ないんで忘れちゃって、ぼんやりとしか覚えてないんです
だから概要をしっかり覚え直したいなと思って

456
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:42:55  ID:+dKTlaSP.net(2)
>132
いや、デザパタ本こそ手元においておくべき
わけのわからん二次情報を見るとどんどんブレていくぞ

457
デフォルトの名無しさん[sage]   投稿日:2016/12/18 13:45:05  ID:RB5DyRP2.net(4)
リファレンスとしてはどの本がいい?

458
デフォルトの名無しさん[]   投稿日:2016/12/18 13:45:12  ID:5nrc1ooF.net(20)
ソフトウェア工学的な本って重要なんですか?

459
デフォルトの名無しさん[]   投稿日:2016/12/18 13:45:59  ID:5nrc1ooF.net(20)
学問的には全く面白くない分野ですよね。

460
デフォルトの名無しさん[sage]   投稿日:2016/12/18 14:08:17  ID:PELrVlNw.net(6)
TECHSCOREのデザインパターンのページ見ることで自己解決しました
コメント1件

461
デフォルトの名無しさん[]   投稿日:2016/12/18 15:45:37  ID:VFzWAIXP.net(4)
デザパタカタログは便利だよね
煮詰まったときに、休憩がてらパターンを眺めてると、閃くときがある

462
デフォルトの名無しさん[sage]   投稿日:2016/12/18 16:24:54  ID:+Ko1jSRc.net(2)
ねーわ、普通のコードが99.99%

463
デフォルトの名無しさん[sage]   投稿日:2016/12/18 18:22:27  ID:d5jVhhWj.net(6)
基本的な発想を学んだらカタログはポイ
パターンに執着してもデザインがぎこちなくなるだけ

464
114[sage]   投稿日:2016/12/18 23:03:56  ID:aCKcGLhu.net(8)
>119
jsdo.it では、全員のソースコードが、サイト内に限り、MITになる

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

2分ヒープ、AVL、赤黒木など、アルゴリズムの実装は、どうしても汚いソースコードになる

465
デフォルトの名無しさん[sage]   投稿日:2016/12/18 23:11:13  ID:f3M2Oqre.net(2)

466
デフォルトの名無しさん[]   投稿日:2016/12/18 23:11:21  ID:5nrc1ooF.net(20)
2分ヒープって簡単なアルゴリズムですよね。

汚くなりようがないように思うのですが。

467
デフォルトの名無しさん[]   投稿日:2016/12/18 23:12:19  ID:5nrc1ooF.net(20)
計算幾何学って難しい割に見返りが少ないように思います。

だからあんまり人気がないのかもしれないですね。

468
デフォルトの名無しさん[sage]   投稿日:2016/12/19 00:01:07  ID:hSWjQy3F.net(10)
漏れw
コメント1件

469
デフォルトの名無しさん[sage]   投稿日:2016/12/19 01:06:56  ID:8cVREo5r.net(2)
流石に漏れは笑う

470
デフォルトの名無しさん[sage]   投稿日:2016/12/19 08:08:43  ID:judB9f5Y.net(2)
>144
全体的なリテラシの底上げがされるまではどうしてもね。

471
デフォルトの名無しさん[]   投稿日:2016/12/19 12:42:11  ID:z9XVuDpo.net(4)
>144
理論的な上限値をあらかじめ計算することが出来て
無駄な努力や試行錯誤をしなくて済むというメリットがあるよ
コメント2件

472
デフォルトの名無しさん[sage]   投稿日:2016/12/19 17:37:02  ID:ic0p/3Yf.net(28)
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する長さ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。

473
間違ってたので直します[sage]   投稿日:2016/12/19 17:39:59  ID:ic0p/3Yf.net(28)
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。
コメント1件

474
デフォルトの名無しさん[sage]   投稿日:2016/12/19 17:48:27  ID:z9XVuDpo.net(4)
(1,-1,1)の長さが2?
コメント2件

475
デフォルトの名無しさん[]   投稿日:2016/12/19 17:53:09  ID:yHCszZUX.net(12)
>なのでその対応をする関数をおしえてください。

意味不明です。

476
デフォルトの名無しさん[]   投稿日:2016/12/19 17:55:40  ID:yHCszZUX.net(12)
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

(a_1, a_2, ..., a_i-1, ..., a_n)

a_i < 0 のときには、

(a_1, a_2, ..., a_i+1, ..., a_n)

a_i = 0 のときには、

(a_1, a_2, ..., a_i±1, ..., a_n)

を返せばいいのでは?

477
デフォルトの名無しさん[]   投稿日:2016/12/19 17:57:14  ID:yHCszZUX.net(12)
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

(a_1, a_2, ..., a_i-1, ..., a_n)

a_i < 0 のときには、

(a_1, a_2, ..., a_i+1, ..., a_n)

を返せばいいのでは?

a_i = 0 のときには、条件を満たす列は存在しないね。

478
デフォルトの名無しさん[]   投稿日:2016/12/19 17:58:07  ID:yHCszZUX.net(12)
>150

何がやりたいのかが不明確。
コメント1件

479
デフォルトの名無しさん[sage]   投稿日:2016/12/19 17:58:17  ID:hSWjQy3F.net(10)
>149
列の最初の数字だけ1足すなり引くなりして返せばいいだけじゃないの?

480
デフォルトの名無しさん[]   投稿日:2016/12/19 18:01:17  ID:yHCszZUX.net(12)
>例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
>(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
>なのでその対応をする関数をおしえてください。

一つに定まらないから、すべての結果を返したいのか、
任意の一つの結果を返したいのか?

481
デフォルトの名無しさん[]   投稿日:2016/12/19 18:02:09  ID:yHCszZUX.net(12)
明らかに、

(0, 0, ..., 0) に対しては条件を満たす結果は存在しないね。

482
デフォルトの名無しさん[sage]   投稿日:2016/12/19 18:50:37  ID:ic0p/3Yf.net(28)
0はスタート地点なので

483
デフォルトの名無しさん[sage]   投稿日:2016/12/19 18:57:02  ID:ic0p/3Yf.net(28)
>154
a_2を1としたとき(-1, 1)のとき(-1,0)を返し
a_1を-1としたとき (-1,1)は(0,1)をかえすことになるので
一つに定まりません

484
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:06:19  ID:ic0p/3Yf.net(28)
>157
大きさn>0の任意の列aにたいしてf(a)=bでbがn-1の大きさでaと列の中の値が1だけ違う
列を出力する関数fを求めるということです。
コメント1件

485
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:13:51  ID:ic0p/3Yf.net(28)
>156
初めはそんな風に考えてる時期もありました
もう2か考えてるけれど全然わからないのでここで質問してみました

486
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:16:05  ID:hSWjQy3F.net(10)
>161
問題文を鸚鵡返しするんじゃなくて、質問者の質問に答えたら?

487
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:23:49  ID:ic0p/3Yf.net(28)
>163
fの出力は列の集合じゃないから普通わかりますよね

488
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:31:58  ID:hSWjQy3F.net(10)
>164
fが返すのは集合じゃないってのはどこに書いてある?

489
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:34:42  ID:ic0p/3Yf.net(28)
>165
14行上に書いてあります

490
デフォルトの名無しさん[sage]   投稿日:2016/12/19 19:47:31  ID:hSWjQy3F.net(10)
>166
Mateだと>156って書いてあるわ
自分の中ではこれは当然みたいな条件がいろいろあるんだろうけど、それを人に説明するのが下手なんじゃね

491
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:02:25  ID:ic0p/3Yf.net(28)
改行コードの数を数えてますか?
文の折り返しと改行とは違いますよ?

492
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:17:02  ID:2q/Y95iw.net(8)
こりゃまたひどい質問者だな

493
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:18:06  ID:Xx/umGft.net(6)
課題の丸投げ、しかも「日本語」が

494
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:25:56  ID:ic0p/3Yf.net(28)
課題という証拠はありますか?
実際課題じゃなくプログラミングしていたら出てきた問題なので
全然課題じゃないです

495
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:33:03  ID:ic0p/3Yf.net(28)
>170
あなたには誤った文を訂正する能力がないんですか?
それでは人間ではなくコンパイラーと同じですよ

496
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:37:51  ID:ic0p/3Yf.net(28)
>169
面白い問題とつまらない問題を区別する能力が数学的推測には
一番必要なんんです
この問題がつまらないと思うのなら解かないでいいです
コメント1件

497
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:50:46  ID:2q/Y95iw.net(8)
問題をきちんと記述する能力に欠けている
コメント1件

498
デフォルトの名無しさん[sage]   投稿日:2016/12/19 20:52:23  ID:2q/Y95iw.net(8)
あと、面白い問題だと思うなら、それこそ自分で解くのが楽しいのでは
ここで聞かずに

499
デフォルトの名無しさん[sage]   投稿日:2016/12/19 21:27:51  ID:ic0p/3Yf.net(28)
>175
楽しいものは独り占めるのではなく分け与えようと習わなかったのでは?

500
デフォルトの名無しさん[sage]   投稿日:2016/12/19 21:44:43  ID:ic0p/3Yf.net(28)
>174
今読み返してみましたがキチンと書かれてますよ
どこがキチンと書かれてないのか言ってくれたら
それは理解力の無さなので説明してもいいです

501
デフォルトの名無しさん[sage]   投稿日:2016/12/19 22:34:08  ID:2q/Y95iw.net(8)
十分楽しんだからあとは一人で楽しんでくれていいよ

502
デフォルトの名無しさん[sage]   投稿日:2016/12/19 22:53:51  ID:Xx/umGft.net(6)
>172
馬鹿乙

503
デフォルトの名無しさん[sage]   投稿日:2016/12/19 23:04:39  ID:L2gIhLeK.net(2)
先頭から非0を探して、はじめの要素が正なら1ひく、負なら1足す
これで終わりじゃないの?

504
デフォルトの名無しさん[sage]   投稿日:2016/12/19 23:45:15  ID:Xx/umGft.net(6)
アルゴリズムは自分で考えるじゃ、ボケ

505
デフォルトの名無しさん[sage]   投稿日:2016/12/20 13:05:59  ID:lAXr92yw.net(2)
>171
茶か尿かもう判らんって意見があるけど
検出時のガスクロのデータ見直したら判るはずという話がある
仮にそれでお茶だとしてももう発表はないだろう

506
デフォルトの名無しさん[]   投稿日:2016/12/21 18:35:54  ID:UR5SKYPV.net(30)
数列 1, 2, 3, …

すなわち、

数列 {a_n} = {n}

を考える。

{a_n} の任意の連続する有限部分列を a_k, a_(k+1), …, a_l(k ≦ l)とする。

各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する:

「2^(b_i) は a_i を割り切るが、 2^(b_i+1) は a_i を割り切らない」

このとき、 #{m | k ≦ i ≦ l である任意の i に対して、 b_i ≦ b_m} = 1 であることを示せ。

また、有限部分列 a_k, a_(k+1), …, a_l(k ≦ l)が与えられたとき、 k ≦ i ≦ l である
任意の i に対して、 b_i ≦ b_m となるような m を求めるプログラムを作れ。

507
デフォルトの名無しさん[sage]   投稿日:2016/12/21 18:45:01  ID:trArLuj5.net(8)
お断りいたします

508
デフォルトの名無しさん[sage]   投稿日:2016/12/21 18:49:10  ID:IT3zLaEf.net(2)
俺も断るわ

509
デフォルトの名無しさん[]   投稿日:2016/12/21 19:41:25  ID:UR5SKYPV.net(30)
早くも降参宣言か。

510
デフォルトの名無しさん[sage]   投稿日:2016/12/21 19:55:05  ID:RIWp4Ngq.net(18)
mなんていくらでもあるんじゃないの?
なんで#{m}=1?

511
デフォルトの名無しさん[]   投稿日:2016/12/21 20:06:55  ID:UR5SKYPV.net(30)
>187

一意的です。そこがちょっと面白いところです。

反例を作ろうと思ってもできないはずです。

512
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:09:57  ID:trArLuj5.net(8)
>183
分からない問題はここに書いてね421 [無断転載禁止]©2ch.net
分からない問題はここに書いてね421 /数学板

513
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:12:10  ID:RIWp4Ngq.net(18)
k=1, l=2で、{m}={2,4,6,8,...}
k=l=1で、{m}=自然数の集合
じゃないの?

514
デフォルトの名無しさん[]   投稿日:2016/12/21 20:16:47  ID:UR5SKYPV.net(30)
>190

{a_n} の任意の*連続する*有限部分列を a_k, a_(k+1), …, a_l(k ≦ l)とする。

515
デフォルトの名無しさん[]   投稿日:2016/12/21 20:18:48  ID:UR5SKYPV.net(30)
k=1, l=2で、{m}={2,4,6,8,...}
k=l=1で、{m}=自然数の集合
じゃないの?

a_1, a_2 = 1, 2

なので、 b_1, b_2 = 0, 1

です。

なので、 {m} = {2} です。

516
デフォルトの名無しさん[]   投稿日:2016/12/21 20:19:15  ID:UR5SKYPV.net(30)
>191
は勘違いです。
コメント1件

517
デフォルトの名無しさん[]   投稿日:2016/12/21 20:20:14  ID:UR5SKYPV.net(30)
a_1 = 1

なので、

b_1 = 0

です。

なので、

{m} = {1}

です。

518
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:21:17  ID:RIWp4Ngq.net(18)
k=1, l=2も、k=l=1も、当然連続する部分列でしょ
{b_i}を10個ぐらい挙げてみてよ

519
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:22:42  ID:RIWp4Ngq.net(18)
mの条件が足りないんじゃないの?

520
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:24:46  ID:RIWp4Ngq.net(18)
b_i ≦ b_mさえ満たせばいいんならmなんていくらでもあるでしょ

521
デフォルトの名無しさん[]   投稿日:2016/12/21 20:32:03  ID:UR5SKYPV.net(30)
b_m は b_i の最大値です。

その最大値となる b_m の m が一意的であるということです。

522
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:32:36  ID:El82f3CE.net(2)
k≦m≦lという条件が抜けているっぽいね

523
デフォルトの名無しさん[]   投稿日:2016/12/21 20:34:06  ID:UR5SKYPV.net(30)
テレンス・タオ ルベーグ積分入門
テレンス タオ
固定リンク: http://amzn.asia/8KaL6NK

「日本の理工系学部ではルベーグ積分は3年次程度の必修相当科目なので、」

↑これっておかしくないですか?

普通、ルベーグ積分なんてやるのは数学科かせいぜい物理学科くらいじゃないですか?

524
デフォルトの名無しさん[]   投稿日:2016/12/21 20:34:58  ID:UR5SKYPV.net(30)
>199

各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する:

525
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:39:27  ID:RIWp4Ngq.net(18)
不完全な問題出しておいて>186はないよね

526
デフォルトの名無しさん[]   投稿日:2016/12/21 20:41:22  ID:UR5SKYPV.net(30)
>202

不完全なところはありません。
よく問題文を読んでください。

527
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:42:06  ID:trArLuj5.net(8)

528
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:43:41  ID:trArLuj5.net(8)
マルチ小僧w

529
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:44:49  ID:RIWp4Ngq.net(18)
>203
mがkからlの間なんて一言もないんだから不完全

530
デフォルトの名無しさん[]   投稿日:2016/12/21 20:47:08  ID:UR5SKYPV.net(30)
>206

>183
各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する

531
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:52:23  ID:RIWp4Ngq.net(18)
そうだとして、わざと誤読を誘おうとしている悪問だね
でO(log k)のアルゴリズム思いついたから俺は降りるね

532
デフォルトの名無しさん[sage]   投稿日:2016/12/21 20:53:06  ID:RIWp4Ngq.net(18)
O(log l)だった

533
デフォルトの名無しさん[]   投稿日:2016/12/21 20:55:14  ID:UR5SKYPV.net(30)
>183

の解答は以下です。

http://imgur.com/rAnp3Ga.jpg

赤線を引いたところは「odd」が正しいですね。

534
デフォルトの名無しさん[]   投稿日:2016/12/21 21:27:34  ID:UR5SKYPV.net(30)
実は、この問題には続きがあります。

m, n を m < n を満たす正の整数とします。

このとき、

1/m + 1/(m+1) + … + 1/n

は整数にはならないことを証明せよ。

535
デフォルトの名無しさん[]   投稿日:2016/12/21 21:29:28  ID:UR5SKYPV.net(30)
ちょっとアルゴリズム的な問題からは離れますが。

536
デフォルトの名無しさん[sage]   投稿日:2016/12/21 21:31:37  ID:xYX0mlO/.net(2)
提出日はいつですか?
コメント1件

537
デフォルトの名無しさん[sage]   投稿日:2016/12/21 22:14:54  ID:auJA5Ak8.net(2)
またバカな質問者が暴れてるのか

538
デフォルトの名無しさん[sage]   投稿日:2016/12/21 23:45:05  ID:mNaBBYjZ.net(2)
qiitaでやれ

539
デフォルトの名無しさん[sage]   投稿日:2016/12/23 00:59:54  ID:gOElNe3R.net(4)
>183
そのような m が 2 個ある
m1 < m2
とする

m1 の下位ビット 0 〜 n-1 までは 0で、 ビット n が 1 とする
m2 も同様になる(すなわち b_m1 = b_m2 = n )

m3 = m1 + ( 2 の n 乗 )

と定義すると
m1 < m3 <= m2 であるが、b_m3 > n となって矛盾
コメント1件

540
デフォルトの名無しさん[sage]   投稿日:2016/12/23 01:37:11  ID:gOElNe3R.net(4)
>211
1/m + 1/(m+1) + … + 1/n = P = 整数
だとする

L = ∏ r ; r = m…n
を両辺に掛ける

L/m + L/(m+1) + … + L/n = LP

すべての項は整数。

b_LP ( LP の連続する下位ビット 0 の個数 ) >= Σ b_r ; r = m…n

m <= x <= n は b_x を最大にするもの
左辺の L/x だけ連続する下位ビット 0 の個数は他より少ない
よって b_左辺 = b_x で矛盾

541
デフォルトの名無しさん[]   投稿日:2017/01/01 00:15:18  ID:VtFWW7J2.net(2)
ダイクストラのアルゴリズムの正しさの証明が載っている本で
一番分かりやすい本を教えてください。
コメント2件

542
デフォルトの名無しさん[]   投稿日:2017/01/02 07:40:19  ID:03PPbeGI.net(30)
『アルゴリズムイントロダクション』について質問です。

この本での実数の集合には、 ∞, -∞ が含まれるのでしょうか?

最短路問題の説明で、

実数 a が a≠∞のとき、 a + -∞ = -∞
実数 a が a≠-∞のとき、 a + ∞ = ∞

という記述があるために質問します。

543
デフォルトの名無しさん[]   投稿日:2017/01/02 08:09:15  ID:03PPbeGI.net(30)
実数 a が a≠∞のとき、 a + -∞ = -∞
実数 a が a≠-∞のとき、 a + ∞ = ∞

-∞ + -∞ = -∞
∞ + ∞ = ∞

という等式を含めたいからこのような書き方になったのでしょうか?

544
デフォルトの名無しさん[sage]   投稿日:2017/01/02 09:29:22  ID:J77W/v0L.net(4)
それは実無限派の書き方だが,世の趨勢は可能無限
ほどほどに相手をするだけでいいよ

545
デフォルトの名無しさん[]   投稿日:2017/01/02 11:22:57  ID:03PPbeGI.net(30)
>221

ということは、『アルゴリズムイントロダクション』での実数の集合の定義には、
∞、-∞ が含まれるというk十ですね。

546
デフォルトの名無しさん[]   投稿日:2017/01/02 11:23:39  ID:03PPbeGI.net(30)
頂点の数が n のグラフで、任意の頂点間に辺が存在するようなものを考える。

ある任意の頂点から別の任意の頂点への閉路をふくまない経路の数を求めよ。

547
デフォルトの名無しさん[]   投稿日:2017/01/02 11:26:14  ID:03PPbeGI.net(30)
頂点の数が n(≧2) のグラフで、任意の頂点間に辺が存在するようなものを考える。

ある任意の頂点から別の任意の頂点への閉路をふくまない経路の数を a_n とする。

このとき、

(n-1)! ≧ a_n ≧ (n-2)!

が成り立つことを示せ。
コメント2件

548
デフォルトの名無しさん[sage]   投稿日:2017/01/02 12:08:43  ID:GdcUHK9D.net(6)
宿題は宿題スレへ

549
デフォルトの名無しさん[sage]   投稿日:2017/01/02 12:09:56  ID:GdcUHK9D.net(6)
宿題は宿題スレへ

550
デフォルトの名無しさん[]   投稿日:2017/01/02 12:22:39  ID:03PPbeGI.net(30)
宿題ではないのです。

ある本に、頂点 s から t への最短経路を計算する方法として、
s から t へのあらゆる経路の長さを考えて、最小の経路を選ぶとすると、
経路の数が O(n!) だから現実的ではない

という話が書いてあります。

ところが、計算してみると、 O(n!) は荒い評価であって、 O((n-1)!) とできますね。

551
デフォルトの名無しさん[]   投稿日:2017/01/02 12:24:22  ID:03PPbeGI.net(30)
もっといい評価はありますでしょうか?

552
デフォルトの名無しさん[sage]   投稿日:2017/01/02 12:28:36  ID:GdcUHK9D.net(6)
判ってるなら効くな

553
デフォルトの名無しさん[]   投稿日:2017/01/02 14:08:15  ID:03PPbeGI.net(30)
ダイクストラ法の正しさの証明で分かりやすい証明を思いつきました。

発表しましょうか?

554
デフォルトの名無しさん[sage]   投稿日:2017/01/02 14:21:37  ID:w6ZCrhsc.net(2)
どうぞどうぞ

555
デフォルトの名無しさん[sage]   投稿日:2017/01/02 14:27:23  ID:yIXUnWg3.net(2)
>227
オーダーについてあんま良くわかってないんだろうけどO((n-1)!) なんて書き方はないよ
もし書いたとして、それはO(n!)と同じもの
コメント1件

556
デフォルトの名無しさん[sage]   投稿日:2017/01/02 17:55:38  ID:J77W/v0L.net(4)
>222
実無限はいろいろ破綻するから可能無限にしておいたほうがいいよ
実数の定義に∞, -∞は入らない
というか,そもそも -∞ というのがおかしい存在

つリーマン球面
コメント1件

557
デフォルトの名無しさん[]   投稿日:2017/01/02 19:04:30  ID:03PPbeGI.net(30)
なんか正しさの証明を書いてみると簡単なことなのに長くなりますね。
もし、間違っていたら指摘してください。

http://imgur.com/PDx2vmZ.jpg
http://imgur.com/DbMiSz5.jpg

ダイクストラのアルゴリズムは↑のものとします。

558
デフォルトの名無しさん[]   投稿日:2017/01/02 19:05:18  ID:03PPbeGI.net(30)
節点 s から、ある節点 i への最短経路が存在するとき、その長さを td(i) で表わすことにする。
i への経路、したがって最短経路が存在しないときには、 td(i) = ∞ とする。

ステップ(1)で選ばれる節点 v ∈ V - S に対して、 d(v) = td(v) が成り立つことを数学的帰納法により、以下で証明する。

最初にステップ(1)が実行されるときを考える。
明らかに、 d(s) = td(s) = 0 が成り立つ。

k ≧ 1 とする。
第 1 回目から第 k 回目にステップ(1)が実行されるときに、いつもステップ(1)で選ばれる節点 v ∈ V - S に対して、
d(v) = td(v) が成り立つと仮定する。

559
デフォルトの名無しさん[]   投稿日:2017/01/02 19:05:35  ID:03PPbeGI.net(30)
第 (k+1) 回目にステップ(1)が実行されるときを考える。
このとき、明らかに #S = k であり、 ∀i ∈ S に対して、 d(i) = td(i) が成り立つ。
第 (k+1) 回目にステップ(1)が実行されるときに選ばれる節点を v ∈ V - S とする。
d(v) = ∞ である場合と d(v) ≠ ∞ である場合で場合分けして考える。

(1) d(v) = ∞ である場合。
td(v) ≠ d(v) = ∞ と仮定して矛盾を導く。
td(v) ≠ ∞ であるから、節点 s から節点 v への経路 s = v_0 → v_1 → … → v_(l-1) → v_l = v が存在する。
明らかに、 td(v_0), td(v_1), …, td(v_(l-1)), td(v_l) ≠ ∞ である。
v_0 ∈ S, v_l ∈ V - S であるから、 v_i ∈ S, v_(i+1) ∈ V - S となるような i が存在する。
∀j ∈ V - S に対して、 d(j) = ∞ であるから、 d(v_(i+1)) = ∞ である。また、 v_i ∈ S であるから、
d(v_i) = td(v_i) ≠ ∞ が成り立つ。
v_i がステップ(2)で S に追加されたときのことを考えれば分かるように、 (v_i, v_(i+1)) ∈ E かつ v_(i+1) ∈ V - S であるから、
d(v_(i+1)) = ∞ ということはない。これは矛盾である。
よって、 d(v) = td(v) = ∞ が成り立つ。

560
デフォルトの名無しさん[]   投稿日:2017/01/02 19:05:51  ID:03PPbeGI.net(30)
(2) d(v) ≠ ∞ である場合。
td(v) ≠ d(v) と仮定して矛盾を導く。
ステップ(2)を考えれば明らかなように、 d(v) ≠ ∞ であるから、節点 s から節点 v への
最短経路 s = v_0 → v_1 → … → v_(l-1) → v_l = v が存在する。
よって、 td(v) ≠ ∞ である。
仮定により、 td(v) ≠ d(v) であるから、 td(v) < d(v) が成り立つ。
v_0 ∈ S, v_l ∈ V - S であるから、 v_i ∈ S, v_(i+1) ∈ V - S となるような i が存在する。
td(v_(i+1)) < d(v_(i+1)) である。なぜなら、もし、そうでないと仮定すると、 d(v_(i+1)) = td(v_(i+1)) であるが、
td(v_(i+1)) ≦ td(v) < d(v) であるから、 d(v_(i+1)) < d(v) となってしまい、ステップ(1)での v の
選ばれ方に矛盾するからである。
v_i ∈ S であるから、 d(v_i) = td(v_i) である。
v_i がステップ(2)で S に追加されたときのことを考えれば分かるように、 (v_i, v_(i+1)) ∈ E かつ v_(i+1) ∈ V - S であるから、
d(v_i) + a_(v_i v_(i+1)) ≧ d(v_(i+1)) である。
一方、明らかに、 td(v_i) + a_(v_i v_(i+1)) = td(v_(i+1)) であるから、
td(v_(i+1)) = td(v_i) + a_(v_i v_(i+1)) = d(v_i) + a_(v_i v_(i+1)) ≧ d(v_(i+1)) となるが、これは矛盾である。
よって、 td(v) = d(v) が成り立つ。

561
デフォルトの名無しさん[]   投稿日:2017/01/02 19:06:08  ID:03PPbeGI.net(30)
以上より、第 (k+1) 回目にステップ(1)が実行されるときにも、ステップ(1)で選ばれる節点 v ∈ V - S に対して、
d(v) = td(v) が成り立つ。

S に追加される節点はすべて、ステップ(1)で選ばれた 節点 v ∈ V - S であり、一度 S に追加された節点 v の d(v) はそれ以後、
変更されないから、ステップ(1)でアルゴリズムが終了したとき、 ∀i ∈ S = V に対して、 d(i) = td(i) が成り立つ。

562
デフォルトの名無しさん[]   投稿日:2017/01/02 19:26:36  ID:03PPbeGI.net(30)
>232

ある本では、

正定数 c, n0 が存在して、 n ≧ n0 のとき、 T(n) ≦ c*f(n) であるなら、
T(n) は O(f(n)) であるという

と定義されています。

T(n) = n!
f(n) = n!
g(n) = (n-1)!

とします。

このとき、明らかに、
T(n) は O(f(n)) ですが、
T(n) は O(g(n)) ではありません。
コメント1件

563
デフォルトの名無しさん[]   投稿日:2017/01/02 19:29:54  ID:03PPbeGI.net(30)
したがって、

O(f(n)) と O(g(n)) は異なります。
コメント1件

564
デフォルトの名無しさん[sage]   投稿日:2017/01/03 08:33:06  ID:3o9M4oho.net(2)
この狂人ヤバいなw
コメント1件

565
デフォルトの名無しさん[]   投稿日:2017/01/03 08:50:16  ID:hCDXc7Qp.net(20)
>224
>227

閉路を含まないから、各点を高々1回しか通らない。(端点も)

直通の経路が 1
途中でk個所を通過する経路が
 (n-2)(n-3)・・・・・(n-k-1) = (n-2)!/(n-k-2)!
だけある。ただし、k≦n-2
よって
a_n = (n-2)!{1 + 1/1! + 1/2! + … + 1/(n-2)!},

n ≧ 2 のとき、

(n-2)! ≦ (n-2)! * (1 + 1/1! + 1/2! + … + 1/(n-2)!) ≦ e * (n-2)!

したがって、

a_n = Θ((n-2)!)

である。
コメント1件

566
デフォルトの名無しさん[]   投稿日:2017/01/03 08:52:54  ID:hCDXc7Qp.net(20)
>234-238

のダイクストラのアルゴリズムの正しさの証明に間違いはないという
ことでOKですか?

567
デフォルトの名無しさん[]   投稿日:2017/01/03 11:39:58  ID:hCDXc7Qp.net(20)
Erik DemaineはMITの歴史上最年少で教授になったという天才だそうですね。

今、そのErik Demaineの2005年のダイクストラのアルゴリズムについての講義を見ています。

見終わったら、講義の要約について書きます。

568
デフォルトの名無しさん[]   投稿日:2017/01/03 13:47:58  ID:hCDXc7Qp.net(20)
ダイクストラのアルゴリズム:

01: d[s] ← 0
02: for each v ∈ V - {s}:
03: ■■d[v] ← ∞
04: S ← Φ
05: Q ← V
06: while Q ≠ Φ:
07: ■■u ← ExtractMin(Q)
08: S ← S ∪ {u}
09: for each v ∈ Adj[u]:
10: ■■if d[v] > d[u] + w(u, v):
11: ■■■■d[v] ← d[u] + w(u, v)

569
デフォルトの名無しさん[]   投稿日:2017/01/03 13:49:29  ID:hCDXc7Qp.net(20)
Correctness I:

d[v] の初期化の直後、およびLine 11の直後において、
すべての v ∈ V に対して、 d[v] ≧ δ(s, v) が
成り立つ。

証明:
d[v] の初期化の直後には、
d[s] = 0 かつすべての v ∈ S - {v} に対して、d[v] = ∞
が成り立っている。
δ(s, s) = 0 かつすべての v ∈ S に対して、 δ(s, v) ≦ ∞
であるから、d[v] の初期化の直後には、
すべての v ∈ V に対して、 d[v] ≧ δ(s, v) が確かに
成り立っている。
コメント1件

570
デフォルトの名無しさん[]   投稿日:2017/01/03 13:49:56  ID:hCDXc7Qp.net(20)
Line 11の直後において、すべての v ∈ V に対して、
d[v] ≧ δ(s, v) が成り立つことを背理法により示す。

Line 11の直後において、 d[v] ≧ δ(s, v) が
成り立たないような v ∈ V が存在するとする。
v をそのような点の中で、最初の点とする。

d[v] < δ(s, v)

d[v] < δ(s, v) ≦ ∞ であるから、
ダイクストラのアルゴリズムのLine 11は少なくとも1回は
実行されているはずである。そのような最後の実行を

d[v] ← d[u] + w(u, v)

とすると、

d[u] + w(u, v) = d[v] < δ(s, v)

が成り立つ。

一方、 d[u] ≧ δ(s, u) であるから、

d[u] + w(u, v) ≧ δ(s, u) + w(u, v)
≧ δ(s, u) + δ(u, v)
≧ δ(s, v)

が成り立つが、これは矛盾である。

571
デフォルトの名無しさん[]   投稿日:2017/01/03 13:51:21  ID:hCDXc7Qp.net(20)
Correctness Lemma:
s → … → u → v を s から v への一つの最短路とする。
d[u] = δ(s, u) であるとする。

このとき、Line10-11を実行すると、

d[v] = δ(s, v)

が成り立つ。

証明:
δ(s, v) = w(s → … → u) + w(u, v)
= δ(s, u) + w(u, v)
Correctness Iより、 d[v] ≧ δ(s, v)

(1)Line10-11の実行前に、 d[v] = δ(s, v) である場合。
Line10-11の実行後も d[v] = δ(s, v) である。

(2)Line10-11の実行前に、 d[v] > δ(s, v) である場合。
d[v] > δ(s, v) = δ(s, u) + w(u, v) = d[u] + w(u, v)
Line10-11の実行後は、 d[v] = d[u] + w(u, v) = δ(s, v)
となる。

572
デフォルトの名無しさん[]   投稿日:2017/01/03 13:52:06  ID:hCDXc7Qp.net(20)
Correctness II:
ダイクストラのアルゴリズムが終了したとき、
すべての v ∈ V に対して、 d[v] = δ(s, v) が成り立つ。

証明:
d[v] は v が S に追加された後は、不変である。
よって、 v が S に追加されたときに、
d[v] = δ(s, v) であることを示せばよい。

背理法で示す。
v が S に追加されたときに、 d[v] ≠ δ(s, v) であるような
v ∈ V が存在すると仮定する。
u をそのような点の中で、最初に S に追加された点とする:
d[u] ≠ δ(s, u)
Correctness Iより、
d[u] > δ(s, u)

573
デフォルトの名無しさん[]   投稿日:2017/01/03 13:52:49  ID:hCDXc7Qp.net(20)
今、 u が S に追加される直前の状況を考えることにする。
u はまだ S に追加されていないから、 u ∈ Q である。
p を s から u への一つの最短路とすると、 w(p) = δ(s, u) である。
s ∈ S, u ∈ Q であるから、 p 上の辺 (x, y) で x ∈ S, y ∈ Q となる
ような辺が存在する。そのような辺の一つを (x, y) とする。
すると、 p は以下のようになる。
p : s → … → x → y → … → u
x ∈ S であるから、 u に関する仮定より、
d[x] = δ(s, x) が成り立つ。また、明らかに、
s → … → x → y は s から y への一つの最短路であるから、
Correctness Lemmaより、 d[y] = δ(s, y) が成り立つ。
明らかに、 δ(s, y) ≦ δ(s, u) であるから、
d[y] ≦ δ(s, y)
また、Line07を見れば分かるように、
d[u] ≦ d[y] である。
よって、

d[u] ≦ δ(s, u) となるが、これは矛盾である。
コメント2件

574
デフォルトの名無しさん[]   投稿日:2017/01/03 13:55:46  ID:hCDXc7Qp.net(20)
Lec 17 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005
https://youtu.be/xhG2DyCX3uA

575
デフォルトの名無しさん[]   投稿日:2017/01/05 09:16:14  ID:4i7P3+nF.net(18)
アルゴリズムイントロダクションって自明なことをわざわざループ不変量を使ったりして、
証明していて、うざすぎますね。

576
デフォルトの名無しさん[]   投稿日:2017/01/05 09:16:52  ID:4i7P3+nF.net(18)
通常の数学の本なら自明で済ませるようなことをわざわざ証明している。

577
デフォルトの名無しさん[sage]   投稿日:2017/01/05 09:57:50  ID:OZq8Y/OW.net(6)
このバカ、以前も全く同じこと言って暴れたな。

578
デフォルトの名無しさん[sage]   投稿日:2017/01/05 10:02:39  ID:OZq8Y/OW.net(6)
http://hissi.org/read.php/tech/20160422/cGVtVmVaYUg.html
http://hissi.org/read.php/tech/20160612/YkttemlBQ3Y.html
こいつだ。

> って当たり前のことをループ不変とかを使って説明しているよね。はっきりいってくどい。
> ループ不変式とかいうのが出てくるけど、当たり前のことを形式的に証明しているだけで、つまらなすぎる。
> 馬鹿の一つ覚えみたいにループ不変式をつかって証明しようとしている。

これぞ「馬鹿の一つ覚え」である。
コメント1件

579
デフォルトの名無しさん[sage]   投稿日:2017/01/05 10:44:28  ID:W/+CAQrH.net(4)
数学とコンピュータ科学の区別がつかない厨房だろう

580
デフォルトの名無しさん[]   投稿日:2017/01/05 11:01:45  ID:4i7P3+nF.net(18)
クヌースの本なんかだと妙なくどさはない。

アルゴリズムイントロダクションはメリハリが全くない。
Trivialなこともそうでないことも平等に扱いすぎている。

要するに本を書くセンスがない。

581
デフォルトの名無しさん[]   投稿日:2017/01/05 11:02:52  ID:4i7P3+nF.net(18)
セジウィックとウエインの本のほうがずっとよい。

582
デフォルトの名無しさん[]   投稿日:2017/01/05 11:07:44  ID:4i7P3+nF.net(18)
日本語の本について言及しておく。
例えば、評判のよい茨木俊秀の本。

こんな薄いスカスカの本をよくも恥ずかしげもなく出版するものだとあきれる。
コメント1件

583
デフォルトの名無しさん[]   投稿日:2017/01/05 11:19:31  ID:4i7P3+nF.net(18)
アルゴリズムイントロダクションの悪口を書いたがいいところもある。

例えば、第29章線形計画法。

線形計画法に対しては、Trivialなこともそうでないことも平等に扱うという方針が
向いているように思う。

ただ、アルゴリズムの本に線形計画法を入れる理由が分からない。

整数論的アルゴリズムの章はあまりにも簡単すぎる。
高木貞治の本でも読んだ方がよい。
コメント1件

584
デフォルトの名無しさん[]   投稿日:2017/01/05 11:28:06  ID:4i7P3+nF.net(18)
結論として、ベストな本はクヌースが予定しているTAOCPの要約本ということになる。

585
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:29:47  ID:W/+CAQrH.net(4)
結論として4i7P3+nFはNG行き

586
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:33:33  ID:2uA+A+xC.net(4)
>253
自明ほど危ういものは無いんだが

587
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:40:35  ID:OZq8Y/OW.net(6)
例によって ID:4i7P3+nF が発狂しててワロタ

588
デフォルトの名無しさん[]   投稿日:2017/01/05 11:44:36  ID:4i7P3+nF.net(18)
>263

では、なぜ、一般に、コンピュータ科学者よりも頭が良いとされる数学者が
自明で済ませることが多いのでしょうか?

もし危ういのなら頭のよい数学者は自明などと書かないはずです。

589
デフォルトの名無しさん[sage]   投稿日:2017/01/05 11:52:58  ID:r7KPx/TL.net(2)
そんな多くねえよちゃんと論文読め

590
デフォルトの名無しさん[sage]   投稿日:2017/01/05 12:06:11  ID:2uA+A+xC.net(4)
自明連発する方が馬鹿なのか

591
デフォルトの名無しさん[sage]   投稿日:2017/01/05 13:09:24  ID:c6xYhHVb.net(4)
>265
馬鹿丸出し

592
デフォルトの名無しさん[sage]   投稿日:2017/01/05 13:18:34  ID:c6xYhHVb.net(4)
>一般に、コンピュータ科学者よりも頭が良いとされる数学者が
根拠は?
>自明で済ませることが多いのでしょうか?
数学のコンテキストの話

そもそも証明の意味もコンピュータ科学と数学では違うだろ

593
デフォルトの名無しさん[sage]   投稿日:2017/01/05 14:56:52  ID:jagWiFjG.net(2)
なんでバカって本質に関係ないところでギャーギャー騒ぐの?

594
デフォルトの名無しさん[sage]   投稿日:2017/01/05 14:58:54  ID:YjTG1plI.net(2)
うむ

595
デフォルトの名無しさん[]   投稿日:2017/01/05 19:46:02  ID:4i7P3+nF.net(18)
アルゴリズムイントロダクションについて、数学が出来る人向けの本だという人がいる。
そして、数学ができない人はセジウィック&ウエインの本を読めという人がいる。

アルゴリズムイントロダクションが数学的な本だとは全く思わない。数学的な内容については
主に結果だけを書いている。

ただネチネチとアルゴリズムの正しさの証明が書かれているだけのこと。

クヌースの本のように、楽しい本ではない。

596
デフォルトの名無しさん[sage]   投稿日:2017/01/05 20:37:39  ID:UiiKd7HR.net(2)

597
デフォルトの名無しさん[sage]   投稿日:2017/01/05 22:15:16  ID:WPj32BYO.net(2)
書評したければ別のところでやれ

598
デフォルトの名無しさん[]   投稿日:2017/01/06 17:19:30  ID:TSHa+AxL.net(16)
再帰の除去についてやり方が詳しく書いてある本を教えてください。

599
デフォルトの名無しさん[]   投稿日:2017/01/06 17:43:03  ID:TSHa+AxL.net(16)
プログラミングコンテストチャレンジブック第2版のp.35
Lake Counting(POJ No.2386)

の解答として、以下のプログラムはあっていますか?

void dfs(i, j, n){
if(i < 0 || i >= N || j < 0 || j >= M){
return;
}
if(field[i][j] != 'W'){
return;
}
if(visit[i][j] == true){
return;
}
visit[i][j] = true;
dfs(i-1, j-1, n+1);
dfs(i-1, j, n+1);
dfs(i-1, j+1, n+1);
dfs(i, j-1, n+1);
dfs(i, j+1, n+1);
dfs(i+1, j-1, n+1);
dfs(i+1, j, n+1);
dfs(i+1, j+1, n+1);

if(n == 0){
count++;
}
return;
}

600
デフォルトの名無しさん[sage]   投稿日:2017/01/06 18:06:18  ID:XtKi9eaG.net(2)

601
デフォルトの名無しさん[]   投稿日:2017/01/06 18:36:23  ID:TSHa+AxL.net(16)
Wrong Answerになっちゃうんだけど。

602
デフォルトの名無しさん[]   投稿日:2017/01/06 18:38:07  ID:TSHa+AxL.net(16)
例題については正しい答えが計算されるんだけど。

603
デフォルトの名無しさん[sage]   投稿日:2017/01/06 18:43:00  ID:LxnclcVs.net(2)
よかったね

604
デフォルトの名無しさん[]   投稿日:2017/01/06 20:15:02  ID:TSHa+AxL.net(16)
>277

ソースレベルで再帰を除去する方法が知りたいんですが。
コメント5件

605
デフォルトの名無しさん[]   投稿日:2017/01/06 20:22:33  ID:TSHa+AxL.net(16)
秋葉らのプログラムでもWrong Answerになっていまします。

入出力の問題のようですね。

606
デフォルトの名無しさん[]   投稿日:2017/01/06 20:27:59  ID:TSHa+AxL.net(16)
入出力の問題ってやっかいですね。
出力がどうなっているかとかPOJでは調べられないんですか?

607
デフォルトの名無しさん[]   投稿日:2017/01/06 20:41:27  ID:TSHa+AxL.net(16)
なんなんだろう?

scanf,printfを使っていたらダメだったのが、cinとcoutにしたらOKになった。

608
デフォルトの名無しさん[]   投稿日:2017/01/08 12:26:37  ID:E98VLsZL.net(26)
F(p, n, r) の計算量を教えてください。

n: 整数
p, r: 整数配列(インデックス0からn-1)

F(p, n, r):
■■if r[n] ≧ 0:
■■■■return r[n]
■■if n == 0:
■■■■q = 0
■■else:
■■■■q = -∞
■■■■for i = 1 to n:
■■■■■■q = max(q, p[i] + F(p, n-i, r))
■■r[n] = q
■■return q

609
デフォルトの名無しさん[sage]   投稿日:2017/01/08 12:31:27  ID:0mVP2hZ6.net(4)
O(n^2)

610
デフォルトの名無しさん[sage]   投稿日:2017/01/08 12:32:34  ID:0mVP2hZ6.net(4)

611
デフォルトの名無しさん[]   投稿日:2017/01/08 13:51:15  ID:E98VLsZL.net(26)
>286-287

ありがとうございます。

でも解説されていませんね。

612
デフォルトの名無しさん[]   投稿日:2017/01/08 13:57:19  ID:E98VLsZL.net(26)
どうやって計算量を見積もるんですか?

何を単位にするんですか?

613
デフォルトの名無しさん[]   投稿日:2017/01/08 14:06:13  ID:E98VLsZL.net(26)
T(n)
=
c1 + c2 * n + T(n-1) + … + T(0)
=
c1 + c2 * n + T(n-1) + c3*(n-1)

と解けばいいんですかね?

614
デフォルトの名無しさん[]   投稿日:2017/01/08 14:07:36  ID:E98VLsZL.net(26)
T(n) = c1 + c2*n + T(n-1)
T(0) = c3

この漸化式の解を求めればいいんですかね?
コメント1件

615
デフォルトの名無しさん[]   投稿日:2017/01/08 14:12:15  ID:E98VLsZL.net(26)
T(n)
=
[T(n) - T(n-1)] + [T(n-2) - T(n-3)] + … + [T(1) - T(0)] + T(0)
=
[c1 + c2*n] + [c1 + c2*(n-1)] + … + [c1 + c2*1] + c3
=
c1*n + c2*(1/2)*n*(n+1) + c3
=
Θ(n^2)

おお、あってるっぽいですね。

616
デフォルトの名無しさん[]   投稿日:2017/01/08 14:20:56  ID:E98VLsZL.net(26)
>290-292
は我ながら明解な解答ですが、

教科書では、以下のように導出しています。
この導出がよく分からないのですが。

「以前に解かれている部分問題を解くための再帰は直ちに戻るので、Fは
各部分問題をただ1度だけ解く。この手続きはサイズが0,1,....,nの部分問題
を解く。サイズがnの部分問題を解くために、for文がn回繰り返される。したがって、
Fの再帰呼び出し全体における、このfor文の繰り返し回数は等差数列を形成し、
総繰り返し回数はΘ(n^2)となる。」

617
デフォルトの名無しさん[]   投稿日:2017/01/08 14:26:56  ID:E98VLsZL.net(26)
あーあ、分かりました。

T(n)
=
c1 + c2 * n + T(n-1) + … + T(0)
=
c1 + c2 * n + T(n-1) + c3*(n-1)

このあたりのことを言っているんですね。

618
デフォルトの名無しさん[sage]   投稿日:2017/01/08 14:27:53  ID:rSxBm0q1.net(2)
馬鹿には無理

619
デフォルトの名無しさん[]   投稿日:2017/01/08 14:28:32  ID:E98VLsZL.net(26)
>289

for文の繰り返し回数=計算量ですね。

620
デフォルトの名無しさん[]   投稿日:2017/01/08 14:29:42  ID:E98VLsZL.net(26)
結局自分ですべて解決してしまいました。

621
デフォルトの名無しさん[sage]   投稿日:2017/01/08 17:12:11  ID:8OGZNgRf.net(2)
よくやった
褒美として自分専用のスレを立てる権利をやろう

622
デフォルトの名無しさん[sage]   投稿日:2017/01/08 18:45:26  ID:KkEYpXLY.net(2)
命名ID:E98VLsZは俺様

623
デフォルトの名無しさん[]   投稿日:2017/01/08 20:55:21  ID:E98VLsZL.net(26)
プログラミングコンテストチャレンジブック

p.45 Best Cow Lineっていう問題の解答のプログラムって無駄がありますよね。

この本を難しいという人がいますが、そんなに難しいですかね?

624
デフォルトの名無しさん[]   投稿日:2017/01/08 22:46:42  ID:E98VLsZL.net(26)
プログラミングコンテストチャレンジブック
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
最強最速アルゴリズマー養成講座

この3冊に共通していることですが、日本語が下手ですよね。

一番ひどいのが

最強最速アルゴリズマー養成講座

ですね。

625
デフォルトの名無しさん[]   投稿日:2017/01/08 22:50:51  ID:E98VLsZL.net(26)
一番面白いのは、

プログラミングコンテストチャレンジブック

だと思いますけど、例えば、貪欲法でなぜうまくいくのかの証明が書いてないですね。

626
デフォルトの名無しさん[sage]   投稿日:2017/01/08 22:51:13  ID:Qw43e7Zm.net(2)
ここはプログラミング問題集書評のスレなの?

627
デフォルトの名無しさん[]   投稿日:2017/01/09 06:08:00  ID:JOAqSyBk.net(2)
>301
うむ
日本語下手なのはもちろん英語も下手みたいだな

628
デフォルトの名無しさん[sage]   投稿日:2017/01/09 06:09:36  ID:cSodeH17.net(2)
頭の使い方が下手というかそもそも頭が不自由なんだろう

629
デフォルトの名無しさん[]   投稿日:2017/01/09 10:59:50  ID:TqLncjlX.net(12)
アルゴリズムイントロダクションの練習問題15.1-3の解答って以下であっていますか?

BOTTOM-UP-CUT-ROD(p, c, n)
1 r[0..n] を新しい配列とする
2 r[0] = 0
3 for j = 1 to n
4 ■■q = -∞
5 ■■for i = 1 to j-1
6 ■■■■q = maxx(q, p[i] + r[j-i] - c)
7 ■■q = max(q, p[j])
8 ■■r[j] = q
9 return r[n]

630
デフォルトの名無しさん[]   投稿日:2017/01/09 11:02:45  ID:TqLncjlX.net(12)
15.1-2

反例

p[1] = 1
p[2] = 5
p[3] = 7

631
デフォルトの名無しさん[]   投稿日:2017/01/09 13:21:16  ID:TqLncjlX.net(12)
F_0 = 0
F_1 = 1
F_i = F_(i-1) + F_(i-2) (i≧2)

F_n を O(n) 時間で計算する動的計画アルゴリズムを設計せよ。
対応する部分問題グラフを描け。
このグラフにはいくつの頂点と辺が存在するか?


↑はアルゴリズムイントロダクションの練習問題15.1-5なんですけど、
なんか簡単すぎるようにみえるんですけど、落とし穴があるんですかね?

なんでΘ(n)じゃなくてO(n)と書いてあるんですかね?

632
デフォルトの名無しさん[]   投稿日:2017/01/09 13:34:48  ID:TqLncjlX.net(12)
配列を使わないとDPとは言えないですか?
配列いらないですよね。
でもi = 0〜nに対して、F[i]が求まるという意味はありますね。


F[0] = 0
F[1] = 1
for i = 2 to n
■■F[n] = F[n-1] + F[n-2]

明らかにΘ(n)ですよね。

部分問題グラフは以下ですよね:

http://imgur.com/WUQMG8R.jpg

#V = n + 1
#E = 2*(n - 1)

ですね。

633
デフォルトの名無しさん[]   投稿日:2017/01/09 13:37:23  ID:TqLncjlX.net(12)
あ、ひっかけがありましたね。
訂正します:

n > 0 のとき、

#V = n + 1
#E = 2*(n - 1)

n = 0 のとき

#V = n + 1
#E = 0

ですね。

634
デフォルトの名無しさん[]   投稿日:2017/01/09 15:27:31  ID:TqLncjlX.net(12)
アルゴリズムイントロダクションに、以下の事実を1955年にRobbinsが発見したと書いてあります。

--------------------------------------------
すべての n ≧ 1 に対して

n! = sqrt(2*π*n) * (n/e)^n * exp(α_n)

と書ける。

ただし、 1/(12*n+1) < α_n < 1/(12*n)
--------------------------------------------

本当にこんな比較的簡単にみえる結果が1955年という比較的最近になって発見された
のでしょうか?

635
デフォルトの名無しさん[]   投稿日:2017/01/09 15:37:47  ID:4OeNzyzM.net(2)
>308
フィボナッチだろ
√5が出て来る公式
O(1)になるかも試練が

636
デフォルトの名無しさん[sage]   投稿日:2017/01/09 15:46:27  ID:FSSb8O2Z.net(2)
>311
      r ‐、
      | ○ |         r‐‐、
     _,;ト - イ、      ∧l☆│∧  良い子の諸君!
    (⌒`    ⌒ヽ   /,、,,ト.-イ/,、 l  
    |ヽ   ~~⌒γ ⌒ ) r'⌒ `!´ `⌒) よく頭のおかしい数学者気取りのバカが
   │ ヽー―'^ー-'  ( ⌒γ ⌒~~ / 「誰も気付かなかった事を発見したことを発表」とほざくが
   │  〉    |│  |`ー^ー― r' | 大抵それは「先人が思いついたけどあえて発表しなかった」ことだ
   │ /───| |  |/ |  l  ト、 |  王道が何故面白いか理解できない人間に面白い話は
   |  irー-、 ー ,} |    /     i 作れないぞ!
   | /   `X´ ヽ    /   入  |

637
デフォルトの名無しさん[]   投稿日:2017/01/10 20:16:10  ID:Zd0v4023.net(2)
アルゴリズムイントロダクションが難しいという人がいますけど、
この本は馬鹿丁寧に書かれていますよね。

いわゆる「書きすぎ」ですね。

「書きすぎ」れば分かりやすくなると思い込んでいますね、著者らは。

638
デフォルトの名無しさん[sage]   投稿日:2017/01/10 20:19:42  ID:kxFYGz06.net(2)
http://hissi.org/read.php/tech/20160614/U2lCYS9zNTM.html

マジ基地だな。壊れたレコードかよ。

639
デフォルトの名無しさん[sage]   投稿日:2017/01/13 21:58:42  ID:wiy2qrIv.net(2)
プログラミング言語のパーサーってどういう仕組みで動いてるんですか?
文字列をトークンの配列に分ける
特定のパターンにマッチするトークンの部分集合をひとまとめにして新しいトークンに置き換える
再帰的に同じ事を繰り返す
こんな感じ?

640
デフォルトの名無しさん[sage]   投稿日:2017/01/13 22:37:46  ID:+ExxsU2F.net(2)

641
デフォルトの名無しさん[sage]   投稿日:2017/01/14 00:10:28  ID:H4kTcvBH.net(2)
>317
これ考えた奴は天才だな

642
デフォルトの名無しさん[sage]   投稿日:2017/01/16 17:57:37  ID:YH2Bx58z.net(2)
Lisperか
BNF

643
デフォルトの名無しさん[sage]   投稿日:2017/01/19 09:40:05  ID:uhfgjGGl.net(2)

644
デフォルトの名無しさん[sage]   投稿日:2017/05/14 13:16:07
類似スレ検索とかのアルゴリズムって何がいいのかな?
編集距離とか数字部分のマスキングくらいしか浮かばない
形態素解析して要素の一致率とかもあるみたいだけど、スレタイみたいな短い文字じゃ弱そう

645
デフォルトの名無しさん[sage]   投稿日:2017/05/14 13:20:48
むしろ短くて重要な単語が多いスレタイこそ一致率うまく働きそうか
毎回評価してたら検索速度悪そうだけど

646
デフォルトの名無しさん[sage]   投稿日:2017/05/14 13:56:17
Baka ha sinanakya
Naoranai
Fucky ou

647
[]   投稿日:0000/00/00 00:00:00

648
デフォルトの名無しさん[]   投稿日:2017/05/26 14:08:00  ID:fOPo0M5r.net(4)
アルゴリズムイントロダクション

当たり前のことを定理などとよんで回りくどく証明していますね。

なんなんですか?この本。

例えば、p.506定理22.9とか。

649
デフォルトの名無しさん[]   投稿日:2017/05/26 19:39:06  ID:GnitEmTF.net
当たり前のことを2chで指摘して回りくどくdisっていますね。
なんなんですか?あなた。
例えば、 >324 とか。

650
デフォルトの名無しさん[sage]   投稿日:2017/05/26 21:10:54  ID:ovKX6RUR.net(2)
>324
当たり前が何故当たり前なのかを知るのは割と重要だが。

651
デフォルトの名無しさん[]   投稿日:2017/05/26 22:50:21  ID:fOPo0M5r.net(4)
>324

しかも「証明」が長い。当たり前のことを長々と書いている。
その「証明」自体も意外性ゼロ。

652
デフォルトの名無しさん[]   投稿日:2017/05/26 22:52:14  ID:fOPo0M5r.net(4)
しかも徹底していない。

ある命題は明らかで済ませている。
その一方である命題には長々と「証明」をつけている。

基準がさっぱりわからない。

653
デフォルトの名無しさん[sage]   投稿日:2017/05/26 22:52:58  ID:ovKX6RUR.net(2)
初級アルゴリズム本持ち出して何なんですか言われてもねぇ。。。
物足りなかったら上のクラスの本買えば?

654
デフォルトの名無しさん[]   投稿日:2017/05/26 23:04:15  ID:fOPo0M5r.net(4)
とにかくしつこい本。

この著者らの感性は、おかしいと思う。

丁寧というよりしつこい。

クヌースの本は丁寧という感じ。

結局、教科書の書き手として優れていない。

655
デフォルトの名無しさん[]   投稿日:2017/05/27 03:04:18  ID:V3ffhZkY.net
きっとアスペなんだろう

656
デフォルトの名無しさん[sage]   投稿日:2017/05/27 03:30:20  ID:6GQ16ypm.net
アルゴリズムでは、セジウィックが有名。他に、

入門 データ構造とアルゴリズム、2013、オライリー
Narasimha Karumanchi(インド人) 著

プログラミング・コンテスト・チャレンジブック、第2版、2012

657
デフォルトの名無しさん[sage]   投稿日:2017/05/27 05:56:26  ID:0xIYYFUk.net

658
デフォルトの名無しさん[]   投稿日:2017/05/27 08:08:34  ID:tcRpjIho.net(3)
浅野孝夫の新しく出た2冊の本はどうですか?

659
デフォルトの名無しさん[]   投稿日:2017/05/27 11:29:04  ID:tcRpjIho.net(3)
アルゴリズムイントロダクションは訳もひどいね。

意味不明だと思って原著を調べるといつも誤訳。

今読んでいるところにも誤訳を見つけた。

本当に理解して訳しているか?

660
デフォルトの名無しさん[]   投稿日:2017/05/27 11:54:19  ID:tcRpjIho.net(3)
Let v be the first vertex to be discovered in c, and let (u, v) be the preceding edge in c.

の訳が、

c の中で最初に発見される頂点を v, c において v に向かう辺を (u, v) とする。
(したがって、 u は c における v の先行点である。)

日本語としてまずおかしいし、 u は v の先行点では、もちろんない。

661
デフォルトの名無しさん[sage]   投稿日:2017/05/27 13:19:03  ID:olQh0zw8.net
>333
徳永乙

662
デフォルトの名無しさん[sage]   投稿日:2017/05/27 14:45:49  ID:m5ivKvT+.net
本ばかり読んでコードも書かない典型だな

663
デフォルトの名無しさん[sage]   投稿日:2017/05/31 19:10:09  ID:uNlt1YRD.net(2)
今扱ってるライブラリのコンストラクタとか生成系のメソッドとかの引数が多すぎるんで何とかしたいんだがビルダーパターンぐらいしかないのかな
今は引数用の構造体を用意して成のメソッドの呼び出し時に構造体を参照させるようにしてるんだが、お前らどう思う?

664
デフォルトの名無しさん[sage]   投稿日:2017/05/31 19:13:07  ID:uNlt1YRD.net(2)
>339
s/成のメソッド/生成のメソッド

665
デフォルトの名無しさん[sage]   投稿日:2017/05/31 22:35:13  ID:NSe5u++m.net
クラスを作りまくって引数を減らすんだよ

666
デフォルトの名無しさん[sage]   投稿日:2017/06/01 07:33:57  ID:9lL7NugS.net
まあ、ファクトリかビルダだろうな

引数をオーバーライドメソッドでなるべく少なくなる工夫しつつ

667
デフォルトの名無しさん[]   投稿日:2017/06/01 07:40:31  ID:PJoLYMb9.net
グラフ理論のアルゴリズムを実装したときに、正しいかどうか
チェックするのって、グラフを用意しなきゃならなくて大変だけど
サンプルのグラフってどこかに公開されていないの?

668
デフォルトの名無しさん[sage]   投稿日:2017/06/01 08:27:11  ID:RM67mdjD.net
>341
>342
やっぱそれぐらいしかないか
レスさんくす

669
デフォルトの名無しさん[sage]   投稿日:2017/06/01 09:01:58  ID:dZ2VO+v4.net
>343

Knuth先生のThe Stanford Graphbase

http://www-cs-staff.stanford.edu/~knuth/sgb.html

670
デフォルトの名無しさん[sage]   投稿日:2017/06/01 09:26:44  ID:bUIwnMhK.net
ダイクストラなどのグラフは、Python

671
デフォルトの名無しさん[]   投稿日:2017/06/05 16:05:46  ID:gPC56aZq.net(4)
2つのグラフが同型かどうか判定するアルゴリズムを教えてください。

672
デフォルトの名無しさん[sage]   投稿日:2017/06/05 18:35:40  ID:Vm0ObO74.net
ちょっと手間を減らすなら、次数でソートしたりゴニョゴニョできるけど、NPだからあとは力技

673
デフォルトの名無しさん[sage]   投稿日:2017/06/05 19:30:33  ID:SUt02FhH.net
最終的に力業になることが分かってる問題って悲しいよね。

674
デフォルトの名無しさん[sage]   投稿日:2017/06/05 20:28:56  ID:gPC56aZq.net(4)
>348-349

ありがとうございました。

基本的で重要な問題なのにアルゴリズムの本で見かけなかったのは効率的な
アルゴリズムが存在しないからだったんですね。

効率的なアルゴリズムが存在しない場合でも、小さい問題は解けるわけですから、
それなりの工夫でもいいから、教科書に載せてほしいです。

675
デフォルトの名無しさん[sage]   投稿日:2017/06/05 20:36:06  ID:gPC56aZq.net(4)
>348-349

グラフが同型かどうかくらいならプログラムを誰でも作れると思います。

効率的なアルゴリズムが存在しない問題の場合、教科書にはアルゴリズムが
載っていないことが多いと思います。自分で力任せのプログラムを書ける場合
はいいですが、力不足で力任せのプログラムすら書けない場合って困りますね。

676
デフォルトの名無しさん[sage]   投稿日:2017/06/05 21:01:13  ID:sad0uPoZ.net
>347
networkXっていうPythonのグラフアルゴリズムのライブラリに、グラフ同型判定の関数があるよ。
is_isomorphic()
ソースコードも見れるから、実装の参考にしては。
VF2アルゴリズムというのを使っているらしい。どういうのかは、知らない。。

677
デフォルトの名無しさん[sage]   投稿日:2017/06/05 21:17:56  ID:gPC56aZq.net(4)
>352

今、グラフ理論の本を読んでいるのですが、その演習問題の
答えを計算機で計算したいと思いプログラムを作っています。

手計算でできる問題なので計算量とかは無問題です。

情報、ありがとうございました。

678
デフォルトの名無しさん[sage]   投稿日:2017/06/08 13:28:45  ID:oPuedIYN.net
>352
thx

679
デフォルトの名無しさん[]   投稿日:2017/06/10 01:09:12  ID:yRjB/26o.net
セジウィックのアルゴリズムCはコルメン他の本とは対極にあるような本だね。
どっちもどっち。

680
デフォルトの名無しさん[]   投稿日:2017/06/10 22:49:54  ID:bkNNwNFI.net
セジウィックのアルゴリズムCは言葉足らず。

681
デフォルトの名無しさん[]   投稿日:2017/06/11 08:24:40  ID:7PvmoOJK.net(2)
セジウィックのアルゴリズムCは定義がダメダメ。

例:
連結グラフの極大木とは、すべての頂点を含む部分グラフであって、
木である限りできるだけ多くの辺をもつものをいう。

この定義だと連結グラフに極大木が常に存在するというのが定理になってしまう。
が、証明せずに、この事実を以下で使っている。

682
デフォルトの名無しさん[]   投稿日:2017/06/11 11:00:58  ID:7PvmoOJK.net(2)
セジウィックのアルゴリズムCは、訳も最低。

683
デフォルトの名無しさん[]   投稿日:2017/06/16 18:04:24  ID:ixzzoI9b.net(3)
浅野孝夫著『アルゴリズムの基礎とデータ構造 数理とCプログラム』(近代科学社)

ポインタを使えるCでアルゴリズムを実装しておきながらポインタを使わず、
配列を使ってポインタの機能を実現するという面倒なことをしています。

著者は何を考えているのでしょうか?

684
デフォルトの名無しさん[]   投稿日:2017/06/16 18:08:47  ID:1eQLQexT.net(2)
javaの逆ポートだろう

685
デフォルトの名無しさん[]   投稿日:2017/06/16 18:30:17  ID:ixzzoI9b.net(3)
浅野孝夫著『アルゴリズムの基礎とデータ構造 数理とCプログラム』(近代科学社)

の公式ページからソースコードをダウンロードできます。

たくさんのソースコードがあるのですが、こういうのを実行するときってみなさんは
どうしていますか?

Visual Studio を使っているのですが、一つのソースファイルに対して、いちいち
プロジェクトを作っていると面倒なんですが、どうすればいいですか?

686
デフォルトの名無しさん[]   投稿日:2017/06/16 18:31:46  ID:ixzzoI9b.net(3)
コマンドプロンプトからコマンドを実行してコンパイルをしたりする原始的なやり方
は避けたいです。

687
デフォルトの名無しさん[]   投稿日:2017/06/16 18:47:18  ID:1eQLQexT.net(2)
なんだ
ステマか

688
デフォルトの名無しさん[sage]   投稿日:2017/06/16 20:42:10  ID:1imKhLwB.net
原始的なやり方×
基本的なやり方〇

689
デフォルトの名無しさん[sage]   投稿日:2017/06/16 20:54:00  ID:RYT773NB.net
探せば学習用のC言語インタプリタとかあるんじゃない

690
デフォルトの名無しさん[sage]   投稿日:2017/06/16 21:27:28  ID:vP51FB3m.net
ちょっとサンプルコードを走らせるかって程度なら
Online IDEとか使えばよいのに

691
デフォルトの名無しさん[sage]   投稿日:2017/06/16 21:42:24  ID:SNTjPZEm.net
そもそも何でファイルごとにわざわざプロジェクト作るような原始的なことやってるの

692
デフォルトの名無しさん[sage]   投稿日:2017/06/16 22:44:29  ID:e6Uo8nQP.net
mainの数だけプロジェクトが必要だから?

693
デフォルトの名無しさん[sage]   投稿日:2017/06/17 15:06:03  ID:SdcHR0BJ.net
プロセス増えるだけだからプロジェクトは増やさなくてもいいんじゃね

694
デフォルトの名無しさん[]   投稿日:2017/06/17 18:14:18  ID:DtePX3I4.net(5)
アルゴリズムとデータ構造の本のソースコードを見ると、よくグローバル変数を
多用していて非常に分かりにくいことが多いです。

グローバル変数を使うのは良くないというのをよく目にしますが、なぜ、
コンピュータサイエンスのプロであるはずのアルゴリズムとデータ構造の本の
著者がそんなプログラムを書くのでしょうか?

695
デフォルトの名無しさん[]   投稿日:2017/06/17 18:18:02  ID:DtePX3I4.net(5)
例えば、

浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

という本のソースプログラムが分かりにくいです。

拡張子が「.h」のファイルにグローバル変数を定義して使いまわしています。

さらに、その拡張子が「.h」のファイル内で「emaxsize」というのがありますが
それが何なのかが書いてありません。

その拡張子が「.h」のファイルを利用するファイル内で、「emaxsize」を設定しています。

こういうのはありなんでしょうか?

あちこちいろいろなファイルを見ないと、全体が分かりません。

696
デフォルトの名無しさん[sage]   投稿日:2017/06/17 18:18:09  ID:n14YEU6w.net(2)
サンプルだから

697
デフォルトの名無しさん[sage]   投稿日:2017/06/17 18:19:41  ID:n14YEU6w.net(2)
>371
Javaしか使ったことない人が知ったかぶりでCの本出すからそうなる
捨てろ

698
デフォルトの名無しさん[]   投稿日:2017/06/17 18:19:49  ID:DtePX3I4.net(5)
全然、プログラム作りの参考になりません。

ただ、例外もあります。

セジウィックの『Algorithms』という赤い本は、参考になります。

699
デフォルトの名無しさん[]   投稿日:2017/06/17 18:21:15  ID:DtePX3I4.net(5)
>373

でも、コード自体は非常に巧妙で優れています。

700
デフォルトの名無しさん[]   投稿日:2017/06/17 20:50:11  ID:DtePX3I4.net(5)
そういえば、茨木俊秀の本のプログラムもひどかったような。


701
デフォルトの名無しさん[sage]   投稿日:2017/06/17 22:37:25  ID:tNCJKlzg.net
グローバル変数を避けようとかはソフトウェア工学の話で、コンピューター科学とは別の分野なんだよ。

702
デフォルトの名無しさん[]   投稿日:2017/06/17 23:06:32  ID:L9yKSdqC.net
ソフトウェア工学の基本すら知らないんですかね?

703
デフォルトの名無しさん[sage]   投稿日:2017/06/18 00:34:44  ID:o43mtcr6.net
グローバル変数を使った方が、説明しやすいとか、
ソースコードがわかりやすいとか

本の目的が、アルゴリズムの説明だから、
グローバル変数を使って、わかりやすく説明するのも、OK

物事には強弱・重要度があるから、
重要な事を説明する際、重要でない事は無視してもよい

これを、TPO と言って、強弱を付けられる人は、空気を読める

ちょっとしたプログラミングに、型チェックする、Javaなどを使わず、
Rubyで書くのもそう。
ラフな会合に、盛装して行かないのもそう

704
デフォルトの名無しさん[sage]   投稿日:2017/06/18 12:26:58  ID:HTlYPuIB.net
掲示板のTPO弁えない人にTPO語ってもしょうがないよ

705
デフォルトの名無しさん[]   投稿日:2017/06/18 12:39:15  ID:4GAQ5Lgy.net(3)
グローバル変数を明らかに、分かりにくいやり方で使っています。

何の利点もないと思います。

706
デフォルトの名無しさん[]   投稿日:2017/06/18 13:30:23  ID:4GAQ5Lgy.net(3)
もしかして、理論ばかりに興味があり、プログラムを作ったことがないんですかね?

707
デフォルトの名無しさん[sage]   投稿日:2017/06/18 14:37:44  ID:7v+ppDWb.net
プログラム教本ではなくアルゴリズム解説本だからでしょ
擬似言語で書いている場合のが多いと思うけど

708
デフォルトの名無しさん[]   投稿日:2017/06/18 15:37:30  ID:xPH4G83l.net
最初から完成してたらおまいらの仕事無くなっちゃうだろ

709
デフォルトの名無しさん[]   投稿日:2017/06/18 18:10:10  ID:L/LJrXI/.net
楽器やってるひとがいってたよ。自分がつかえる技術を全部つかうわけじゃない

710
デフォルトの名無しさん[]   投稿日:2017/06/18 20:13:26  ID:4GAQ5Lgy.net(3)
浅野孝夫の本。

ちょっと説明が足りないところがある。
完成度がやや低い。
他の日本人の本よりはまし。

プログラムは巧妙。

711
デフォルトの名無しさん[sage]   投稿日:2017/06/18 20:48:27  ID:wscBwMor.net
こんなところに日記書く人って、相当追い詰められてるんだろうな。

712
デフォルトの名無しさん[sage]   投稿日:2017/06/19 04:29:40  ID:+M9YR/5M.net
こんなところだから何書いてもいいよ

713
デフォルトの名無しさん[sage]   投稿日:2017/06/19 09:50:06  ID:JRZAs/i8.net
ステマよりグロい

714
デフォルトの名無しさん[]   投稿日:2017/06/19 12:02:27  ID:0IiK5rsw.net
浅野孝夫の本。

深さ優先探索とか幅優先探索の説明を言葉で長々としています。
そんなことするより、コードを見せたほうがいいと思うんですよね。
コードを見れば一目で分かりますよね。

715
デフォルトの名無しさん[sage]   投稿日:2017/06/19 12:05:01  ID:TXA5MC9f.net
もうおめーが執筆しろよ

716
デフォルトの名無しさん[sage]   投稿日:2017/06/19 13:13:41  ID:YgkoP+sD.net
コードはあくまで例なので解説が先

717
デフォルトの名無しさん[]   投稿日:2017/06/21 10:56:36  ID:CsbvaOkp.net(6)
http://imgur.com/9QGwvmM.jpg
http://imgur.com/j3Dp32V.jpg
http://imgur.com/iJhKoqM.jpg

↑は浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)です。

重大な誤りを発見しました。

G が二部グラフであるための必要十分条件は、G を幅優先探索したときに同じ深さの補木辺がないことであると書かれていますが、
完全な誤りです。

具体的に言うと、「同じ深さの点を結ぶ補木辺がないときは、この色の割当てが実際に2彩色になっている。」と書かれていますが、
間違っています。

反例は3枚目の画像を参照してください。

718
デフォルトの名無しさん[]   投稿日:2017/06/21 11:00:57  ID:CsbvaOkp.net(6)
訂正します:

http://imgur.com/9QGwvmM.jpg
http://imgur.com/j3Dp32V.jpg
http://imgur.com/iJhKoqM.jpg

↑は浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)です。

重大な誤りを発見しました。

G が二部グラフであるための必要十分条件は、G を幅優先探索したときに同じ深さの点を結ぶ補木辺がないことであると書かれていますが、完全な誤りです。

具体的に言うと、「同じ深さの点を結ぶ補木辺がないときは、この色の割当てが実際に2彩色になっている。」と書かれていますが、
間違っています。

反例は3枚目の画像を参照してください。

719
デフォルトの名無しさん[]   投稿日:2017/06/21 11:11:21  ID:CsbvaOkp.net(6)
商品の説明
内容紹介
ネットワーク・人工知能の基礎となるグラフ・ネットワークを学ぶ

アマゾンに商品説明として、↑のように書かれています。

人工知能とグラフ・ネットワーク理論に何の関係があるのでしょうか?

この出版社は、「世界標準MIT教科書」などとタイトルに書いたり、売るためには
手段を選ばない出版社ですね。

720
デフォルトの名無しさん[sage]   投稿日:2017/06/21 12:35:50  ID:TkpRSZSL.net(4)
>395
自分の想像力の欠如で批判しないほうがいいよ

721
デフォルトの名無しさん[sage]   投稿日:2017/06/21 12:37:14  ID:L1LFWazB.net
外国には「たのしいRuby」が無い

日本人が20時間で勉強できることを、何十時間も掛けて勉強して、なおかつ理解できない。
だから、MIT に頼る

外人でも知っている人は、Ruby でツールを作る。
Chef, Vagrant, SASS とか

Homebrew もRubyで作られているのだから、
Apple は、もっとRubyに力を入れるべき

722
デフォルトの名無しさん[sage]   投稿日:2017/06/21 12:53:00  ID:TkpRSZSL.net(4)
>394
幅優先探索わかる?

723
デフォルトの名無しさん[sage]   投稿日:2017/06/21 12:54:37  ID:Y4WM7moX.net
>394
3枚目は補木辺があって2部グラフではないので、
別におかしくないのでは

724
デフォルトの名無しさん[]   投稿日:2017/06/21 13:14:54  ID:CsbvaOkp.net(6)
>399

「同じ深さの点を結ぶ補木辺がないときは、この色の割当てが実際に2彩色になっている。」

3枚目の画像には同じ深さの点を結ぶ補木辺がありません。
ですが、2彩色ではありません。

725
デフォルトの名無しさん[sage]   投稿日:2017/06/21 13:31:42  ID:srnzKpaS.net
松坂君のアスペ日記3

Daniel Marcus Graph Theory を読む。 [無断転載禁止]©2ch.net
Daniel Marcus Graph Theory を読む。 /数学板

726
デフォルトの名無しさん[]   投稿日:2017/06/21 13:33:59  ID:CsbvaOkp.net(6)
要するに、↓が間違っているわけです。

「補木辺は、同じ深さの点を結んでいるか、あるいは深さが 1 異なる点を結んでいることに注意しよう。」

727
デフォルトの名無しさん[sage]   投稿日:2017/06/21 13:55:32  ID:BP6mUhEj.net
ここじゃなくて著者なり出版社なりに連絡しなよ
その方がちゃんと議論できるだろうし修正されればあとから読む人の為になるよ

728
デフォルトの名無しさん[sage]   投稿日:2017/06/21 14:30:39  ID:TkpRSZSL.net(4)
>400
幅優先で探索木作ったら同じ深さを結ぶ補木辺ができるから二部グラフでないことがわかる

729
デフォルトの名無しさん[sage]   投稿日:2017/06/21 16:12:29  ID:e3wPbus7.net
>394
三枚目の図は、反例になっていない。
あなたが幅優先探索を理解できていないだけで、書籍の記述は間違っていないよ。
根でない2つの頂点は、どちらも、根から辺が張られていて、根と隣接しているのだから、同じ深さの位置にある。

730
デフォルトの名無しさん[]   投稿日:2017/06/21 18:57:35  ID:CsbvaOkp.net(6)
あ、勘違いしました。

無向グラフでしたね。

731
デフォルトの名無しさん[sage]   投稿日:2017/06/21 19:28:34  ID:TkpRSZSL.net(4)
教科書だって間違いはいくらでもある。
だからといって、間違いらしきものを見つけて喜々としてあげつらうのではなく、
自分の解釈ではこうだが違うのだろうかという態度で質問しておけばよかったね。

732
デフォルトの名無しさん[sage]   投稿日:2017/06/21 22:04:49  ID:GPdgYp3Z.net
何がいんだろ

733
デフォルトの名無しさん[]   投稿日:2017/06/23 09:05:15  ID:0OdP20aK.net
>393-394
他人の誤りを指摘するときに
自分でも誤るとか恥ずかしくないか

734
デフォルトの名無しさん[sage]   投稿日:2017/06/23 13:07:58  ID:IBCt0Ik9.net
間違いを恐れるな

735
デフォルトの名無しさん[sage]   投稿日:2017/06/23 13:38:13  ID:8e+v7OlS.net
馬鹿、アスペを恐れるな

736
デフォルトの名無しさん[]   投稿日:2017/06/23 19:23:07  ID:vbPiU/7d.net
KIZLA7]]]

%≒72%,M,L,TO"JYOJA"

737
デフォルトの名無しさん[]   投稿日:2017/06/26 15:07:57  ID:wjem+ipT.net(4)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)ですが、この
本には強連結成分分解のアルゴリズムは書いてあるのですが、その正しさについて
の説明がありません。

「アルゴリズムの正当性については演習問題とする。」などと書かれているだけです。
そして、解答がありません。

解答をつけないほど簡単な問題でしょうか?

エイホ、ホップクロフト、ウルマン著『データ構造とアルゴリズム』に分かりやすい説明がありました。

738
デフォルトの名無しさん[]   投稿日:2017/06/26 15:09:29  ID:wjem+ipT.net(4)
あ、よくみたら解答がありました。

739
デフォルトの名無しさん[]   投稿日:2017/06/26 15:14:33  ID:wjem+ipT.net(4)
強連結成分分解のアルゴリズムはグラフ理論的な観点からは興味深いですが、
応用についてはあまりないようですね。

浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)の「はじめに」に
「強連結成分分解はシステムの故障診断や効率的解析への応用があると言われている。」
などと書かれいます。浅野さん自身は応用について具体的な詳細を知らないと宣言して
いるようなものですね。

740
デフォルトの名無しさん[]   投稿日:2017/06/26 15:27:14  ID:H+izVTcm.net
ステマ乙としか

741
デフォルトの名無しさん[]   投稿日:2017/06/26 15:32:39  ID:wjem+ipT.net(4)
ところで、LEDAというライブラリはお勧めですか?

742
デフォルトの名無しさん[sage]   投稿日:2017/06/26 16:23:39  ID:xVfkWcpc.net
病人が粘着してる

743
デフォルトの名無しさん[]   投稿日:2017/06/27 13:16:02  ID:NGLAHv1W.net(5)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。

G のトポロジカルラベリングについては説明があるのですが、トポロジカルソートの応用例が
全く書かれていません。

勉強するモチベーションが全くありません。

著者は一体何を考えているのでしょうか?

744
デフォルトの名無しさん[sage]   投稿日:2017/06/27 14:05:21  ID:41er5Tk4.net
NGにしてほしいんじゃね

745
デフォルトの名無しさん[sage]   投稿日:2017/06/27 14:08:46  ID:7kGXm9Ae.net
勉強しなきゃいいのに

746
デフォルトの名無しさん[sage]   投稿日:2017/06/27 15:22:28  ID:LAkf1Hly.net
馬鹿のアスペの気持ちなんか分からん

747
デフォルトの名無しさん[sage]   投稿日:2017/06/27 17:51:10  ID:LqFx/Quf.net
本人だったりして

748
デフォルトの名無しさん[]   投稿日:2017/06/27 19:32:13  ID:NGLAHv1W.net(5)
あ、その後の有向無閉路ネットワークの最長パスを求めるアルゴリズムで
トポロジカルラベリングが使われていました。

なかなか面白い応用ですね。

この本、説明にちょっと粗雑なところもありますが、見せ場があって楽しいですね。

749
デフォルトの名無しさん[]   投稿日:2017/06/27 19:34:40  ID:NGLAHv1W.net(5)
有向無閉路ネットワークという制限が強すぎますね。

でもこの制限のおかげでちょっと面白いトポロジカルラベリングの応用例が見れたわけですね。

750
デフォルトの名無しさん[sage]   投稿日:2017/06/27 21:47:11  ID:i+35CN1y.net
プログラミング・コンテスト・チャレンジブック、第2版、2012

ほとんど全てのアルゴリズムを網羅。
問題数も多く、パズル感覚で楽しめる。
AIやシミュレーションゲームの参考になる

751
デフォルトの名無しさん[]   投稿日:2017/06/27 21:55:21  ID:NGLAHv1W.net(5)
>426

網羅からはほど遠いと思います。

752
デフォルトの名無しさん[]   投稿日:2017/06/27 21:58:43  ID:NGLAHv1W.net(5)
>426

それとアルゴリズムの正当性のまともな説明がありません。

計算量の評価についてもまともな説明はありません。

753
デフォルトの名無しさん[sage]   投稿日:2017/06/27 22:34:26  ID:Tdvy+2PR.net
一から百まで説明しないとダメな奴、すなわち無能

754
デフォルトの名無しさん[sage]   投稿日:2017/06/28 02:20:53  ID:W36D2Opo.net(2)
入門 データ構造とアルゴリズム、2013、オライリー
Narasimha Karumanchi(インド人) 著

アルゴリズムなら、セジウィックでも読めば?

プログラミング・コンテスト・チャレンジブックは、
コンテストの問題を集めた本だから、便利

一々、ウェブサイトの問題を見なくても良いから、楽

755
デフォルトの名無しさん[]   投稿日:2017/06/28 05:10:12  ID:6P8PW2pA.net(14)
>430

そのインド人の本は、アルゴリズムの正当性のまともな説明がありません。

計算量の評価についてもまともな説明がありmせん。

セジウィックのAlgorithms 4th Editionはいい本ですが、計算量の評価については
まともな説明がないように思います。

756
デフォルトの名無しさん[]   投稿日:2017/06/28 05:17:01  ID:6P8PW2pA.net(14)
D40

T をグラフ G の全域木とする。
C を G のサイクルとする。
AB を C および T に含まれる辺とする。

このとき、 T から AB を除去し、辺 UV を追加したときに、
依然として G の全域木であるような辺 UV が C の中に
含まれることを示せ。

757
デフォルトの名無しさん[]   投稿日:2017/06/28 06:24:05  ID:6P8PW2pA.net(14)
>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 であるような連結なグラフは木であるから、そうような部分グラフは木である。

758
デフォルトの名無しさん[]   投稿日:2017/06/28 06:52:24  ID:6P8PW2pA.net(14)
>432

ヒントとして、 「T - AB は2成分からなる森である」と書いてあるのですが、
このヒントを利用した解答はどうなるのでしょうか?

759
デフォルトの名無しさん[]   投稿日:2017/06/28 10:22:23  ID:6P8PW2pA.net(14)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。

↓は、ある点から各点への最長パスを求めるプログラムのメイン関数です。
「出発点を入力してください」などと出力していますが、出発点は 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;
}

760
デフォルトの名無しさん[]   投稿日:2017/06/28 10:54:52  ID:6P8PW2pA.net(14)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。

ひどいバグを発見しました。

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とする
■■■■■■■■}
■■■■}
}

761
デフォルトの名無しさん[sage]   投稿日:2017/06/28 10:57:07  ID:+O8L6XqQ.net
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/05260...

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など動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。

762
デフォルトの名無しさん[]   投稿日:2017/06/28 11:02:48  ID:6P8PW2pA.net(14)
↑の for 文は j = 1 から始まっています。

v == tporder[1] == 1 です。
a == revedgefirst[1] == 0 です。

ところが、この本では配列のインデックスは 1 からしか利用していません。
インデックスが 0 の要素は初期化すらしていません。
どうも配列を初期化しないと値は不定だそうですが、実際には 0 で初期化されることが
多いようです。

仕様では不定であるはずの

tail[0]
dmax[0]
length[0]

がたまたま 0 で初期化されるため、偶然、問題なく動作しています。

正しくは、

for 文は j = 2 から始めなくては駄目です。

763
デフォルトの名無しさん[]   投稿日:2017/06/28 11:19:51  ID:6P8PW2pA.net(14)
あ、もう一つバグがありました↑

path[v]=w; // 式(4.2)に基づくpath[v]の初期設定

となっていますが、

path[v]=a; // 式(4.2)に基づくpath[v]の初期設定

でなければなりません。

764
デフォルトの名無しさん[]   投稿日:2017/06/28 12:31:24  ID:W36D2Opo.net(2)
>438
>インデックスが 0 の要素は初期化すらしていません

配列[0] を使わないのなら、初期化する必要はない

765
デフォルトの名無しさん[]   投稿日:2017/06/28 12:34:24  ID:6P8PW2pA.net(14)
>440

そうですが、

for(j = 1;

とすると

意図せず配列[0]を使うことになってしまいます。

この値がたまたま 0 で初期化されていて、かつ 0 であれば正しく動くため、
問題が表面化していないだけです。


766
デフォルトの名無しさん[]   投稿日:2017/06/28 12:37:24  ID:6P8PW2pA.net(14)
有向無閉路ネットワークの最長パスをトポロジカルラベリングを利用して、
求めるアルゴリズムって他の本に載っていますか?

あまりにも特殊すぎて載っていないのではないかと推測しますが。

この本は、鮮やかに解けるように問題を特殊化して見せ場を作っていますね。

767
デフォルトの名無しさん[]   投稿日:2017/06/28 13:17:27  ID:6P8PW2pA.net(14)
>426

その本を読むのでしたら、

浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

のほうがCプログラムも載っていますし、面白いと思いますよ。

オイラーグラフの一筆書きのプログラムがあったりします。

768
デフォルトの名無しさん[sage]   投稿日:2017/06/28 14:35:33  ID:itdARVty.net
外部変数は0で初期化される。

769
デフォルトの名無しさん[sage]   投稿日:2017/06/28 15:46:50  ID:7M5wzg7m.net
j=1で始まってんのに意図せず配列[0]を参照するの意味がわからん

770
デフォルトの名無しさん[sage]   投稿日:2017/06/28 16:26:43  ID:mp82Jtm6.net
それでも馬鹿のアスペの荒らしをスルーできない

771
デフォルトの名無しさん[]   投稿日:2017/06/28 18:29:25  ID:6P8PW2pA.net(14)
>444

このプログラムだけ見てももちろん分からないと思います。

a == revedgefirst[1] == 0 なので、 tail[a] == tail[0] です。

772
デフォルトの名無しさん[]   投稿日:2017/06/28 18:29:51  ID:6P8PW2pA.net(14)
訂正します:

>445

このプログラムだけ見てももちろん分からないと思います。

a == revedgefirst[1] == 0 なので、 tail[a] == tail[0] です。

773
デフォルトの名無しさん[]   投稿日:2017/06/28 18:33:38  ID:6P8PW2pA.net(14)
さらに、

v == tporder[1] == 1 です。

774
デフォルトの名無しさん[]   投稿日:2017/06/29 11:58:28  ID:df4uIsIb.net(2)
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枚目の画像を読めば分かりますが、十分性について証明されていないように思います。

どうでしょうか?

775
デフォルトの名無しさん[]   投稿日:2017/06/29 12:19:34  ID:df4uIsIb.net(2)
むしろ、十分性が成り立つことを前提にしてアルゴリズムの正しさを証明しているように思います。

776
デフォルトの名無しさん[sage]   投稿日:2017/06/30 09:51:08  ID:pDIkSJMf.net
粘着

777
デフォルトの名無しさん[]   投稿日:2017/06/30 13:39:18  ID:8CLI6C9V.net
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

ホップクロフト - カープのアルゴリズムのところを読んでいます。

段々、面白いアルゴリズムが登場してきていますね。

日本語のアルゴリズムの本は本当に初歩的な本が多いですが、なぜなのでしょうか?

例えば、ホップクロフト - カープのアルゴリズムが載っている本はあるでしょうか?

日本語の本に載っているのは、

リスト、ハッシュ、ヒープ、2分探索木、平衡木、ソート、最短経路、文字列

とかそんなもんだけですよね。

778
デフォルトの名無しさん[sage]   投稿日:2017/06/30 19:08:50  ID:OVGL+Zaw.net
初歩的な問題すら理解できずにドヤ顔で間違った反例晒すやつがいるからだよ

779
デフォルトの名無しさん[sage]   投稿日:2017/06/30 20:21:27  ID:QJcLAte5.net
それ以上の難解アルゴリズムに挑戦する頭脳があれば英語の習得は容易いので、結果すでにある英語本を買うようになると予想

780
デフォルトの名無しさん[]   投稿日:2017/07/01 09:37:54  ID:OLSj8alI.net(8)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。


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();
}

781
デフォルトの名無しさん[]   投稿日:2017/07/01 09:42:20  ID:OLSj8alI.net(8)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。

a = edgefirst[v1];
while(a != 0){
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
a = edgenext[a];
}

などというコードが本書のソースコードのいたるところで使われています。

↓のように書くべきですよね。

for(a = edgefirst[v1]; a != 0; a = edgenext[a]){
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
■■■■
}

782
デフォルトの名無しさん[]   投稿日:2017/07/01 09:46:11  ID:OLSj8alI.net(8)
茨木俊秀さんの本でも感じましたが、ひどいコードを書く人が多いですよね。

一番、驚いたのが野崎昭弘さんの本です。

goto 文を使わなくていいところで常用しています。

783
デフォルトの名無しさん[sage]   投稿日:2017/07/01 09:53:17  ID:w5457acR.net
粗さがしが得意みたいだから、出版社で校正でもやったら良いのでは?

784
デフォルトの名無しさん[sage]   投稿日:2017/07/01 09:55:39  ID:PrUYVLVg.net
伏字かと思ったらインデントかよ。
これが見やすいと思ったんだろうか?ここに辿り着くまでの思考過程を見てみたいわ。

785
デフォルトの名無しさん[]   投稿日:2017/07/01 09:59:03  ID:OLSj8alI.net(8)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。

for (v = 1; v <= n; v++) parent[v] = unvisited;

というコードがあります。

点 v の親の処理ですが、深さ優先探索で使う定数である unvisited == -1 を流用しています。
親は訪問するものではないにもかかわらずです。
単に -1 という値が使いたいだけです。

ひどいコードです。

786
デフォルトの名無しさん[sage]   投稿日:2017/07/01 12:24:50  ID:HZmJrzKI.net
>460
基地外の思考過程なんて見たらSAN値下がるぞ。

787
デフォルトの名無しさん[]   投稿日:2017/07/01 12:35:14  ID:OLSj8alI.net(8)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。

このプログラムですが、意味不明に冗長なところがあるので超分かりにくいです。

もし、この本を読む人は、注意した方がいいです。

分かりやすい等価なコードにすこしずつ変えながら読んでいます。

788
デフォルトの名無しさん[]   投稿日:2017/07/01 20:40:17  ID:OLSj8alI.net(8)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)
ホップクロフト - カープのアルゴリズムのところを読んでいます。

プログラムに、非常に非効率な部分を発見しました。

深さ優先探索で最短パスを探す部分があるのですが、一つの最短パスを
発見した後も、うろうろと探索を続けています。 return 文で呼び出し元へと
遡って戻るべき箇所です。

具体的にいうと、p.95の void bipartite_dfs(int) 関数内の

bipartite_dfs(w1);

は、

bipartite_dfs(w1);
if(pathfound) return;

とすべきです。

789
デフォルトの名無しさん[sage]   投稿日:2017/07/01 22:15:24  ID:fqWBe1B0.net
俺様のアスペ日記

790
デフォルトの名無しさん[]   投稿日:2017/07/01 23:27:45  ID:OLSj8alI.net(8)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

のHopcroft-Karpのアルゴリズムのプログラムを一切変更を加えずに使用して、
Aizu Online Judgeの2部グラフのマッチングの問題を解かせてみたら、
1問目から正しい結果が得られませんでした。

浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

では一つの例に対して、プログラムをチェックしているだけです。
その例に対しては正しい結果が得られます。

著者はおそらく他の例についてはチェックしていないと思われます。

これから原因を究明しようと思います。

ちなみに

浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

での例ですが、この著者の旧著でも全く同じ例を使っています。

使いまわしですね。他の例は一度もチェックしていないようです。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)

791
デフォルトの名無しさん[]   投稿日:2017/07/01 23:59:37  ID:OLSj8alI.net(8)
あ、勘違いでした。

入力のフォーマットが会津と浅野の本で違いました。

792
デフォルトの名無しさん[]   投稿日:2017/07/02 12:42:08  ID:KDfMECXZ.net(2)
マッチングといっても、いろいろな問題があるんですね。

安定マッチングと最大マッチングは互いに何の関係もない全く異なる問題ですね。

↓の講義は、安定マッチングについてですが、簡単ですね。

https://ocw.mit.edu/courses/electrical-engineering-and-computer-s...#vid_related

MITの微分積分の講義を見ると学生のレベルが低いという印象ですが、この講義を見ると
そうでもないような印象です。

793
デフォルトの名無しさん[]   投稿日:2017/07/02 13:22:29  ID:KDfMECXZ.net(2)
>468

なんか明らかなことをダラダラと証明していますね。

794
デフォルトの名無しさん[]   投稿日:2017/07/03 08:45:45  ID:b174092u.net(4)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

を読んでいます。

定理:
G のマッチング M に対して、 M が最大マッチングであるための必要十分条件は M に
関する増加パスが存在しないことである。

という定理が書いてあります。

十分性の証明が長すぎます。見た目はちょっとすっきりとしていていいのですが、長くて
素朴な証明法ではありません。

795
デフォルトの名無しさん[]   投稿日:2017/07/03 08:46:22  ID:b174092u.net(4)
以下のような証明が素朴なよい証明だと思います。

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 は最大マッチングである。

796
デフォルトの名無しさん[]   投稿日:2017/07/03 08:55:27  ID:b174092u.net(4)
なんか他の本を調べてみても、

>471

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

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

という問題があったとして、答えとして、バブルソートをあげれば十分であるにもかかわらず、
ヒープソートをあげるようなもんですね。

797
デフォルトの名無しさん[sage]   投稿日:2017/07/03 12:01:19  ID:2KgtUC+G.net
>471

頂点a b c d eがあって、
辺が、
a b
a c
a d のとき、
Mとして
a bを選べば、増加パスはないけど、
cとdはFreeな頂点になるのでは?

798
デフォルトの名無しさん[]   投稿日:2017/07/03 12:17:16  ID:b174092u.net(4)
>473

ありがとうございます。

>471
は間違いですね。

799
デフォルトの名無しさん[sage]   投稿日:2017/07/03 22:09:21  ID:d7TtC2S/.net
>474

ズコーッ

800
デフォルトの名無しさん[]   投稿日:2017/07/03 23:57:03  ID:kWtGcdOg.net
>474

ヽ(・ω・)/ズコー

801
デフォルトの名無しさん[sage]   投稿日:2017/07/06 14:52:18  ID:MPcf+VnS.net
松坂君はおつむ弱いなー

802
デフォルトの名無しさん[]   投稿日:2017/07/07 10:19:21  ID:LuN3QDVY.net(5)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)を読んでいます。

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

これはOKなのでしょうか?

803
デフォルトの名無しさん[sage]   投稿日:2017/07/07 10:33:49  ID:Hkhwo5qO.net
おつむが弱いアスペ参上

804
デフォルトの名無しさん[]   投稿日:2017/07/07 11:03:27  ID:LuN3QDVY.net(5)
やはり証明は必要なんですね。
↓の本に証明が載っていました。

組合せ数学入門 II (共立全書)
C.L.リウ
http://www.amazon.co.jp/dp/4320005422/

805
デフォルトの名無しさん[]   投稿日:2017/07/07 11:04:16  ID:LuN3QDVY.net(5)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)

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

ほとんど結果しか書いていません。

806
デフォルトの名無しさん[]   投稿日:2017/07/07 11:53:23  ID:LuN3QDVY.net(5)
>478

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

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

著者の態度は矛盾していますね。

807
デフォルトの名無しさん[sage]   投稿日:2017/07/07 13:13:44  ID:G2hd19q1.net
僕の肛門から流出するソースの総フローがシンクに流入します

808
デフォルトの名無しさん[]   投稿日:2017/07/07 17:37:48  ID:LuN3QDVY.net(5)
今、ウィルソンのグラフ理論の本を見てみたのですが、内容がスカスカですね。

アルゴリズム的なグラフ理論の本のほうが分かりやすいし、面白いですね。

809
デフォルトの名無しさん[]   投稿日:2017/07/07 19:30:12  ID:LchmZiK1.net
「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

810
デフォルトの名無しさん[sage]   投稿日:2017/07/08 06:00:28  ID:h3/vqusb.net
健全でない言葉が含まれているため表示しません 内容を確認する

811
デフォルトの名無しさん[]   投稿日:2017/07/08 09:51:52  ID:bx7kaphQ.net(5)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)の
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];
■■■■■■■■}
■■■■}
}

812
デフォルトの名無しさん[sage]   投稿日:2017/07/08 10:04:34  ID:gbIBpGm+.net
基地外こえーな

813
デフォルトの名無しさん[]   投稿日:2017/07/08 10:07:07  ID:bx7kaphQ.net(5)
↓は、↑と等価なプログラムです。

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

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;
■■■■■■■■■■■■}
■■■■■■■■}
■■■■}
}

814
デフォルトの名無しさん[]   投稿日:2017/07/08 10:10:00  ID:bx7kaphQ.net(5)
浅野孝夫著『グラフ・ネットワークアルゴリズムの基礎』(近代科学社)のプログラムは
すべて↑こんな感じなので、いちいち自分でまともな等価なプログラムに改善してから
読む必要に迫られます。

815
デフォルトの名無しさん[sage]   投稿日:2017/07/08 10:29:14  ID:W4vGtvme.net
海苔弁プログラムと呼ぶことにしよう

816
デフォルトの名無しさん[sage]   投稿日:2017/07/08 10:35:19  ID:dHGGPCH1.net
アホのアスペ日記

817
デフォルトの名無しさん[]   投稿日:2017/07/08 14:20:34  ID:bx7kaphQ.net(5)
for-2ch-codes/FlowLibrary.h

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

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

↓こちらが浅野さんのコードを読みやすくした等価なコードです:
for-2ch-codes/my_fordfulkerson.c

818
デフォルトの名無しさん[]   投稿日:2017/07/08 14:21:50  ID:bx7kaphQ.net(5)
https://github.com/for-2ch/for-2ch-codes/blob/master/FlowLibrary...

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

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

↓こちらが浅野さんのコードを読みやすくした等価なコードです:
https://github.com/for-2ch/for-2ch-codes/blob/master/my_fordfulk...

819
デフォルトの名無しさん[sage]   投稿日:2017/07/08 14:46:01  ID:shVOEDs/.net
■■■■■■■■■■■■■
■■このスレ闇が深すぎ■■
■■■■■■■■■■■■■

820
デフォルトの名無しさん[sage]   投稿日:2017/07/08 15:34:28  ID:/nxmjkTk.net
すみません、松坂くんて誰ですか

821
デフォルトの名無しさん[sage]   投稿日:2017/07/08 16:30:54  ID:/Hl6yXpd.net
>496
教科書の荒さがして著者をdisることを生きがいとしてる厨房

ID:bx7kaphQ

Daniel Marcus Graph Theory を読む。 [無断転載禁止]©2ch.net
Daniel Marcus Graph Theory を読む。 /数学板

822
◆QZaw55cn4c [sage]   投稿日:2017/07/08 18:49:23  ID:/o9ObF5e.net
>497
高等な趣味だと思うよ,よく頑張っているね

823
デフォルトの名無しさん[sage]   投稿日:2017/07/08 19:37:28  ID:ICTsGxtb.net
馬鹿アスペ同士仲良く

824
デフォルトの名無しさん[sage]   投稿日:2017/07/09 17:28:01  ID:X4hx0gz3.net
お前ら、ちゃんと次スレ立ててやれよ?
隔離スレさえあればこっちに被害は及ばないからな

825
デフォルトの名無しさん[sage]   投稿日:2017/07/09 17:29:01  ID:ZR+XIVIQ.net
お前がやれよ

826
デフォルトの名無しさん[sage]   投稿日:2017/07/10 01:48:04  ID:LYhH/bN3.net
よし、今日からワイがM坂だ!

827
デフォルトの名無しさん[]   投稿日:2017/07/10 10:06:36  ID:BQfNYjN8.net(12)
比較によるソートの比較回数の下限についての議論で決定木が登場します。

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

意味不明です。

828
デフォルトの名無しさん[]   投稿日:2017/07/10 13:49:55  ID:BQfNYjN8.net(12)
そもそも決定木って何ですか?

829
デフォルトの名無しさん[]   投稿日:2017/07/10 14:01:08  ID:BQfNYjN8.net(12)
例えば、決定木の内部ノードに 1: 2 というのノードにおいて、
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、
その計算結果を捨ててしまってもいいんですよね?

830
デフォルトの名無しさん[]   投稿日:2017/07/10 14:02:15  ID:BQfNYjN8.net(12)
例えば、決定木の内部ノードに 1: 2 というノードがあったとすると、そのノードにおいて、
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、その計算結果を捨ててしまっ
て以後利用しなくてもいいんですよね?

831
デフォルトの名無しさん[]   投稿日:2017/07/10 17:02:14  ID:BQfNYjN8.net(12)
http://imgur.com/XyDXq0t.jpg

↑は普通の決定木です。

http://imgur.com/zqlLVWW.jpg

↑のような決定木はどう扱うのでしょうか?

832
デフォルトの名無しさん[sage]   投稿日:2017/07/10 17:11:43  ID:OAwCY67i.net
どこでもたちまち糞日記スレにしてしまう恐ろしさ

833
デフォルトの名無しさん[sage]   投稿日:2017/07/10 17:39:12  ID:S+vnKcL6.net
他にも被害スレが?

834
デフォルトの名無しさん[]   投稿日:2017/07/10 18:34:52  ID:BQfNYjN8.net(12)
段々、言いたいことが分かってきました。

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 個の葉を収容できません。

835
デフォルトの名無しさん[]   投稿日:2017/07/10 18:37:08  ID:BQfNYjN8.net(12)
深さ 4 の決定木の葉の数の最大値は 2^4 = 16 です。

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

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

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

以上から、決定木 T の葉の深さは最低でも 5 である必要があります。

836
デフォルトの名無しさん[]   投稿日:2017/07/10 18:52:50  ID:BQfNYjN8.net(12)
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

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

837
デフォルトの名無しさん[]   投稿日:2017/07/10 18:53:05  ID:BQfNYjN8.net(12)
lg(n!) = Θ(n*lg(n)) ですので、

Θ(n*lg(n)) ≦ k

が成り立ちます。

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

よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Θ(n*lg(n)) 回の比較が必要です。

838
デフォルトの名無しさん[]   投稿日:2017/07/10 18:57:08  ID:BQfNYjN8.net(12)
訂正します:

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

Ω(n*lg(n)) ≦ k

が成り立ちます。

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

よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Ω(n*lg(n)) 回の比較が必要です。

839
デフォルトの名無しさん[]   投稿日:2017/07/10 19:00:21  ID:BQfNYjN8.net(12)
なんか非常に大雑把な議論で Ω(n*lg(n)) という評価を得ているのに、
ヒープソートやマージソートのような O(n*lg(n)) のアルゴリズムが存在する
というところが不思議ですね。

840
デフォルトの名無しさん[sage]   投稿日:2017/07/10 19:15:23  ID:wVcu7osF.net
この人DHAだろ

841
デフォルトの名無しさん[sage]   投稿日:2017/07/10 19:19:20  ID:TpSxkkBl.net
マグロの目?

842
デフォルトの名無しさん[]   投稿日:2017/07/10 20:08:22  ID:BQfNYjN8.net(12)
アマゾンってダメダメですね。

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

ヤフーショッピングとかで買えば実質30%引きくらいで買えるときもありますよね。

843
デフォルトの名無しさん[sage]   投稿日:2017/07/10 20:27:20  ID:Di3Z2y8c.net
>516
ADHD?唯の馬鹿のアスペだと思う

844
デフォルトの名無しさん[]   投稿日:2017/07/11 02:13:19  ID:kTultHtx.net
URLとかファイルパスとかコマンドとかをクッソ汚い文字列として
文字列処理で結合したり変数埋込みしたり正規表現使ったり
するコードとか、
エンコードされたり、エスケープ混じりのぐちゃぐちゃな文字列とか
とにかく汚くて長くて改行されてない文字列処理にも
データ構造やデザインパターンて適用できるの?
またはデータ構造やデザインパターンでソースをきれいに
整形できたりする?

845
デフォルトの名無しさん[sage]   投稿日:2017/07/11 10:51:23  ID:GFhKOZAg.net
文字列処理っつってもいろいろあんだろ
どういう処理がしたいのかもわからんのにデザパタ適用もクソもあるかよ

846
デフォルトの名無しさん[sage]   投稿日:2017/07/11 11:15:39  ID:oEYLH8ZM.net
Stringというデータ構造

847
デフォルトの名無しさん[sage]   投稿日:2017/07/11 19:00:22  ID:XmA15/s4.net
クッソ汚いもぐちゃぐちゃも個人の感想だから伝わらない

848
デフォルトの名無しさん[sage]   投稿日:2017/07/11 21:26:37  ID:rybeffro.net
おう、松坂!
次スレな

俺は賢い、ディープラーニング教えて [無断転載禁止]©2ch.net
俺は賢い、ディープラーニング教えて

849
デフォルトの名無しさん[sage]   投稿日:2017/07/12 14:44:43  ID:sNyzU/qO.net(2)
著者名NGに入れて連鎖あぽーんですっきりするな

850
デフォルトの名無しさん[]   投稿日:2017/07/12 18:59:57  ID:BkmceXb8.net(4)
繁野麻衣子著『ネットワーク最適化とアルゴリズム』を読んでいます。

http://imgur.com/RI1TvXi.jpg

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

こんな基礎的なところで間違いを犯しているというのが信じられません。

851
デフォルトの名無しさん[]   投稿日:2017/07/12 19:25:04  ID:BkmceXb8.net(4)
あ、グラフになっていないと部分グラフとは言わないからOKなんですね。

でも分かりにくい表現ですね。

852
デフォルトの名無しさん[]   投稿日:2017/07/12 19:35:27  ID:BkmceXb8.net(4)
A' が空集合の場合はどうするんですかね?

853
デフォルトの名無しさん[]   投稿日:2017/07/12 19:40:24  ID:BkmceXb8.net(4)
空写像って何ですか?

854
デフォルトの名無しさん[sage]   投稿日:2017/07/12 19:50:43  ID:sNyzU/qO.net(2)
中学生?

855
デフォルトの名無しさん[sage]   投稿日:2017/07/13 01:49:26  ID:dTYbVLC2.net
ただの基地外だろう。

856
デフォルトの名無しさん[]   投稿日:2017/07/16 19:13:54  ID:jm8THNZB.net(3)
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 を含まないようなものが存在することになる。

↑ここが理解できません。

857
デフォルトの名無しさん[]   投稿日:2017/07/16 19:22:48  ID:jm8THNZB.net(3)
あー理解できました。

ここは分かりやすく書き直したほうがいいですね。

858
デフォルトの名無しさん[]   投稿日:2017/07/16 19:35:47  ID:jm8THNZB.net(3)
仮に、 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 のパスが存在することに注意。)

859
デフォルトの名無しさん[sage]   投稿日:2017/07/16 19:54:31  ID:oSRVjDnX.net
糞日記

分からない問題はここに書いてね428 [無断転載禁止]©2ch.net
分からない問題はここに書いてね428 /数学板

860
デフォルトの名無しさん[sage]   投稿日:2017/07/19 22:52:51  ID:W3gBCwo8.net
データ構造とアルゴリズムを勉強するときに、プログラム作成の言語は何がおすすめでしょうか?

なぜ、いまだにC++が幅を利かせているのでしょうか?

861
◆QZaw55cn4c [sage]   投稿日:2017/07/20 01:30:17  ID:NeFB4pBD.net
>536
C/C++が基本だから

862
デフォルトの名無しさん[sage]   投稿日:2017/07/20 07:32:28  ID:JPSYgWUy.net
JAVAやC#はなぜ主流じゃないんですか?

863
デフォルトの名無しさん[sage]   投稿日:2017/07/20 08:06:18  ID:VwfBeboA.net
遅いから。
でも、JAVAはアルゴリズムの教科書でも使われていることあるよ。

864
デフォルトの名無しさん[sage]   投稿日:2017/07/20 13:39:20  ID:+UhdLUtU.net
Golangは爆速やで〜

865
デフォルトの名無しさん[]   投稿日:2017/07/21 05:47:07
Foo foo; と
Foo foo = new Foo();
は何が違うの?

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

public String method(String field){
return field;
}
と、
public String method(){
return this.field;
}
は何が違うの?

866
◆QZaw55cn4c [sage]   投稿日:2017/07/21 08:00:44
>541
>Foo foo; と
>Foo foo = new Foo();
C/C++ か、それとも C#/Java か、はっきりさせよ

867
デフォルトの名無しさん[sage]   投稿日:2017/07/21 08:35:20
命名規約的にJavaだろ

868
デフォルトの名無しさん[sage]   投稿日:2017/07/21 10:31:24
>541
Foo foo; // 参照型変数fooを宣言
Foo foo = new Foo(); // さらに、メモリのヒープ領域ってとこにFoo型のインスタンスを作成し、その場所を代入

コンストラクタとかでよく見ることになると思うけど
Foo(String name) {
this.name = name;
}
これは想像どおりの挙動をしてくれる
引数とフィールドに同じ名前があったとき
フィールドのものを使いたいときあえてthisつける
Foo() {
String name = "bar";
this.name = name;
}
みたいなときも同じ
名前が被ったとき、フィールド側の変数を選ぶのがthis

869
デフォルトの名無しさん[sage]   投稿日:2017/07/21 19:57:34  ID:+Ec9GEX5.net(2)
>539
著者はズレてるよな。

870
デフォルトの名無しさん[sage]   投稿日:2017/07/21 20:06:52  ID:+Ec9GEX5.net(2)
データ構造、アルゴリズムはCで勉強して、デザパタはC++で勉強するのがいいな。

871
デフォルトの名無しさん[]   投稿日:2017/07/22 13:37:57  ID:S+qzOSdo.net
本当はGoやRuby Python JavaScript Kotlinあたりやりたいのに、
本格的なプログラミングとか設計勉強しようとすると
必ずJava, C, C++ あたりで解説されるから覚えざるを得ないというジレンマ。

872
デフォルトの名無しさん[sage]   投稿日:2017/07/22 13:46:49  ID:0HjhMGYw.net
おらLispやれLispゥ!

873
デフォルトの名無しさん[sage]   投稿日:2017/07/22 18:31:48  ID:Yr9CVNZl.net
>547
インプレイス、という概念を植えつけられない言語でアルゴリズムをやるのは問題
でも Java が使われるのは疑問

874
デフォルトの名無しさん[]   投稿日:2017/07/22 19:09:29  ID:3d/mUXex.net(2)
Javaだと問題があるのでしょうか?

セジウィックの本の第4版がJavaですが。

875
デフォルトの名無しさん[sage]   投稿日:2017/07/22 19:10:22  ID:fXxiASxC.net
>547
GoやRuby Python JavaScript Kotlinあたりに入門ちゃんと済ませて、これから本格的なプログラミングとか設計を勉強していくぞって人なら
具体例の説明に使われる程度のJavaやCなんて、無勉でもある程度は読めるでしょ

876
デフォルトの名無しさん[]   投稿日:2017/07/22 19:12:56  ID:3d/mUXex.net(2)
例えば、Pythonだとソートとかハッシュとかリストとかが用意されていますが、
データ構造を学ぶ上では高級すぎるのではないでしょうか?

877
デフォルトの名無しさん[sage]   投稿日:2017/07/22 19:21:52  ID:fJRG67nz.net
Sedgwick のアルゴリズムの教科書は、C++版やJava版があるよね。
C++版はちょっと古くて、C++11以降のモダンな書き方で改訂版を出してほしい。

自分は、アルゴリズムの教科書は疑似コードのみを示すの(MITのCormenの)で勉強したんだけど、失敗だったと思っている。
疑似コードを真似してそのまま実装してたから、一文字変数あまりまえ、クラスや構造体を定義することはなく、何でもかんでも配列で済ませるというクセがついてしまった。
もうちょっと、オブジェクト指向とかを勉強してからにすればよかったのかも。

878
デフォルトの名無しさん[]   投稿日:2017/07/23 11:49:40  ID:cZonGhlD.net(3)
Javaとか連想配列使うだけでもいちいちnewとかキャストとか
鬱陶しい。

879
デフォルトの名無しさん[sage]   投稿日:2017/07/23 14:58:46  ID:CNTwKpOF.net
アルゴリズムは抽象的で、言語仕様とは切り離されたものであるべきなのだ。
そうは言っても手続き型を意識したものになりがちで、これを関数型に書き直せと言われても一目難しいものがままある

880
デフォルトの名無しさん[]   投稿日:2017/07/23 15:44:19  ID:G5QCCj7S.net(6)
アルゴリズムイントロダクションを読んでいます。

http://imgur.com/xbuAPtJ.jpg

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

「if the limit exists」

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

意味不明です。

881
デフォルトの名無しさん[]   投稿日:2017/07/23 15:46:31  ID:G5QCCj7S.net(6)
g(n) が漸近的に正であるような関数であれば、

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



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

ではないでしょうか?

「if the limit exists」などと書いてある理由が分かりません。

882
デフォルトの名無しさん[]   投稿日:2017/07/23 15:51:14  ID:G5QCCj7S.net(6)
アルゴリズムイントロダクションって結構いい加減ですよね。

やっぱりクヌースの本を読んだ方がいいのかもしれませんね。

883
デフォルトの名無しさん[]   投稿日:2017/07/23 15:54:26  ID:G5QCCj7S.net(6)
漸近的に正である関数
漸近的に非負である関数

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

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

漸近的に非負である関数などこの本で登場する機会はあるのでしょうか?

884
デフォルトの名無しさん[sage]   投稿日:2017/07/23 15:55:21  ID:p86Uodim.net
松坂君の夏休みの糞日記

885
デフォルトの名無しさん[sage]   投稿日:2017/07/23 16:03:03  ID:I43wPtVl.net
>556-559
この基地外が人様を害さないことを祈るばかりだ。

886
デフォルトの名無しさん[sage]   投稿日:2017/07/23 16:05:04  ID:7bD+iXj9.net
>555
現実問題、アルゴリズムを書くコードはC、C++に限られる。
Fortran、Java、Python、C#など他の言語はそれで書かれたライブラリを呼ぶだけだ。

887
デフォルトの名無しさん[]   投稿日:2017/07/23 16:09:19  ID:cZonGhlD.net(3)
機械のパフォーマンスを追求するあまりに
人間時間のパフォーマンスを際限なく犠牲にする池沼

888
デフォルトの名無しさん[sage]   投稿日:2017/07/23 18:48:09  ID:wW+3pobQ.net
>563
それはお前みたいな業務プログラマの視点

889
デフォルトの名無しさん[]   投稿日:2017/07/23 19:06:54  ID:cZonGhlD.net(3)
>564
何だよ業務プログラマって
俺は人に使役されてないし、インフラも構築できるし、
人工知能や数学もやってるんだぞ。
お前みたいなパフォーマンスオタクのほうが頭おかしいから。

890
デフォルトの名無しさん[sage]   投稿日:2017/07/23 20:44:29  ID:Js688EZT.net
>Javaとか連想配列使うだけでもいちいちnewとかキャストとか
>鬱陶しい。

891
デフォルトの名無しさん[]   投稿日:2017/07/23 20:46:56  ID:LRxsFVvF.net
>565
なんでそんなに必死なの?

892
デフォルトの名無しさん[sage]   投稿日:2017/07/23 21:10:16  ID:7eA3s3Ch.net
>562
Youがライブラリ作ってもいいんだぞ

893
デフォルトの名無しさん[]   投稿日:2017/07/23 23:45:48  ID:G5QCCj7S.net(6)
アルゴリズムイントロダクションを読んでいます。

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

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

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

何を考えているのでしょうか?

894
デフォルトの名無しさん[]   投稿日:2017/07/23 23:54:11  ID:G5QCCj7S.net(6)
n と書いておきながら n が R を動くと仮定しているとかそんなことはないですよね?

895
デフォルトの名無しさん[sage]   投稿日:2017/07/24 00:08:11  ID:1mGhcU0l.net(5)
原文なの? IT関係の翻訳は誤訳だらけだよ。


896
デフォルトの名無しさん[]   投稿日:2017/07/24 00:10:01  ID:dw4Kx5PQ.net(8)
オリジナルのほうにも、

p.52
the value of the exponent in n^(1 + sin(n)) oscillates between 0 and 2, taking on all values in between

と書いてあります。

897
デフォルトの名無しさん[sage]   投稿日:2017/07/24 00:21:28  ID:BT4s6Lxv.net
>557
0<=c g(n) < f(n)

って書いてあるのだから、(0 < c g(n) でなく、0 <= c g(n) であることに注意)
g(n) = 0, if n > 3
1, if n <= 3
とかなら、
f(n)/g(n) の極限は存在しないよ。
だから、もし極限が存在すれば、という限定をつけたのだと思うよ。

898
デフォルトの名無しさん[]   投稿日:2017/07/24 00:25:53  ID:dw4Kx5PQ.net(8)
>573

それだと、

極限が存在するかしないか以前に、

f(n) / g(n) は n ≦ 3 に対してしか定義されませんよね。

lim f(n) / g(n) と書いた以上は

∃n0 s.t. n ≧ n0 ⇒ g(n) ≠ 0

でないといけないと思います。

899
デフォルトの名無しさん[]   投稿日:2017/07/24 00:27:22  ID:dw4Kx5PQ.net(8)
たとえば、

関数 h(n) の定義域が {0, 1, 2, 3} のときに、

lim h(n) などそもそも考えられないわけです。

900
デフォルトの名無しさん[]   投稿日:2017/07/24 00:31:02  ID:dw4Kx5PQ.net(8)
>573

まず、

0 <= c g(n)

となっているのが問題だと考えます。

g(n) は漸近的に正であるような関数でなければならないはずです。

901
デフォルトの名無しさん[]   投稿日:2017/07/24 00:32:17  ID:dw4Kx5PQ.net(8)
このあたりのところを4人の著者のうち誰が書いたのか知りませんが、
非常に出来が悪いですね。

世界標準とはとてもいえないと思います。

902
デフォルトの名無しさん[sage]   投稿日:2017/07/24 00:33:52  ID:1mGhcU0l.net(5)
書いてあるとおりにしか取れない。キミの解釈がむしろ分らない。
the value of the exponent って(1 + sin(n)) だよな。それは between 0 and 2で、taking on all values in betweenだよな。

nが自然数なのかは知らんけど、sin(n) = 1/sqrt(2) という解釈はどこから?

903
デフォルトの名無しさん[]   投稿日:2017/07/24 00:36:55  ID:dw4Kx5PQ.net(8)
「if the limit exists」と書いてある理由について考えられる唯一の可能性があります。

それは以下の可能性です。

f(n) = ω(g(n)) の定義では、 n は N を動くと考えている。

一方、

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

という式の n は R を動くと考えている。

904
デフォルトの名無しさん[]   投稿日:2017/07/24 00:41:44  ID:dw4Kx5PQ.net(8)
>578

例としてそのような値を考えたということです。

0 < 1 + 1/sqrt(2) < 2

ですが、

1 + sin(n) = 1 + 1/sqrt(2) となるような n ∈ N は明らかに存在しません。

1 + sin(n) = 0
1 + sin(n) = 2

となるような n ∈ N も明らかに存在しませんが、 in between というのが

0 と 2 を含まない可能性を考えて、↑のような例にしました。

905
デフォルトの名無しさん[]   投稿日:2017/07/24 00:51:03  ID:dw4Kx5PQ.net(8)
やっぱりクヌースの本の完成度は群を抜いていますね。

906
デフォルトの名無しさん[sage]   投稿日:2017/07/24 01:21:19  ID:1mGhcU0l.net(5)
> the value of the exponent in n^(1 + sin(n)) oscillates between 0 and 2, taking on all values in between

書いてあるそのままの意味で、これは数学的に真で、
1 + sin(n) = 1 + 1/sqrt(2) を満たす自然数nが存在するなんてどこにも書いてないし、言ってない。
直前にnは自然数と定義してるならそれも引用してもらわないと判断のしようがない。おそらくnumberの略だろう。変数n。

907
デフォルトの名無しさん[sage]   投稿日:2017/07/24 01:46:14  ID:1mGhcU0l.net(5)
もっと本質的な勘違いか。
AならばBはA=Bではないし、AならばBは、BならばAでもないぞ。
言ってるのはthe value, taking on all values in between だけだからな。

908
デフォルトの名無しさん[]   投稿日:2017/07/24 03:48:35  ID:qy6/mYOI.net(2)
>582

n については何も記述がありません。

そもそも、普通なら関数について書くときには、定義域を書くはずですが、
書いてありません。

習慣として、 n と書けば自然数の集合を動く変数ということになりますので、
そう解釈するのが妥当です。

1 + sin(n) が 0 と 2 の間のすべての値をとるのであれば、当然、

0 < 1 + 1/sqrt(2) < 2 ですので、値 1 + 1/sqrt(2) もとります。

909
デフォルトの名無しさん[]   投稿日:2017/07/24 03:58:43  ID:qy6/mYOI.net(2)
念のため、公式ページの正誤表を見てみましたが、書いてありませんでした。

かなり売れている本だと思いますが、飛ばし読みしている人ばかりなのでしょうか?

910
デフォルトの名無しさん[sage]   投稿日:2017/07/24 04:32:03  ID:1mGhcU0l.net(5)
数学の世界ならそうだろうが、数学本じゃなくてプログラミングの本なんだろ?
sin(n) と書いてあればプログラマはたいてい n をfloat型かdouble型の変数だと解釈する。
= 一つとっても大抵のプログラミング言語は等式ではなく、代入演算子と定義している。
分野が違うのだから論理的におかしいと思ったらまずは定義を疑う。数学だってブール代数で1+1=1って書く場合もあるだろう。
今のプログラミング言語は+や-の演算子すら再定義できるのだ。

仮に自然数だとしても、次に本質的な論理問題。>583 これ。

> 0 と 2 の間のすべての値をとる

これも怪しい。take on All Value なので、on 〜の上にという意味で、日本語にするならば結果がその範囲内に収まるだろう。
All values in between take the valueではないのだ。AはBのとき、BはAか?もちろん偽。
つまり1 + sin(n) = 1 + 1/sqrt(2)を保証する記述ではない。

911
デフォルトの名無しさん[sage]   投稿日:2017/07/24 09:36:19  ID:yBhCO73J.net
馬鹿のアスペにかまうな

912
デフォルトの名無しさん[sage]   投稿日:2017/07/24 15:13:09  ID:BdqEvISL.net
>569
>「関数 n^(1 + sin(n)) の指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとる」


指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとるんじゃね?

913
デフォルトの名無しさん[sage]   投稿日:2017/07/25 00:02:25  ID:6PSqyxlH.net
nが自然数か何かも書いてないのに勝手に自然数だと勘違いして発狂するとか何考えてんでしょうね

914
デフォルトの名無しさん[sage]   投稿日:2017/07/25 08:35:49  ID:drKlbZNX.net
sin(n) = 1/sqrt(2) のとき n = 約0.785。 degだと45度。
って、そういう話じゃなくて?

915
デフォルトの名無しさん[sage]   投稿日:2017/07/25 16:29:58  ID:GyEh+ENJ.net(2)
nが自然数でも問題ない

916
デフォルトの名無しさん[sage]   投稿日:2017/07/25 16:30:50  ID:GyEh+ENJ.net(2)
そもそも指数部(1 + sin(n))の話しかしてないんだから

917
デフォルトの名無しさん[sage]   投稿日:2017/07/26 01:18:42  ID:lXGGezLP.net
え?

918
デフォルトの名無しさん[sage]   投稿日:2017/07/26 09:54:26  ID:xcmFWevw.net

919
デフォルトの名無しさん[]   投稿日:2017/07/28 14:53:29  ID:+gMyuDZP.net
凄いことにきずいたぜ!
「ポリモーフィズム」と「ラッパー」は反対の関係にあるんだ。
これによって「メソッド名」と「中身」が 多対多の関係にできるってことだぜ。

920
デフォルトの名無しさん[sage]   投稿日:2017/07/29 09:28:33  ID:eHtT0zBv.net
ライブラリってログを吐いてもいいの?

921
デフォルトの名無しさん[]   投稿日:2017/08/06 03:45:40  ID:tlOocLRL.net(2)
シーケンス図とかスタックトレースって都庁なんだな。
おれの言いたいことが分かるか?「東京都庁」なんだよ。

922
デフォルトの名無しさん[]   投稿日:2017/08/06 03:55:13  ID:tlOocLRL.net(2)
待てよ・・・ピラミッドやサクラダファミリアも同じ形をしてるじゃないか!
この世界の真実を見たぞ・・・

923
デフォルトの名無しさん[sage]   投稿日:2017/08/06 16:19:04  ID:J9/QEsgx.net
ムーの読みすぎ

924
デフォルトの名無しさん[]   投稿日:2017/08/08 23:50:20  ID:/cPMGZTq.net
つかオブジェクト名繋げないでいきなり関数とは変数とか
呼ぶやつまじでやめて。
継承した変数や関数なのか、このクラスで定義した変数や関数
のかわからないじゃん。
このクラスで定義したものだったら thisつけろよ。

925
デフォルトの名無しさん[sage]   投稿日:2017/08/09 01:40:35  ID:MPlilw1q.net
>600
ちょっと何言ってるかよくわからない

926
デフォルトの名無しさん[sage]   投稿日:2017/08/09 06:04:34  ID:Iqk5vMYz.net
言語なによ

927
デフォルトの名無しさん[sage]   投稿日:2017/08/09 16:52:44  ID:dpRGvEHE.net
javascriptωじゃね

928
デフォルトの名無しさん[]   投稿日:2017/08/11 13:57:12  ID:Vbqo8hQM.net
デザパタは覚えたし、クラス図やシーケンス図も読める、クラス図の通り
にコーディングもできるし、だいたい何らかのパターンに当てはめ
ればなんとか動く。
命名規則も全部決めてるからその規則通りに書けば自動的に動く
でも「なんでそうなるの?」って質問されるとさっぱりわからないんだよなぁ…
デザパタに則っていないコードとか、俺と違う命名規則の人が書いた
コードも一切理解不能(無能)。

929
デフォルトの名無しさん[sage]   投稿日:2017/08/11 14:22:23  ID:OJhNtZ6y.net
>604
ただの作業員じゃん(笑)

930
デフォルトの名無しさん[sage]   投稿日:2017/08/11 16:40:01
>604
なんとなくだけど、将棋弱そう

931
デフォルトの名無しさん[sage]   投稿日:2017/08/11 16:48:21  ID:IcABKbyR.net
>604
なんとなくだけど、頭弱そう

932
デフォルトの名無しさん[sage]   投稿日:2017/08/11 17:03:34  ID:4Gx5aAK7.net
IQ90くらいだろ

933
デフォルトの名無しさん[sage]   投稿日:2017/08/11 17:12:35  ID:07jWFZnC.net
そんなに煽ってやるなよ

934
デフォルトの名無しさん[sage]   投稿日:2017/08/11 17:20:22  ID:4bbWTV9L.net
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子が求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

935
デフォルトの名無しさん[sage]   投稿日:2017/08/11 22:22:00  ID:vOciZ7Dc.net
>604
キミは理想のPGだよ。

936
デフォルトの名無しさん[]   投稿日:2017/08/11 23:53:53  ID:VT8Bdzbq.net
>604
いまどきデザインパターン?

937
デフォルトの名無しさん[sage]   投稿日:2017/08/12 05:31:45  ID:mqOU9Lu0.net
オートマ限定免許だな

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

939
デフォルトの名無しさん[]   投稿日:2017/08/12 11:28:43  ID:WyVA8Sgg.net
このスレは初心者スレだったな。

940
デフォルトの名無しさん[sage]   投稿日:2017/08/12 11:55:15  ID:NKT9PAHK.net
>614
どこを縦読み?

941
デフォルトの名無しさん[sage]   投稿日:2017/08/12 14:08:41  ID:D9kn9WR2.net
戦隊もので言えばブラックじゃないですか!
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
羽鳥慎一モーニングショー★3 (947)テレ朝実況
実況 ◆ フジテレビ 84174 (815)フジ実況
実況 ◆ 日本テレビ 56169 (911)NTV実況
ビビット 8/21(月) ★1 (722)TBS実況
連続テレビ小説 ひよっこ★256 (698)NHK実況
NHK総合を常に実況し続けるスレ 137032 スカボローフェア (433)NHK実況
実況 ◆ テレビ朝日 48913 土下座スーパー1 (291)テレ朝実況
おはよう!時代劇 暴れん坊将軍5 #6(第7話)[字][再] (665)テレ朝実況
このスレッドが人気です(ニュース系)
【高校野球】仙台育英・渡部の“足蹴り”が炎上…監督の指示でSNS閉鎖、準決勝スタメン外れる チームメイト擁護「わざとじゃない」 ★12 (485)音楽・芸能ニュース
【話題】クルマ離れどころか“免許離れ”する若者 「大きな買い物は宅配で。車は維持費が大変。使わないものにお金をかけたくない」★9 (1001)ニュー速+
【話題】世の中にあふれる「萌え絵」に生理的嫌悪感を持つ人たち…ポルノまがいのイラスト乱発に「頭が痛くなる」★9 (401)ニュー速+
【たばこ】ベランダ喫煙「煙たい!臭い!」 ホタル族「被害者の会」登録急増 (950)ニュー速+
【高校野球】仙台育英・渡部の“足蹴り”が炎上…監督の指示でSNS閉鎖、準決勝スタメン外れる チームメイト擁護「わざとじゃない」 ★11 (1001)音楽・芸能ニュース
【話題】世の中にあふれる「萌え絵」に生理的嫌悪感を持つ人たち…ポルノまがいのイラスト乱発に「頭が痛くなる」★8 (1001)ニュー速+
【経済】ゲーム専用機「復権」、「スイッチ」の品薄続く (214)ニュー速+
【高校野球】仙台育英・渡部の“足蹴り”が炎上…監督の指示でSNS閉鎖、準決勝スタメン外れる チームメイト擁護「わざとじゃない」 ★10 (1001)音楽・芸能ニュース
プログラム板の人気スレ
ふらっと C#,C♯,C#(初心者用) Part130 (629)
【統計分析】機械学習・データマイニング17 (240)
Excel VBA 質問スレ Part49 (884)
オブジェクト指向システムの設計 173 (199)
Visual Studio 2017 Part3 (92)
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 (502)
次世代言語議論スレ[Go Rust Scala Haskell]第5世代 (904)
スレ立てるまでもない質問はここで 148匹目 (978)
C言語なら俺に聞け 142 (99)
Pythonのお勉強 Part53 (866)
Ruby 初心者スレッド Part 60 (940)
C++相談室 part131 (204)
Xamarin Part5 (436)
本当に必要ものは人工知能ではなくて検索エンジン (365)
Java入門・初心者質問スレ Part.4 (345)
プログラミング言語 Rust 3 (631)
C#, C♯, C#相談室 Part94 (717)
ねねっちと一緒にプログラムを勉強するスレ第2話 (921)
Git 15 (1003)
関数型プログラミング言語Haskell Part30 (903)
☆★Java質問・相談スレッド180★★ (514)
C# vs Java どっちが好き? その3 (617)
Androidプログラミング質問スレ revision53 (765)
Swift part11 (243)
推薦図書/必読書のためのスレッド 81 (905)
「メソッド名」分ける必要なくね?【オーバーロード】 (68)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)