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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2013/03/03(日) 18:10:11.63 .net]
【関連スレ】
3Dアルゴリズム全般
toro.2ch.net/test/read.cgi/tech/1164171086/
<集大成>アルゴリズム大辞典
toro.2ch.net/test/read.cgi/tech/1086272325/
アルゴリズム総合スレ in ム板
toro.2ch.net/test/read.cgi/tech/1217773415/

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

44 名前:デフォルトの名無しさん [2013/09/18(水) 13:39:49.18 .net]
入門 データ構造とアルゴリズム [大型本]
Narasimha Karumanchi (著), 黒川 利明 (翻訳), 木下 哲也 (翻訳)

この本はおすすめですか?

www.amazon.co.jp/dp/4873116341

45 名前:デフォルトの名無しさん mailto:sage [2013/09/18(水) 14:11:03.23 .net]
>>44 が何者かによる。学生さんならいいんじゃない?プロならう〜ん…個人的にはいらないかな(買わなかった)

46 名前:デフォルトの名無しさん mailto:sage [2013/09/18(水) 19:27:36.43 .net]
>600弱の練習問題とその解
・・・w

47 名前:デフォルトの名無しさん [2013/09/18(水) 23:07:49.85 .net]
プログラミングの宝箱っていう本、誤りが多すぎる。
なんで売れているの?

48 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 16:31:47.20 .net]
真の宝の周りにはたくさんの偽りの情報が紛れているものさ

49 名前:デフォルトの名無しさん mailto:sage [2013/09/21(土) 16:58:27.85 .net]
世の中、見た目で判断する人が多いから

50 名前:デフォルトの名無しさん mailto:sage [2013/09/22(日) 10:28:15.10 .net]
見た目は大事

51 名前:デフォルトの名無しさん [2013/09/22(日) 20:22:12.39 .net]
プログラミングの宝箱っていう本、見た目がいいの?
見た目がいいってどういうこと?

52 名前:デフォルトの名無しさん [2013/09/22(日) 20:24:16.43 .net]
杉原厚吉のデータ構造とアルゴリズムの本ってソートのプログラムも
載っていないんだね。だめだめ。



53 名前:デフォルトの名無しさん [2013/09/22(日) 20:25:25.63 .net]
セジウィックの本もどこがいいのか分からない。
プログラムが読みにくいし。

やっぱりクヌースの本が一番いいのかな。

54 名前:デフォルトの名無しさん [2013/09/22(日) 20:27:01.59 .net]
>>47
その本、クイックソートのプログラムが間違っているよね。

55 名前:デフォルトの名無しさん mailto:sage [2013/09/22(日) 21:23:03.07 .net]
>>47
そもそも売れてるの?

56 名前:デフォルトの名無しさん [2013/09/22(日) 22:06:44.18 .net]
ソフトバンククリエイティブの本っていい加減な本が多いような気がする。

57 名前:デフォルトの名無しさん [2013/09/22(日) 22:11:29.25 .net]
ところでアマゾンのランキングって何のランキングなの?
たとえば、アルゴリズムの本のランキングを見るとどう見ても売れていない
ような絶版の中古本がランクインしていたりする。

58 名前:デフォルトの名無しさん [2013/09/22(日) 22:14:08.27 .net]
ところで、MITのOpen Coursewareで勉強している人はいない?

59 名前:デフォルトの名無しさん [2013/09/22(日) 22:16:07.27 .net]
柴田望洋のアルゴリズムとデータ構造の本、レベル低すぎ。
なんなの望洋ってw

60 名前:デフォルトの名無しさん mailto:sage [2013/09/22(日) 22:17:15.56 .net]
>>58
どのコース?

61 名前:デフォルトの名無しさん mailto:sage [2013/09/22(日) 22:17:59.43 .net]
見慣れない本質不必要な単語が頻出するから
講義系のテキストは却下だな

62 名前:デフォルトの名無しさん [2013/09/22(日) 22:29:45.56 .net]
まだ下の上二つを見始めたところです。英語はよく分かりませんが、板書を見て大体
分かります。見ている(見た)人がいたら質問とか今後すると思うのでお願いします。

Pythonによるプログラミングの入門の講義。レベルが低い。
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/

コンピューターサイエンスのための数学。レイトン教授が最高に面白い。
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/

まだ見てないけど、和田英一が訳した有名な教科書の著者の講義。まだ見ていない。
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/

アルゴリズム入門2005年。まだ見ていない。リベストらの有名なアルゴリズムの教科書の著者が講義。
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/

アルゴリズム入門2011年
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/



63 名前:デフォルトの名無しさん mailto:sage [2013/09/22(日) 22:49:56.98 .net]
>>62
アルゴリズムの講義なら Coursera や Udacity あたりに新しいのがいっぱいあるぞ。セジウィックが講義してるのもあるし。
https://www.coursera.org/courses?orderby=upcoming&search=algorithms

そういう自分も Coursera の前は>>62の最後のコースでアルゴリズム勉強したわ。
古いからちょっと画面が小さいんだよねー。

64 名前:デフォルトの名無しさん [2013/09/22(日) 22:54:12.17 .net]
>>63
情報ありがとうございます。そっちも視野に入れたいと思います。

65 名前:デフォルトの名無しさん [2013/09/26(木) 13:01:06.57 .net]
死ねゴミ共がw
死ねゴミ共がw

66 名前:デフォルトの名無しさん [2013/09/28(土) 06:46:14.59 .net]
オライリーから出たインド人のアルゴリズムとデータ構造の本、最悪。

説明もほとんどなしにコードと問題が載っているだけ。

買ってはいけない。

67 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 16:59:53.64 .net]
>>66
コードと問題が説明になっているのだろう。

68 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 17:57:20.08 .net]
あれは演習問題集だから…

69 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 18:16:31.35 .net]
資格勉強に役立つ?

70 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 18:28:54.24 .net]
就職や昇級に反映されるなら役立つ
そうでなければ趣味

71 名前:デフォルトの名無しさん mailto:sage [2013/09/29(日) 12:57:58.61 .net]
アルゴリズムやデザインパターンって公式的に覚えてしまったら、
中身がどうなっているかどうか知っていようといまいと生産性は変わらない。
ただ中身を知っていると、何かトラブルが起きたり、
それらを組み合わせて新しいことを覚えなくてはいけないときに差が出てくる。
が、今時はそういうことはかなり稀なので、機械的に覚えてしまって、
さっさと人を使う立場になってしまう方が悩まなくていいかも。

72 名前:デフォルトの名無しさん mailto:sage [2013/09/29(日) 15:55:56.14 .net]
>>71
トンチンカンなこと言ってるぞ? ライブラリレベルまで落とし込まれているような
アルゴリズムならともかく、デザインパターンは公式的に覚えて使えるもんじゃ
ないぞ。中身の実装方法はともかく、GoFのデザインパターンですら、複数
組み合わせて使うのが普通なのに。



73 名前:デフォルトの名無しさん mailto:sage [2013/09/29(日) 15:59:49.30 .net]
effective javaのいってんじゃねーの
俺ってやさしい

74 名前:デフォルトの名無しさん [2013/10/02(水) 01:48:18.78 .net]
>>66
君、アマゾンのレビューを書いた人?
星一つしかついてなかったw

75 名前:デフォルトの名無しさん mailto:sage [2013/10/02(水) 06:46:43.90 .net]
率直に言って、C++という言語はデータ構造を分からせるのには向かない。
内容は時間的/空間的計算量という評価に徹してデータ構造とその読み出し方を
解説したもので、むしろ優れた本だと思う。

76 名前:デフォルトの名無しさん [2013/10/02(水) 08:06:05.95 .net]
>>75
普通の大学で使うような教科書のほうがいいと思う。
エイホ・ホップクロフト・ウルマンのアルゴリズムとデータ構造とか
MITの教科書とか。

77 名前:デフォルトの名無しさん mailto:sage [2013/10/02(水) 08:33:04.43 .net]
Ahoの本は良いな
はずれがない

78 名前:デフォルトの名無しさん [2013/10/02(水) 09:11:06.55 .net]
クヌースの本も読んだほうがいい?
クヌースの本はプログラマ必読の書らしいけど

79 名前:デフォルトの名無しさん [2013/10/02(水) 11:01:55.61 .net]
>>78
全部読むのは難しいんじゃないですか?
アルゴリズムの解析の部分は難しいし、実益が少ない。
アルゴリズムの手順だけ読むくらいでいいのでは?

あと新しいアルゴリズムが書かれていないらしい。

80 名前:デフォルトの名無しさん mailto:sage [2013/10/02(水) 11:55:09.13 .net]
クヌース(ブルース風に)

81 名前:デフォルトの名無しさん mailto:sage [2013/10/02(水) 19:03:31.81 .net]
クヌースは古典だな
読むか読まないかなら、もちろん読んだ方がいいが

>>79
新しいアルゴリズムは論文読むしか

82 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 10:30:06.56 .net]
クヌース ホシーイ ケレード
ゼパーン ニナーテ ルヨーネ
シカータ ナイカーラ エイーゴ
デヨンデール 



83 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 14:33:48.67 .net]
>>79
ところで新しいアルゴリズムてどんなの?
遺伝とかならいらないけど

84 名前:デフォルトの名無しさん [2013/10/03(木) 19:57:54.46 .net]
>>83
すみません。よく知りません。

擬似乱数を生成するメルセンヌツイスターが載っていないって、
考案者が文句言っていたのは知っています。

85 名前:デフォルトの名無しさん [2013/10/03(木) 20:17:33.09 .net]
クヌースの本は要約版が1冊になって出版される予定だけど、実現しないだろうね。
というかThe Art of Computer Programming自体が完成しないか。

既刊の第4巻はおもしろそう。

86 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 09:08:51.46 .net]
わざと初等的な証明をつかってるから
無駄にめんどくさいね。
群とか環とか使えば良いのにっておもうよ。

87 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 09:12:18.81 .net]
self containedになっているのだろう

88 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 09:07:45.97 .net]
>>84
あの膨大な本の中の、たった一つのテーマだからね。

89 名前:デフォルトの名無しさん [2013/10/07(月) 20:33:21.18 .net]
C++のメソッドの呼び方で質問です。

サブクラスからサブクラスを呼ぶときに、スーパークラスを無視した以下の書き方はオブジェクト思考的には違反でしょうか?
void AppDerived::method(){
(static_cast<DetailDerived*>(ptr))->func();
}

スーパークラス(AppBase)のヘッダにmethod()を追加したり、なるべくさわりたくないので上記の方法を思いつきました。



クラスの繋がりは以下の通りです。

class AppBase{
DetailBase* ptr;
}

AppBase ◆− DetailBase
AppBaseとDetailBaseはコンポジット関係です。

class AppDerived : public AppBase{
void method()
}

class DetailDerived : public DetailBase{
void func()
}

90 名前:89 [2013/10/07(月) 23:01:02.14 .net]
補足です。

void AppDerived::method(){
ptr->func();
}

class DetailBase{
virtual void func(){ return; }
}

上記の方法を避けたいための方法です。

91 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 23:12:12.86 .net]
>>89
>オブジェクト思考的
は関係ないね,、C++の実装としてだろう

92 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 00:52:45.41 .net]
>>89
その派生クラス同士の関係性によってはアリな場合もあるんだけど、 一般的には無しだね。
基底クラスを触りたくないからと言うのは全く理由にならないと思うよ。



93 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 10:05:07.76 .net]
>>89
AppBaseがコンポジションするDetailBaseはPublicやProtectedってことでしょ?
それなら派生クラスから弄られることを想定しているってことになるから
AppDerivedのMethod()で新しくDetailDerivedを保持し直したらいいんじゃないの?

Privateなら基底クラスでしかDetailBaseを弄らないのだから
AppDerivedのMethod()内でのみ使用するためにDetailDerivedのインスタンス生成すりゃいいんじゃないの?

>>90の方法を避けたいってのは、AppBaseがDetailBaseをコンポジションしてポリモーフィズムするのを
否定しちゃってんじゃないの?コンポジションしている意味が無くならない?

94 名前:デフォルトの名無しさん [2013/10/09(水) 18:19:09.59 .net]
プッw

95 名前:デフォルトの名無しさん mailto:sage [2013/10/10(木) 07:27:16.17 .net]
クサッ

96 名前:デフォルトの名無しさん mailto:sage [2013/10/10(木) 07:54:38.65 .net]
すまん

97 名前:デフォルトの名無しさん mailto:sage [2013/10/10(木) 08:38:38.27 .net]
おまえかよ

98 名前:デフォルトの名無しさん mailto:sage [2013/10/10(木) 18:02:10.65 .net]
このように他人(主に女の子)の汚名を代わって受けるのがイケメンパターン

99 名前:デフォルトの名無しさん [2013/10/12(土) 18:05:18.38 .net]
死ねゴミ共がw
死ねゴミ共がw

100 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 21:43:22.30 .net]
落ち着け

101 名前:デフォルトの名無しさん mailto:sage [2013/10/13(日) 14:04:12.97 .net]
ある順序列Aとそれに含まれる一部の要素からなる順序列Bがあるとき、
Bの順序を満たし、かつAから「変化が少ない」順序列Cを得たい。

A: [ 1 2 3 4 5 ]
B: [ 4 3 ]
C: [ 1 2 4 3 5 ]

「変化が少ない」の基準は必ずしも特定しないが、一例として「各要素の
移動距離の二乗和が小さい」などが考えられる。

ここで、近似解でよいので計算量の少ないアルゴリズムが欲しいのですが、
使えそうなアルゴリズムがあったら、ググるキーワードを教えてください。

102 名前:デフォルトの名無しさん mailto:sage [2013/10/13(日) 14:24:30.97 .net]
要素の重複とかあるの?



103 名前:デフォルトの名無しさん mailto:sage [2013/10/13(日) 14:29:12.64 .net]
>>101
> 「変化が少ない」の基準は必ずしも特定しないが、一例として「各要素の
> 移動距離の二乗和が小さい」などが考えられる。

これに激しく違和感を感じるけど、

> ここで、近似解でよいので計算量の少ないアルゴリズムが欲しいのですが、

近似解でいいならGAが楽じゃね?

104 名前:デフォルトの名無しさん mailto:sage [2013/10/13(日) 15:28:06.54 .net]
Aを走査していき、Bにも含まれる要素に当たったら、Bの要素順で置き換える
……だと変化が大きいのかもしれないのか

105 名前:101 mailto:sage [2013/10/13(日) 16:04:56.10 .net]
>>102
重複はない前提です。

>>103
その基準のところも、なにか使えそうなものがあれば調べてみたいと思いますが。
ところで、どういうところで違和感を感じるでしょう?

>>104
Bの並びによっては団子になってしまいそうですが、確かに計算量は非常に
少なそうですね。

106 名前:デフォルトの名無しさん mailto:sage [2013/10/13(日) 16:45:07.14 .net]
>>105
順列と最小二乗って、同じ目的で使って嬉しくなる数学的根拠があるのかな、と思って。
置換の数で距離を測るのが一般的かな?とか。
感覚的な意見で申し訳ないけど。

107 名前:デフォルトの名無しさん mailto:sage [2013/10/13(日) 17:11:59.64 .net]
感覚的なものなのでそこはあまり根拠はないですが、移動距離が大きくなるにつれて
ペナルティは増大するほうがいいのかなと。
ただまぁ、ひとつの要素が移動すればその距離に応じて他の要素もずれるわけなんで、
移動距離の総和とかあるいは単純に移動した要素の数でもいいかもしれないですね。
順序の距離とか順列間の距離とかで探したらいくつか距離の定義が見つかりました。

108 名前:デフォルトの名無しさん [2013/10/14(月) 09:57:46.64 .net]
死ねゴミ共がw

109 名前:デフォルトの名無しさん mailto:sage [2013/10/14(月) 10:21:17.60 .net]
落ち着け

110 名前:デフォルトの名無しさん [2013/11/03(日) 22:41:37.52 .net]
グーグルのアルゴリズムコンテストとか受けてるやついる?

111 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 20:09:19.22 .net]
全要素の値を0で初期化した要素数nの一次元配列にたいして、
ランダムに選んだm (< n) 個の要素のみ値を1にした配列を作りたいです。

次の方法を考えました。

1. 先頭からm個の要素の値を1に、残りの要素の値を0にした配列を用意する。
2. その配列に対して Fisher-Yates shuffle を施す。

これよりも実行速度において効率的な方法はあるでしょうか。
(並列化を利用して効率よくする方法もアリです)

ただ、できるだけ偏りは無くしたいです。

112 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 20:13:31.20 .net]
nとmをどれくらいに想定してるのさ



113 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 20:56:55.33 .net]
>>112
n は 1000000 くらい

m は 1000 log 1000 くらいなので、だいたい 7000 弱程度です

114 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 20:59:21.68 .net]
(その程度だと、どんな馬鹿なアルゴリズムでも一瞬で終わる処理だと思うが、何らかの効率的アルゴリズムが欲しい理由でもあるのかも……)

115 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 21:24:13.39 .net]
>>114
もっと巨大な配列なら、より効率的な方法があるのでしょうか。

どんな方法か知りたいです。

116 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 22:58:36.70 .net]
>>115
くじ引きと同じ論法でO(N)で作れるだろ

117 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 07:10:30.69 .net]
>>116
それって、1000000個の重複のない数列から7000個を取り出すんだろ?
重複のないくじを作るのに結局シャッフルがいるんじゃないのか?

だったら、やってることは>>111と同じだと思うが

というか、>>111だってシャッフルはO(N)なんだから、
そもそも質問の意図もよう分からんが

118 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 07:44:36.62 .net]
>>117
シャッフルは要らない。n本のくじの中にm本の当たりがある場合と同じ。
それを配列番号1からn番まで引く。くじ引きは何番目に引こうが当たりが出る確率は等確率。
>>111も確かにO(N)だな。ソートと勘違いしてた。
だけどくじ方式の場合は逐一頭から取り出す場合は配列を用意する必要はないし、
必要な分だけ計算すればいい。

int array[n];
for (size_t i=0; i<n; ++i) {
bool hit = m/(n-i)の確率のrand;
if (hit) {
--m;
array[i] = 1;
} else {
array[i] = 0;
}
}

119 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 13:06:53.22 .net]
偏りをなくしたいということは低周波成分をなくしたいということかな?
すなわち、1が連続したり、なかなか出なかったりするのを無くすということ。
だったら乱数を使うのは誤り。

120 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 20:29:44.62 .net]
>>118
すごいですね、その発想は出てこなかったです。
簡単な例で図を描いて確かめてみましたが、みんな当たる確率は同じになりました。

Fisher-Yates shuffle でやるより断然スジがいいです。
採用させてもらいます。


>>119
たしかに、1 や 0 があまりに連続しているの好ましくないです。
その場合、乱数を使わずにどうやるのでしょうか。

1 か o かを選ぶのに乱数を使うのではなく、もっと別のところで使うという意味でしょうか。
それとも、全くどこにも使わないのでしょうか。

121 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 21:16:46.95 .net]
>>120
乱数から低周波成分を除去した数列を使います。別名ブルーノイズ。

配列を参照するだけなので超高速で偏りの無いパターンを作ることができる。
100万個から7000個を選んでも1が連続する確率は0。規則性もなし。
ブルーノイズ数列の一部をとってもブルーノイズ数列。使い回しができる。

欠点として1回はブルーノイズ数列を作る必要があるが時間がかかる。100万個
の数列だと1時間くらいかかる。一回作ってファイルに保存しておけばOK。

122 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 21:23:07.46 .net]
>>120
不思議に思ったんだがひょっとして
配列の全要素の初期値って不定扱いなのか?
なら>>118を採用する理由もわかるが



123 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 22:01:24.83 .net]
言語にもよるけど、int 型なら多くの場合0じゃない?
で気づいたけど、1 か 0 しか入らないなら bool 型でいいんじゃないか?メモリもグッと節約できる。

124 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 22:12:20.58 .net]
>>122
いえ、今回は、必ず何らかの値で初期化される、という種類のデータ構造(配列)を使っています。
(言語的は初期値として未定を表す値を指定できる配列も簡単に作れますが、
今回は意味ないので、そのような配列は使っていません)

>>118を採用しようと思ったのは、配列の頭から順に要素をトラバースしながら、
その要素のみを参照して値を設定していけるという点がシャッフルに比べて優れていると思ったからです。
要するに、データ構造そのものをどんどん大きくしながら作っていけます。

シャッフルも Fisher-Yates shuffle でしたら順にトラバースしますが、
その要素と、別のランダムに選んだ要素を参照しなければならず、
シャッフル処理をする前にデータ構造が完全に出来上がっていなければなりません。
その上で要素をスワップしていきます。

じつはプログラミング言語はCではなくHaskellを使っており、Haskellでは後者より前者のように、
値を入れた要素を次々と繋げながらデータ構造を(目的の規模まで)大きくしていく方が
プログラムしやすいんです。

>>123
すいません、0 と 1 を使ったのは単に質問をシンプルにするためでした。
本当は、質問で 1 を入れるところでは min < x < max のランダムな浮動小数点を入れます。

そもそもの目的をぶっちゃけますと、ランダムな重み付き有向グラフの隣接行列を作ることです。

125 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 22:14:23.54 .net]
>>124
> >>118を採用しようと思ったのは、配列の頭から順に要素をトラバースしながら、
> その要素のみを参照して値を設定していけるという点がシャッフルに比べて優れていると思ったからです。

すいません、ちょっと言い方がおかしいですね。

配列の頭から順に要素をトラバースしながら、ではなくて、順に配列を大きくしながら、
とか、配列を組み上げながらと言うべきでした。

126 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 22:23:35.67 .net]
>>121
申し訳ないです、そこまで強力なものは今回は求めていないです。
あまりに偏りすぎていると使えないな、という程度のことでした。

しかし、これはこれで大変興味深いです。
ホワイトノイズやピンクノイズなどは聞いたことがありますが、ブルーは初耳です。
調べてみます。

127 名前:122 mailto:sage [2013/11/19(火) 22:35:24.77 .net]
なるほど納得

非零要素を一次元上(あるいは二次元とか)に並べて
それを仮想電子のようにみなし仮想クーロン斥力みたいなの計算して
要素番号補正したらとか考えてたんだが
それだと逆に傾向出ちゃうか

値を入れた同じ行、同じ列に対して再度選択を阻害するパラメーターを入れて
云々かんぬん…いかん、わけがわからくなってきた
逃走っ(しゅたたた…)

128 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 22:54:30.96 .net]
やってみましたら、たとえ Haskell であっても、
>113 程度の規模ではシャッフルでもくじ引きでも、あっという間でした。

>>114 の指摘通りで、かなり恥ずかしいです。
憶測で遅いと決めつけず、質問する前に試すべきでした。

プログラムの見やすさが抜群に良いという点で、くじ引きの方法でやることにします。

みなさん、ありがとうございました。

129 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 04:14:03.66 .net]
Edmonds's Blossom Algorithmを詳しく説明していただけないでしょうか

130 名前:デフォルトの名無しさん mailto:sage [2013/12/14(土) 23:50:45.85 .net]
二次元座標に、ラベル(高さ固定、横書き)を 重ならないように配置したいです。


現在は、y軸をラベル高さで分割して、
各領域で、ラベルが指定座標を含むように左側から詰めて配置しています。

この方法だと、3点以上集中すると、大きくずれてしまいます。


どのようなアルゴリズムがありますでしょうか?
また、動的生成なので、優先順位は コスト > 見栄え です。

131 名前:デフォルトの名無しさん mailto:sage [2013/12/15(日) 02:57:49.26 .net]
>>130
ある点を矢印で示すようなラベルなら多少点から離れてもいいよね
それなら幾らでもやり方はあると思うよ
例えば、点や四角(ラベル)の当たり判定で配置

132 名前:デフォルトの名無しさん mailto:sage [2013/12/15(日) 12:12:29.22 .net]
>>131
おっしゃる通り、多少離れるのはかまわないです。

>点や四角(ラベル)の当たり判定で配置
ラベルの矩形の判定はやってみたのですが、
どの方向にずらすべきかのところで詰ってしまいました。

結果、上記のx軸+方向のみ補正な方法になってしまいました。


何かヒントがいただけたらと思います。



133 名前:デフォルトの名無しさん mailto:sage [2013/12/15(日) 15:32:28.35 .net]
>>132
そういったアルゴリズムを組んだことはないけど

ラベルの矩形が重なった時
指し示す点とラベルの四隅の点との距離が一番短いラベルの点を選出し
最初に、2点間の傾きを保ちならがら、そのラベルが指し示す点との距離を縮めて
縮めた際に2点間の距離が0になっても矩形が重なっているなら2点間の傾きを変える
目安となる距離と傾きの初期値を設定しておけばいいかな
傾きの初期値はラベルの4隅それぞれ、回転して考える

判定する矩形の4隅の点を左下にのみ、指示す点の45度右上の傾きにラベルを固定してしまってもいいかもね

机上の空論だから上手くいくかどうか分からないのは許してね
難しく考えすぎているのかもしれないわ

134 名前:デフォルトの名無しさん mailto:sage [2013/12/16(月) 00:06:30.24 .net]
こういう事ができればいいんでしょ

ja.wikipedia.org/wiki/%E5%8A%9B%E5%AD%A6%E3%83%A2%E3%83%87%E3%83%AB_(%E3%82%B0%E3%83%A9%E3%83%95%E6%8F%8F%E7%94%BB%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0)

キーとなるのはここ
>グラフの頂点と辺に仮想的な力を割り当て、力学的エネルギーの低い安定状態を探す
>それぞれの辺をフックの法則にしたがうばねとみなし、それぞれの頂点をクーロンの法則にしたがう電荷をもつ粒子とみなす。

自分が以前勉強した時はgrineditっていうオープンソースソフトが解りやすかった

135 名前:デフォルトの名無しさん mailto:sage [2013/12/16(月) 21:53:44.96 .net]
力学エネルギーに基づくグラフ描画が求めていたもののようです。

まとまった時間を作って、出ているアルゴリズムを読んでみます。

お付き合いしてくださった皆様ありがとうございました。

136 名前:デフォルトの名無しさん [2013/12/28(土) 23:22:37.13 .net]
グーグルの検索エンジンのアルゴリズム
webblogsakusei.main.jp/seo_taisaku_syukyaku.html

137 名前:デフォルトの名無しさん [2014/01/17(金) 16:44:24.77 .net]
ふぇぇ」

138 名前:デフォルトの名無しさん mailto:sage [2014/01/19(日) 15:03:35.30 .net]
計算量のオーダーの考え方で質問です。

(a # b) を a の b 個の下降階乗冪を表す式とし、
(#) は除算 (/) よりも優先順位が高いとします。

x や y は m よりも十分大きい数とすると、

f(m) = x#m / y#m

この場合、計算量のオーダーは O(m) と考えていいでしょうか。

139 名前:デフォルトの名無しさん mailto:sage [2014/01/19(日) 22:30:57.31 .net]
ダーク構造、エルゴリズム、ディザインパクトに見えたマジで。

140 名前:デフォルトの名無しさん mailto:sage [2014/01/20(月) 22:08:25.07 .net]
下記の問題について、私が考えた方法では計算量が n 乗のオーダーになってしまい、
たいして大きくない数で試しても計算にかなり時間がかかるのですが、
みなさんならどのような解き方をするでしょうか。

[問題]
m 枚のカードの束からランダムに x 枚引き(x <= m)、引いたカードに印をつける。
引いたカードを元のカードの束に戻し、再度ランダムに先ほどと同数 x 枚引き、
印がついていなかったら印をつけ、また元の束に戻す。
このように x 枚カードを引いて印を付けて戻す行為を n 回繰り返した後、
m 枚のカードの束に印のついていないカードが p 枚ある確率を求める関数 F(m, x, n, p) を作れ。

141 名前:140 mailto:sage [2014/01/20(月) 22:09:20.78 .net]
[私の考え]
全体の事象は、{C(m,x)}^n です。(関数 C(a,b) は組み合わせ aCb)

m 枚のカードから x 枚引く行為を n 回繰り返した後に結局
p 枚無印で残る引き方のパターン数を求める関数 R(m, x ,n, p) は漸化式で、
R(m, x ,n, p) = Σ[i=0..x]{ R(m, x, n-1, p+i) * A(m, x, p+i, p) }

ただし、
n = 1 かつ p = m-x ---> C(m, x)
(n = 1 かつ p ≠ m-x) または (n >= 2 かつ p > m-x) ---> 0

ここで関数 A(m, x, p, q) は、p 枚無印で残ってた状態を q 枚無印で残るようにするような、
m 枚のカードからの x 枚のカードの引き方のパターン数で(q <= p)、
A(m, x, p, q) = C(m-p, x+q-p) * C(p, p-q)

よって、F(m, x, n, p) = R(m, x ,n, p) / {C(m,x)}^n です。
これをこのまま素直にプログラムコードにしています。


[欠点]
関数 R の計算量がざっと O(x^n) です(本当は他の変数もオーダーに関わってますが)。

分割統治でやってるのだからマルチコア使って並列処理できるのですが、
もっと根本的にアルゴリズムを改善したいです。

142 名前:デフォルトの名無しさん mailto:sage [2014/01/20(月) 22:18:46.73 .net]
ちょいと質問だけど、有理数で計算してるの?



143 名前:140 mailto:sage [2014/01/20(月) 23:12:18.37 .net]
>>142
私は、関数 R と D と {C(m,x)}^n の計算は任意精度整数で、
関数 F 内の割り算は有理数型で、
そして最後にそれを倍精度浮動小数点型にしています。

144 名前:デフォルトの名無しさん mailto:sage [2014/01/20(月) 23:44:20.55 .net]
これってアルゴリズムの問題じゃなくて数学の問題じゃね?
オイラーのガンマとか関係してそうだけど。数学できるやつならパパっと式が出てくるんだろうな。
残念ながら僕は数学ができたという過去形なので無理です。

145 名前:デフォルトの名無しさん mailto:sage [2014/01/21(火) 00:23:40.46 .net]
F(m,x,n,p)=C(m,p)*{C(m-p,x)/C(m,x)}^n ?

146 名前:140 mailto:sage [2014/01/21(火) 00:24:59.04 .net]
>>144
わたしも、これを代数的に解く方法は知らないのでプログラムで解こうと思いました。

プログラムで解く場合に n 乗よりも低いオーダーのアルゴリズムが存在しないのなら諦めます。

今のところ私が挑戦した限りでは、n 乗のオーダーが限界でした。

147 名前:140 mailto:sage [2014/01/21(火) 00:42:19.10 .net]
>>145
それは違います。

例えば F(4, 2, 2, 1) で計算してみてください。
つまり、4枚のカードから2枚ランダムに引くことを2回繰り返して、
一回も引かれなかったカードが1枚存在する確率です。

本当は 2/3 ≒ 66% です。
しかし >>145 で計算すると 1/1 = 100% になってしまいます。

148 名前:デフォルトの名無しさん mailto:sage [2014/01/21(火) 01:34:30.52 .net]
>>145
C(m,p) で選んだp枚に対し、m-p枚からx枚選ぶ過程が一意でなく重複が入ってるから×だな

149 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:15:00.72 .net]
a[0]からa[n-1]までの配列があって、
その中身をコンマで区切って表示したい

print a[i] + ','

みたいなことをすると、最後の要素にもコンマが付くので、
これをうまく避けるアルゴリズムは無いものか

150 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:50:00.15 .net]
if (a=next()) { push(a); while (a=next()) push(cat(",",a)); }

151 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 21:02:09.78 .net]
for (int ic = 0; ic < n; ++ic) {std::cout << a[ic]; if (ic < n - 1) std::cout << ',';}

152 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 21:15:03.01 .net]
出力してしまわずに一旦文字列に出して、
出来上がってから最後のコンマを1個削る



153 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 21:30:32.04 .net]
n が小さければ >>151 の方法でOK。シンプルでわかりやすい。
ただし、if 文で n 回の比較が発生するから、n があまりに大きい場合は >>152 のやり方がいいと思う。

最後の文字を削れない場合は for 文で a[n-2] まで ',' と一緒に出力して、追加で a[n-1] を出力するか。

>>150 は何の言語?

154 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 21:35:58.74 .net]
最初の要素と残りの配列に分ければいいだろと、Haskell なら考える

155 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 22:35:19.83 .net]
分ければ簡単なんだけど、同じような処理を2回書く羽目になるんだよな

156 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 22:38:32.60 .net]
>>149
puts a[0..n-1].join('.')

157 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 22:49:27.58 .net]
結局、うまい方法が無いので言語側で join 機能を提供している
join があるならそれを使うのが最もスマート

158 名前:SD mailto:sage [2014/02/01(土) 15:47:33.85 .net]
String d=""
String r="";
for(String b:a){r+=d+b;d=",";}

159 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 16:20:22.09 .net]
コンマが先にあると考えて、先頭のコンマを削除する方式だな
毎回同じ値で更新するのが美しくない

160 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 16:50:11.43 .net]
if(0<a.length)print(a[0]);
for(int i=1;i<a.length;i++)print(','+a[i]);

161 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 17:23:17.66 .net]
それが正解だろうな
lengthが2回出てくる以外は殆ど無駄がない

162 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 17:47:07.99 .net]
printの部分が長いコードなど2つに分けたくない事情があるときは>>158の方がいい。
定数へのポインタを代入するだけなので効率も悪くない。



163 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 18:04:45.52 .net]
長くなくても、似た出力が2箇所あるのは嫌だな
コンマ部分だけ出力が別にあるのは構わないけど

str = a[i]; if (i < n - 1) {str += ','}

こうすれば一箇所
>>151とほぼ同じ

164 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 18:09:57.02 .net]
俺もかつては悩んだがあるとき以降はずっとこう書いてる。
for (int i = 0; i < a.size; i++) {
if (i != 0) print(,)
print(a[i])
}

165 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 18:53:19.10 .net]
俺ならdo-whileの条件文にカンマ出力ねじ込んで軍事法廷に召喚される

166 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 19:42:53.65 .net]
>>164
for (int i = 0; i < a.size; i++) {
print(a[i])
if (i < a.size - 1) print(,)
}

最初だけコンマを付けない、よりは最後だけコンマを付けない、の方が
人間が理解しやすいような
ただ、条件文が読みにくい

167 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 19:46:34.49 .net]
は?

168 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 19:48:28.34 .net]
二個目以降はカンマがつくよ、であり読みやすい。
しかも、ループごとの状態がたとえば[a, b, c]のとき、
0: a
1: a, b
2: a, b, cとなっておりどの状態も気持ちいい。

後カンマ方式だと、
0: a,
1: a, b,
2: a, b, cとなり、0と1の状態が気持ち悪い。

169 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 21:03:39.16 .net]
それはただのバグだな

170 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 23:11:17.91 .net]
関数型の発想で命令型のコードを導く手順
(1) 最初は組み込みメソッド join を使って簡潔に書く(>>156,157)
 puts xs[0..n-1].join(', ')
(2) joinの代わりに畳み込み(fold)であるメソッド inject で書き直す
 puts xs[0..n-1].inject('') { |ys, x|
   if ys.empty? then x.to_s else ys << ', ' + x.to_s end
 }
 # docs.ruby-lang.org/ja/2.1.0/class/Enumerable.html#I_INJECT
(3) これを命令型へ書き換えることを考える
  まず(2)では先頭要素であるか否かを累積変数 ys が空か否かで判断している
  この累積変数の代わりに、先頭か否かを表すフラグ is_first を使う
 is_first = true
 for x in xs[0..n]
   if is_first
     printf x.to_s
     is_first = false
   else
    printf ", %s", x.to_s
   end
 end
 printf "&yen;n"
ここまで展開すれば、これをたとえばC言語へ移植することも容易いだろう

171 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 23:18:11.99 .net]
>>168
この考え方、感じ方は大事だね
例えば、これを範囲を指定してコンマ区切りの文字列を返す関数にしたら
前者ならすんなり行く

172 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 00:01:46.64 .net]
テキストエディタでコンマ区切りのデータを編集する時に、
どうしてもコンマが余ったり足りなかったりする



173 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 00:49:30.38 .net]
print (xs[0])
for x in (xs[1..n])
 print (", " + x)
では間違い?

174 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 01:00:24.64 .net]
例えばファイルへの出力に変更した時に、
複数箇所のprintを直して回らないといけない

175 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 01:07:52.48 .net]
バカ?

176 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 01:15:24.41 .net]
>>173
もし言語がRubyであるならば、以下の問題がある
(1) 最後のendが抜けている(これは、おそらくtypoだと思う)
(2) メソッド print は実行のたびに改行するから、期待する結果とは一致しない
(3) (2)の対策として print の代わりに printf を使ったとしても、
 もし xs が空であると xs[0] の値は nil になるから、
 メソッド printf の実行が引数エラーになる
 (メソッド仕様上、printf の第一引数は文字列であるべき)

177 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 01:21:27.65 .net]
ぷーん

178 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 01:34:06.21 .net]
>>176
ネタにしてはつまらんし、素なら悲しい。

179 名前:デフォルトの名無しさん [2014/02/02(日) 08:15:43.49 .net]
for(i=0;i<n;i++) printf((i==0)?"%d":",%d",a[i]);
または,
for(i=0;i<n;i++) printf("%s%d",(i==0)?"":",",a[i]);

int a[]; としてるけど.

180 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 08:40:42.33 .net]
出力するぎりぎりまで判断を遅延するのが賢いので、
文字列に修飾子としてコンマの追加の条件文を書けるような言語なら綺麗に書ける筈
三項演算子はそれに一番近い

181 名前:151 mailto:sage [2014/02/02(日) 21:14:08.47 .net]
for (int ic = 0; ic < n; ++ic) {if (ic > 0) std::cout << ','; std::cout << a[ic];} // 宗旨替え

182 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:06:18.13 .net]
前にコンマが付いてると見るか後にコンマが付いてると見るかは、
完全に相対的なので、どっちでも等価

セパレータだと思えば前だし、エンドマークだと思えば後
文末のセミコロンが本当は行の区切りだと判ってる人には、
後にコンマが付くのが基本で、例外的に外しているという考えに近い筈



183 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:40:01.64 .net]
エンドマークだぁ??
例外的に外すという考えだぁ??

カンマは区切りっしょ。
CSV形式という文化はずーっと前からあるように。
Comma Separated Valuesだぞ?

184 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:55:38.64 .net]
イタリヤコンマ

185 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 19:57:58.39 .net]
pascalで最後の行だけはセミコロン付けてはならんというルールに律儀に従っていればいい

186 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 20:21:35.73 .net]
ターミネータとセパレータの違いだ

187 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 21:22:48.71 .net]
コンマタレブー

188 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 11:44:16.71 .net]
Cは最後のやつにもセパレータ付ける文化。

189 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 12:49:17.86 .net]
じゃなくて、最後に(も)付くのがターミネータで、
C言語のコンマのように、最後には付かないのがセパレータ。

ついでに言うと、C言語においてセミコロンは、式文やdo-while文みたいな、
「一部の文の」ターミネータ。あと for の頭部でセパレータとしても使われてる。

190 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 23:08:20.67 .net]
単に空文の存在を許容してるだけ

191 名前:デフォルトの名無しさん mailto:sage [2014/02/08(土) 10:34:10.24 .net]
違う。

C言語において「空文」は、「空文字列にセミコロンが付いたもの」だよ。

192 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 00:14:12.54 .net]
違う。

C言語において「空文」は、「セミコロンだけの文」だよ。



193 名前:デフォルトの名無しさん [2014/02/10(月) 17:16:31.68 .net]
死ねゴミ共がw
ばーかw

194 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 17:30:49.07 .net]
違う。

どうでもいい。

195 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 08:40:29.35 .net]
>>149
最後の","を'\0'で潰すのがはやい

196 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 09:17:01.18 .net]
そんなことできる言語もめっきり無くなったな

197 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 16:18:25.25 .net]
C言語だって文字列定数とかを指してたらやっちゃダメだし

198 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 16:31:18.09 .net]
どう考えてもバグの宝庫な仕様だよな

199 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 19:16:39.02 .net]
文字列がイミュータブルなこととミュータブルなことのどっちが?

それとも \0 ターミネーション?

200 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 11:20:17.62 .net]
文字列は文字数と文字データの構造体だったんだけどな

201 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 23:24:36.15 .net]
lenで1バイト持っても末尾の00に1バイト持っても同じだしな

202 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 23:33:36.34 .net]
最初にサイズが分かるか、辿っていかないとサイズが分からないかの違いは有る。
前者はBSTR型とかね。



203 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 23:49:03.85 .net]
データチャンクだと、サイズ+データの繰り返しだな

204 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 00:32:59.75 .net]
>>201
256以上の長さの文字列どうするんだよ?

205 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 08:03:36.41 .net]
そんなもん、長さに4バイト取っても必ず有限だろ

206 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 11:03:48.78 .net]
そう言えば、255バイト長のパケットを送れない通信プロトコルがあったな。尤もあれは長くても508バイト長までだけど。

可変長文字列を管理するデータ構造を考えるだけでも楽しそうだね。

207 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 19:07:04.66 .net]
>>204
0-127 のときは そのままの値
128-255 のときは (その値 - 127) x 128 + その次のバイトの値
ただしその次のバイトの値が 0-127 のときはその次のバイトの値をそのまま使うが
その次のバイトの値が 128-255 のときはさらに (上の値 - 127) x 128 + その次の次の値とする
とか

208 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 23:05:25.36 .net]
7bitのリトルエンディアンで格納して、最終バイトの8bit目を立てる

209 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 01:31:20.81 .net]
BigInt

210 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 11:39:12.46 .net]
文字列の中のパターンの置き換えをおしえてください。
たとえばxを任意の文字としてabxをbxに置き換えbxをxにおきかえるとしたら
abcをcに置き換えたいです。
この時、この置き換え操作は無限に続かないことを前提としています。
この例では一つのパターンでしたが、プログラムの入力としてパターンと
置き換える文字列、出力として置き換え後の文字列であるものの
作成方法が分かりたいです。

211 名前:デフォルトの名無しさん [2014/03/05(水) 12:09:18.80 .net]
正規表現ライブラリのソースでも読んでみたら

212 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 19:39:16.05 .net]
再帰処理を使った順列のプログラム(JavaScript)について質問があるのですが、
ここで教えてくださる人はいますか?



213 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 20:01:44.88 .net]
>>212
とりあえず質問内容を書いてみたら?
答えるかどうかは気分次第だけど。

214 名前:デフォルトの名無しさん [2014/03/09(日) 20:20:18.06 .net]
アルゴリズムとデータ構造の勉強に使える本で木構造やリストの実装、
バックトラックとか動的計画法まで載ってる本で読みやすくてコードが書いてるやつ
何がいい?
はじめてのアルゴリズム 上原
とかエイホさんのとかっていいの?

215 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 20:44:41.37 .net]
アルゴリズムイントロダクションの総合版買っとけばいいよ

216 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 23:15:50.81 .net]
あの巨大な枕か

217 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 23:31:43.52 .net]
>>214
プログラミング・コンテスト・チャレンジブック、第2版、2012
グラフ理論など、ほとんど全てのアルゴリズムを網羅
問題数も多く、パズル感覚で楽しめる
AIやシミュレーションゲームの参考になる

TopCoder
ttp://toro.2ch.net/test/read.cgi/tech/1333159918/l50

218 名前:デフォルトの名無しさん [2014/03/15(土) 20:50:18.83 ID:3c5h2INR.net]
アルゴリズムを初歩から勉強をしたくて
プログラミング・コンテスト・チャレンジブックを読もうと思ってるんですけど
その前にやっておくべき本とかってありますか?
アルゴリズムイントロダクション,データ構造とアルゴリズム(杉原)が候補にあります.

ちなみに,現在大学生で,CとPythonはある程度書けます.

219 名前:デフォルトの名無しさん mailto:sage [2014/03/15(土) 21:05:18.35 ID:LOPS9SpP.net]
>>218
プログラミング・コンテスト・チャレンジブックはひと通りアルゴリズムを学んだ人が腕試しにやるような本だから、候補に上げたような本を先に読むんでいいと思う。

杉原は知らないけど、アルゴリズムイントロダクションもちょっと数学的考察とか証明の割合が多いから、難しいようなら他の本を当たった方がいいかもしれない。一生使えるから、とりあえず買っちゃうのはいいと思うけど。

あとは大学(自分のとこでも、他所でも)のアルゴリズムとデータ構造の授業で使ってる教科書を見てみるのがいいと思う。

220 名前:デフォルトの名無しさん [2014/03/15(土) 22:02:22.42 ID:3c5h2INR.net]
>>219
ありがとうございます.

数学的考察も欲しいのでアルゴリズムイントロダクションを買おうと思うのですが
初心者でも総合版を買うことをおすすめされますか?

鈍器としても使えるらしいので総合版にしようかと思っていたのですが
あまりにも重すぎて使いにくいという声など,もしありましたら教えていただきたいです.

221 名前:デフォルトの名無しさん mailto:sage [2014/03/15(土) 22:06:32.24 ID:tN8Ad5rR.net]
間違ってたらごめんだけど、
たしか総合版にしか無い箇所があるんじゃ?

222 名前:デフォルトの名無しさん mailto:sage [2014/03/15(土) 23:56:04.39 ID:LOPS9SpP.net]
>>220
へえー、総合版なんてのが出たのか。今度立ち読みしてみるわ。
1、2巻出してるから残りを3巻にすればいいのにね。

判断基準としては重さ、値段とあとは自分の勉強したいアルゴリズムが1、2巻で足りるかどうかじゃないかな?
大学の情報科の1、2年のアルゴリズムの授業で習う位の範囲なら1、2巻で足りるはず。

これが総合版だと含まれてるみたい。
27 Multithreaded Algorithms
28 Matrix Operations
29 Linear Programming
30 Polynomials and the FFT
31 Number-Theoretic Algorithms
32 String Matching <--- これも1, 2年で習うかな?
33 Computational Geometry
34 NP-Completeness
35 Approximation Algorithms



223 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 03:10:11.24 ID:NcMQ7vHT.net]
おまえら、そんなもん学んで何に使うの?

224 名前:Donald Knuth mailto:sage [2014/03/16(日) 03:15:08.58 ID:BR331utC.net]
>>223
現在わたしは、Ph.D.(Doctor of Philosophy)をとらなければ
ならないようなプログラムを、みんなが書くべきと考えていません。
多くの理論がこれまで開発されてきましたが、そのほとんどは、
実際のプログラムではあまり使われないものなのです。
こうしたものは、ものごとを極限までつきつめるときぐらいしか、
役に立たない。これらの理論の値打ちは、
ユーザーに全体の構造を見渡せる視野を提供することにあるのです。
理論をたくさん知っていればいるほど、ユーザーは、
プログラムで実際に応用するほんのわずかなことが、
より楽に理解できるようになるというだけのことなわけです。

ユーザーは、自分が扱える範囲を広げるために、理論を必要とします。
たとえばリストでいえば、ユーザーがリストに関して、
より複雑な理論を知っていれば、プログラムにこうした理論を
使うことがなくても、プログラムの中の単純なリストの使い方は、
(理論を知らない人が書いたものと比べれば)
はるかに自然なものとなるのです。

225 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 03:27:49.15 ID:NcMQ7vHT.net]
その全文が書かれたのって、おまえが生まれる前じゃないの?
部屋の飾りにはいいかもしれないけれど

226 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 10:42:44.74 ID:36W3tLYE.net]
アルゴリズムは盆栽

227 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 10:50:16.89 ID:JXH3psgq.net]
このツリーの曲がり方はいいね

228 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 11:32:59.02 ID:36W3tLYE.net]
ごめん、この枝間違って切っちゃった。

229 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 12:49:26.13 ID:AOFYs8Jm.net]
平衡木って盆栽的には美しくなさそう

230 名前:デフォルトの名無しさん [2014/03/16(日) 13:35:29.66 ID:tRI7CXOm.net]
>>221 >>222
丁寧にありがとうございます!
追加されたのは比較的高学年で学ぶ範囲なのですかね.

大学院で学ぶ内容も網羅してくれているとありがたいので,総合版にしようと思います.

231 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 16:22:41.16 ID:1gXwUEhj.net]
アルゴリズムって一回は言ってみたいかっこいい言葉だよね

232 名前:デフォルトの名無しさん [2014/03/16(日) 16:23:22.03 ID:rHQmp5Mm.net]
アルゴリズムたいそう



233 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 18:58:01.80 ID:NcMQ7vHT.net]
アルゴリズムに期待するのって、高卒とか文系SE?
情報科卒業して、CSSやPHP弄ってる層に謝れよ。

234 名前:デフォルトの名無しさん [2014/03/16(日) 19:00:27.81 ID:rHQmp5Mm.net]
>>233
お前バカそうだな。

クイックソートやGoogleの検索エンジンの仕様も
アルゴリズムって呼ばれているわけだが、
お前が馬鹿にしているのが何かすらわかっていないだろう?

235 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:06:08.08 ID:9d63KDz+.net]
>>233
アルゴリズムや数学をきちんと勉強しないから、人が考えたアルゴリズムをコードに起こす仕事になっちゃうんじゃ..

236 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:08:21.05 ID:wQykVVMe.net]
アルゴリズムおもろいやん

237 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:15:10.66 ID:NcMQ7vHT.net]
>>235
ちょっと分厚い本をペラペラ捲ったら、アルゴリズム記述されてんのに、
そんなもの後で必要になってから調べて十分じゃないの?
頻出しそうなものなんて、木とネットワークフロー、DPぐらいしか思いつかないし、
BM法なんて、生涯にわたって使う機会が一度もない気がするわ
それよかPrologで出される制約問題でも解いた方が有意義じゃねぇの

238 名前:デフォルトの名無しさん [2014/03/16(日) 19:16:09.34 ID:rHQmp5Mm.net]
たぶん、アルゴリズムを
他人が考えたものを使うものとしか
考えてないんだろうな。

239 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:21:48.31 ID:NcMQ7vHT.net]
>>238
若くて情熱が続くうちに、ページランクアルゴリズムでも再発明したらいいと思うよ

240 名前:デフォルトの名無しさん [2014/03/16(日) 19:25:25.65 ID:rHQmp5Mm.net]
>>239
アルゴリズムに期待したらいけなかったんじゃなかったのか?w
ページランクアルゴリズムを発明したGoogleは凄いことになりましたよね。

241 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:31:14.68 ID:NcMQ7vHT.net]
皮肉を理解できないアスペと話するほど心は広くないんだ

242 名前:デフォルトの名無しさん [2014/03/16(日) 19:36:16.50 ID:rHQmp5Mm.net]
じゃあ話をしなければいいじゃないかw
もうこれ以上レスしなければいい。

で、アルゴリズムをなにかわかってないから
そんなこと言ったんだよねw



243 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:36:24.56 ID:9d63KDz+.net]
>>237
そりゃ、CSSやPHP弄ってるだけの場合はそんなもんだろ。お前の仕事に必要なければ勉強しなきゃいいさ。

ただ、人によって勉強する動機は異なるし、どんなアルゴリズムやデータ構造があるかを大雑把に知っておかないと、必要になった時に何をどう調べたらいいかもわからんだろ。

>>237 はもっと数学を勉強して、物事を合理的に考える力を養った方がいいな。

244 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:52:29.07 ID:NcMQ7vHT.net]
>大雑把にしっておかないと
だから、ペラペラ捲ってからで十分なんだって。
具体的な目標もなしに、アルゴリズムなんて勉強した所で身に付かないよ
そして、おまえらには目標がないので、ぺちぱーになる

245 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 19:55:39.38 ID:LEh1TotO.net]
>>244の意見のほうが信用できるな。
リファクタリングにしろ、デザパタにしろ、
OOPとはなんぞやの思想にしろ、
なんかしらのアルゴリズムにしろ、
必要になるまでまずその価値なんてわかんねえんだ。

246 名前:デフォルトの名無しさん [2014/03/16(日) 20:02:22.78 ID:rHQmp5Mm.net]
>>244
お前何言ってんだ?

アルゴリズムそのものの話だろ。
お前が言っているのは特定の場合の話であって
アルゴリズムそのもの話ではない。

247 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:14:21.59 ID:NcMQ7vHT.net]
>>245
リファクタリング、デザパタの方が優先度上。
アルゴリズムの勉強なんてウンコしながらで良い

248 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:22:18.88 ID:/mgBA8rW.net]
寝言は寝て言え。

249 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:24:16.99 ID:NcMQ7vHT.net]
>>248
皆、アルゴリズムの使い方と使う場面を知らないから講釈垂れてけよ

250 名前:デフォルトの名無しさん [2014/03/16(日) 20:27:30.48 ID:rHQmp5Mm.net]
意訳

俺、アルゴリズムの使い方と使う場面を知らないから教えてください。


返答例

だがことわるw

251 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:30:14.53 ID:/mgBA8rW.net]
死ぬまで10万件のバブルソートしてろカス、ってのもアリかなw

252 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:33:35.53 ID:NcMQ7vHT.net]
ほとんどの場合、組込関数が問題領域に大して最適化されたもの提供してくれるよね?



253 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:36:19.25 ID:/mgBA8rW.net]
それを適用しようとしている問題に対して最適だと判断できないバカが何か言ってるw

254 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:45:10.96 ID:NcMQ7vHT.net]
大体、大学生が講義で学ぶソートや文字列操作って、普通は勉強しても使わないから必要になるまで放置するよ
本当に正しいか確認するために書籍を引っ張り出すけど、
実際に調べてみるとデータベースや言語の組込み関数が問題に対して最適化されたもの提供している
少なくともソートや文字列周りのアルゴリズムは頭に入れておくだけ時間のムダ
詳細に頭に留めておくべきデータ構造もB+木ぐらいしか思い浮かばない

255 名前:デフォルトの名無しさん [2014/03/16(日) 20:49:59.68 ID:rHQmp5Mm.net]
話がすり替わってるな。

頭にいれるのが無駄というだけで、
アルゴリズムそのものが悪いわけじゃないだろ。

クイックソートとか、多くの言語のソート機能に
使われてるアルゴリズムだし、
ソフトウェア工学の基礎だぞ。

アルゴリズムの勉強から学べることも多い。
基礎をないがしろにするもんじゃない。

優れたアルゴリズムは、今でも優れているし、
そういうのを知って、そして自分で
考えるのがプログラマってもんだろ。

256 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:50:55.37 ID:NcMQ7vHT.net]
NGID:rHQmp5Mm

257 名前:デフォルトの名無しさん [2014/03/16(日) 20:54:38.91 ID:rHQmp5Mm.net]
NGしたってことはもうレス(反論?)してこないってことか。
それは嬉しいね。

この俺のレスも見えてないはずだよね。
レス番飛んでるから書き込みしているのはわかっても
内容はわからない。レスしようがないよねw

さて、この馬鹿どうしようか。
アルゴリズムの重要さを理解してないなんて痛すぎるね。
必要になったら意味もわからずコピペしてすませそうだね。

258 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:56:16.49 ID:NcMQ7vHT.net]
さっきから、あぼーんが酷いわ
童貞がセックスでも語ってるのかな

259 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 20:56:57.35 ID:/mgBA8rW.net]
>>258 死ねや屑

260 名前:デフォルトの名無しさん [2014/03/16(日) 20:58:04.50 ID:rHQmp5Mm.net]
さっそく、レス番飛んでるのを見つけてレスしてきたかw
NGしたんだからID:NcMQ7vHTには内容は見えてないはず。

ID:NcMQ7vHTってホント馬鹿だよねw
自分から見えなくするとか。
頭悪すぎるw

261 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:00:43.22 ID:NcMQ7vHT.net]
>>259
君ら本当にアルゴリズム一通り勉強したの?

262 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:03:32.02 ID:/mgBA8rW.net]
アルゴリズムについて一切勉強せず、
「組込関数が問題領域に大して最適化されたもの提供してくれる」って信じて自爆すればいいんだよ君は。
だからもうこのスレに居る必要は無いから、消えようね。



263 名前:デフォルトの名無しさん [2014/03/16(日) 21:04:06.75 ID:rHQmp5Mm.net]
>>261
そりゃメジャーなのはするでしょw
やってなきゃモグリだよ。

264 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:10:11.16 ID:NcMQ7vHT.net]
>>262
反例はよ?

265 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:10:52.74 ID:x79H7Bla.net]
>高卒とか文系SE?

これでおこっちゃったんだろうなw

266 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:11:05.83 ID:NcMQ7vHT.net]
>>262
必要になってから本を開くで十分だから

267 名前:デフォルトの名無しさん [2014/03/16(日) 21:12:49.53 ID:rHQmp5Mm.net]
>>266
だから必要になる時点で、
アルゴリズムに期待してるってことだよね。
自分で矛盾しているのわかってないんだろうね。

反論あるかい?

268 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:15:50.63 ID:NcMQ7vHT.net]
まぁ、ここのバカ共は、シコシコとsortやBM法を実装する経験を積んで、
その費用対効果の悪さを実感してもらいたいね

269 名前:デフォルトの名無しさん [2014/03/16(日) 21:17:13.06 ID:rHQmp5Mm.net]
おやおや、反論はどうしたんだい?
しないのかい?w

270 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:18:38.78 ID:PaEO6HwD.net]
○○ソートを実装して嬉しげな子は、写経に価値を見出す子。
○○ソート実装しますた!つっても結局はそれは発明するわけじゃないんだから、
誰かが書いたソースや、手順の解説をみて、本質的には書き写してるだけ。
それで満足できるんだからほほえましい。

271 名前:デフォルトの名無しさん [2014/03/16(日) 21:21:39.00 ID:rHQmp5Mm.net]
>>270
勉強っていうのはだいたいそんなもんだよ。
数学の勉強なんて、殆どが誰かが発明したものでしょ?

だからって数学に意味が無いことにはならないし、
もちろん勉強することに意味が無いことにもならない。

それが基礎ってもん。基礎が出来てこそ、その先がある。
ID:NcMQ7vHTはそれをわかってないんだよ。

だからみんなに馬鹿にされてる。

272 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:25:15.25 ID:KN/i/crH.net]
NcMQ7vHTの言っていることは一理あるよ

どういったものがあるか程度に知識として持つってのが前提の話だろ?
必要に迫られたら、そのインデックスを頼りに勉強すればいい

知識は使わないと直ぐに忘れるから、あれこれ頭に詰め込んでもあんまり意味ない
外部記憶装置に連想配列としてデータを置いてハッシュ値で情報を取り出す方が効率が良い

ひと通り勉強するって捉え方の相違って感じ



273 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:27:42.49 ID:9d63KDz+.net]
>>272
それ、俺が言ってることじゃん。
NcMQ7vHT はそれすら無駄って否定してたけど。

274 名前:デフォルトの名無しさん [2014/03/16(日) 21:27:46.19 ID:rHQmp5Mm.net]
>>272
いや、そういうことじゃなくて、
NcMQ7vHTはアルゴリズムそのものに
価値がないと言ってる。

下記参照

> 223 名前:デフォルトの名無しさん[sage] 投稿日:2014/03/16(日) 03:10:11.24 ID:NcMQ7vHT
> おまえら、そんなもん学んで何に使うの?

> 233 名前:デフォルトの名無しさん[sage] 投稿日:2014/03/16(日) 18:58:01.80 ID:NcMQ7vHT
> アルゴリズムに期待するのって、高卒とか文系SE?
> 情報科卒業して、CSSやPHP弄ってる層に謝れよ。

275 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:27:55.33 ID:NcMQ7vHT.net]
>>270
5分以内に挿入ソートを書かないと、お前の娘がどうなっても知らないぞ
なんて、偉い人に脅されたらどうするんだ?娘の純潔が君の手に掛かっているんだぞ
コーディングが不要って考え自体は、医師免許もってる人にお腹を切開させるぐらい怪しい考え

276 名前:デフォルトの名無しさん [2014/03/16(日) 21:32:02.43 ID:rHQmp5Mm.net]
反論できない奴に対してのワンサイドゲームって楽しいわw

どうせ見てるんだろうけどさw

277 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:32:14.46 ID:KN/i/crH.net]
>>273
うん、君の>>235のレスに対して>>237の返答があるけど
言っていることは同じだよ
どういったものがあるか知らなきゃ、調べようがないもの

278 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:37:04.12 ID:KN/i/crH.net]
>>274
必要のないアルゴリズムを
親父のラジオを分解してまた組み直すように
分析しまくっても、満足はするけど、さほど身にならないよ

必要なければ物語のあらすじを知っておく程度でいいんだよ
NcMQ7vHTはそう言っていると捉えたけど

279 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:40:44.74 ID:wQykVVMe.net]
アルゴリズムを勉強する意味としては、
優れたアルゴリズムをつかうことによって、
計算量が劇的に減るってことを簡単に体感出来るやん
それだけでも楽しくね?

280 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:42:27.17 ID:NcMQ7vHT.net]
アルゴリズムの理解に対して、競技コーダーレベルを目指すか未満でいいか
のどちらかで、んなもん目指さなくて良いなら本開いてからかウンコしながらで十分
このスレの人たちはアルゴリズムが重要だってわりに、何がどう重要なのか、
そもそも何に使うのかの具体性すらないのにアルゴリズムが重要っていう。不思議。

281 名前:デフォルトの名無しさん [2014/03/16(日) 21:44:03.69 ID:rHQmp5Mm.net]
具体性があれば、アルゴリズムは重要って言ってるんだよ、こいつは。
みんな気づいているよね?

282 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 21:49:30.77 ID:NcMQ7vHT.net]
童貞って使いもしない性知識や性技について、やたら詳しいよね
それも何か過度の期待をして悶々とムラムラしている。
あぼーんした箇所から我慢汁が垂れてきそうだ。



283 名前:デフォルトの名無しさん [2014/03/16(日) 21:59:57.76 ID:rHQmp5Mm.net]
自己紹介乙w

284 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 22:08:16.80 ID:jBVIil7i.net]
>>271
なんか話がねじれてるのを感じるが一点だけ。
…と思ったけどやっぱいいわw やめとく。

>>275
わろたw

285 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 22:09:25.28 ID:8TdIOMC6.net]
アルゴリズムに興味ある人はトップコーダへ ステマ

286 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 22:22:14.08 ID:NcMQ7vHT.net]
php.iniを笑うものはphp.iniに泣く

287 名前:デフォルトの名無しさん mailto:sage [2014/03/17(月) 02:29:24.68 ID:4lFteqPu.net]
漏れは今、6マスタイプの大戦略のAIを考えている
首都からすべてのセルへの、最小移動コストと、
その経路をたどるパス

すべてのセルへ、ランダムな移動コストを与えて、
シミュレートしようと思っている

ダイクストラで、優先度キューを使うか?
隣接行列か隣接リストか?

こういう知識も、
プログラミング・コンテスト・チャレンジブックから得た
3人の大学院生が書いた本だが、冒頭から度肝を抜かれる

千枚ある紙の中から、4枚引いて、
それらの合計が、mとなるかどうかを確かめろ、
という問題があるが、

a+b+c+d = mで、一般的にO(n^4)だが、
a+b = m-c-dとして、a+bでソートすると、
O(n^2 log n)となる。これぞ、Art!

288 名前:デフォルトの名無しさん mailto:sage [2014/03/17(月) 05:24:43.74 ID:P8Lohybr.net]
蟻本いいよね。大学生のうちに熟読したかったわ

289 名前:デフォルトの名無しさん mailto:sage [2014/03/17(月) 07:07:20.60 ID:s3V0Rhfq.net]
スレが進んでると思ったら、狂人が二人居ていちゃいちゃしてたのか

290 名前:デフォルトの名無しさん mailto:sage [2014/03/17(月) 10:20:45.42 ID:QW4CmNA1.net]
どう見ても一人

291 名前:デフォルトの名無しさん mailto:sage [2014/03/18(火) 00:46:44.67 ID:tPzh9EEu.net]
アルゴリズムとデータ構造ならやっぱこれが今でもベストだと思う
www.amazon.co.jp/dp/4000103431/

日本人だから意味不明の翻訳調の文章に悩まされることもない。
説明が丁寧。ひっかかりやすいミスもあれこれ解説しているのが親切。
もっと評価されてもいいと思う。

292 名前:デフォルトの名無しさん mailto:sage [2014/03/18(火) 00:55:01.62 ID:6BNvI/8X.net]
ベストと言い切る自信は無いが、確実に名著だね。



293 名前:デフォルトの名無しさん [2014/03/18(火) 02:31:41.71 ID:D2G7mMpQ.net]
0-9の数字をランダムに並べ替える、
トランプのシャッフルなど、
重複しない乱数列を作るのは、
どんなアルゴリズムがありますか?

Webにあって良さそうなのは、
最初に配列に、0-9を入れておく
1. 0-9から1つの乱数aを得て、配列[a]と[9]の要素を入れ替える
2. 0-8から1つの乱数bを得て、配列[b]と[8]の要素を入れ替える
以下同じ

294 名前:デフォルトの名無しさん mailto:sage [2014/03/18(火) 05:08:07.94 ID:8D/uPICD.net]
>>293
それでいいんじゃないの?
O(n)で乱数配列作れるから一番速そうだし

c++STLのrandom_shuffleだっけ
これもそれ使ってたと思う

295 名前:335 mailto:sage [2014/03/22(土) 22:06:03.42 ID:h08U7EZc.net]
アルゴリズムの検証に使えそうなある程度大きなデータのサンプルが置いてあるサイトってないかな?
今は特に重み付き有向グラフのデータが欲しいんだけど。
なんなら、有料でもいい。

296 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 22:16:38.65 ID:+XA3shYN.net]
Wikipediaの全データ落として、リンクをエッジ、文の長さを重みにでもすれば

297 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 22:46:49.83 ID:ZVkXLvMB.net]
>>295
algs4.cs.princeton.edu/code/
の largeEWG.txt とかはどう?

298 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 23:29:33.56 ID:p0VQZyPj.net]
>>295
elib.zib.de/pub/Packages/mp-testdata/tsp/tsplib/tsplib.html

299 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 09:35:14.62 ID:hof0CNNK.net]
>>296
アドバイスはありがたいが、申し訳ないが今はちょっと非現実的かも。
面白そうではあるから、暇ができたらトライしてみるよ。

>>297 >>298
使えそうだ、助かった。
ありがと。

300 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:56:42.11 ID:+Lw9q3Jk.net]
一括データをまとめて落とせるんだよ。https://ja.wikipedia.org/wiki/Wikipedia:%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89

301 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 19:14:01.71 ID:0P0DcJxO.net]
>>300
これは凄い。知らんかった。

302 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 03:06:58.26 ID:r7VC3H2x.net]
2D上の多角形を検出するアルゴリズムで詰まりました。助けてください。
各ラインを 56,80-120,100 という2頂点のデータで複数持っています。
とある2Dの座標が多角形を構成しているラインの中か外かをチェックする必要があります。
中か外かをチェックする処理は作成したのですが、そもそも多角形を構成しているのかどうなのかという処理で、
良いアルゴリズムが浮かびません。
多角形の頂点数は3点以上です。
何か良いアルゴリズムは無いでしょうか?



303 名前:302 [2014/03/26(水) 03:24:55.09 ID:r7VC3H2x.net]
追加です。
各ラインの交差はありません。

304 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 04:23:33.08 ID:2pJmwYuc.net]
共通する頂点を探して辿るとかじゃだめなの?

305 名前:302 mailto:sage [2014/03/26(水) 05:36:23.23 ID:r7VC3H2x.net]
>>304
ありがとうございます。
頂点ABCDEFGと頂点BCDEFGAは同じなのですが、チェックがめんどくさくて、、、
閉じているかチェックしたいだけなので、力技ではなく何かテクニックがあったら教えていただきたいです。

306 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 06:24:33.03 ID:2pJmwYuc.net]
どんどん条件後出ししていきそうな質問者

307 名前:302 mailto:sage [2014/03/26(水) 06:56:33.51 ID:r7VC3H2x.net]
条件出さないんで、助けてください><
あえて出すとすれば、同じ頂点を共有した別の多角形が存在するという条件でしょうか。
条件出しちゃいました。。。

308 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 07:05:35.73 ID:R7T8IoJH.net]
頂点データを持っているオブジェクトが必ず多角形になるなら
そういうデータ構造にしたらいいんじゃないの?
三角形なら頂点a、b、cのデータを持って、一筆書きみたいにa-b、b-c、c-aのライン判定する
ラインデータじゃなく単純な頂点データとして持てばデータ量も減るし

多角形にならない場合があるならフラグでも設けて
最後のc-aが閉じていないってすればいいんじゃないの
どのラインも独立しているのが必要ならそれぞれオブジェクト生成したらいいんじゃない?

309 名前:302 mailto:sage [2014/03/26(水) 09:04:50.88 ID:r7VC3H2x.net]
>>308
ありがとうございます。
難しそうですね。。。
実装時間に制約があるので、1頂点から2線以上出せないという仕様を一つ追加して乗り切りたいと思います。

310 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 10:28:25.10 ID:R7T8IoJH.net]
>>309
多角形は結局のところ多角形の集合なのだから
最低単位の多角形をグループ化するクラスでも作ったらいいんじゃない?

例えば、正六角形は正三角形が6つ集まっているよね
最小単位の正三角形のオブジェクトを6つ持つ正六角形クラスがあればいいよね
当たり判定はそれぞれの正三角形で行なえばいいよね

それを一般化してしまえば、1頂点から2線以上出る多角形も作ることが可能だよね
それが3Dとかで使われるポリゴンだと解釈しているけど

311 名前:デフォルトの名無しさん [2014/03/26(水) 13:13:57.81 ID:oWOUaPIh.net]
多角形はワイヤーフレーム型?
多角形が単一色、または背景が単一色で多角形部分が色付きなら楽だけど、たぶんそれじゃあ駄目なんだろな

ワイヤーフレームなら、指定座標から画面外枠に向かって上下左右に1ドットづつ色検知して、上下どちらも、または左右どちらも画面外に出る前にに多角形枠色に引っかかったら内側判定…とかは?

312 名前:デフォルトの名無しさん [2014/03/26(水) 13:16:09.06 ID:oWOUaPIh.net]
あ、内側判定は終わってるんだな
ごめん、忘れてorz



313 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:07:56.78 ID:m1CmrLTr.net]
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/lecture-12-skip-lists/

↑のMITの講義で、スキップリストと呼ばれる1989年に考えられたデータ構造の
計算量を見積もるときに以下の問題を解く必要があります。

講義では明らかみたいなことを言っていますが、そんなに明らかでしょうか?

Aを正の実数とする。

f(x_1, x_2, ..., x_n) = x_1 + x_2/x_1 + ... + x_n/x_(n-1) + A/x_n
とする。

fの値を最小にする正の実数x_1, x_2, ..., x_nを求めよ。

314 名前: ◆QZaw55cn4c mailto:sage [2014/04/01(火) 21:02:41.83 ID:Xl1FJm59.net]
>>313
各項をかけるとx(n)がいかなる値であろうとも常にA
積が一定のとき、各項がすべて等しければ最小

とかいう問題ですか?英語よめないからよくわかりません

315 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:31:37.80 ID:wNI+pTPk.net]
So, I want to minimize L_1 plus n over L_1. And I get to choose L_1. Now, I could
differentiate this, set it to zero, and go crazy. Or, I could realize that, I mean, that's
not hard. But, that's a little bit too fancy for me. So, I could say, well, this is clearly
best when L_1 is small. And this is clearly best when L_1 is large. So, there's a
trade-off there. And, the trade-off will be roughly minimized up to constant factors
when these two terms are equal. That's when I have pretty good balance between
the two ends of the trade-off. So, this is up to constant factors. I can let L_1 equal n
over L_1, OK, because at most I'm losing a factor of two there when they happen to
be equal.

316 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 00:00:27.81 ID:wKQIA80W.net]
>>313
どこが分からないの? >>315 のところ?

317 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 06:26:11.63 ID:ueE6QFcL.net]
相加相乗平均の定理

318 名前:デフォルトの名無しさん [2014/04/06(日) 00:40:03.37 ID:tyVsXbcn.net]
アルゴリズムの勉強は本当に疲れる
センスのある人はアルゴリズムがスラスラ理解できるらしいが、俺は頭が悪いのでウンウン唸りながらじゃないと理解できん

319 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 01:14:46.49 ID:v5F7vKVc.net]
それでいいと思う‥‥

320 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 01:47:58.09 ID:rc99+CA1.net]
俺ハノイの塔とか未だにわからんわ
追っていると頭が混乱しちゃう

321 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 08:05:50.25 ID:B8PUb7p+.net]
センスというものなのかどうかはわからんが、
機械の「機械のように正確な」動作を追うことができるかどうかは、
デバッグの効率には影響すると思う。この仕事に対する向き不向きとして。

322 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 08:33:13.34 ID:uLJ3NzvJ.net]
再帰をわかってる人は、大半のアルゴリズムに強い気がする



323 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 10:39:51.62 ID:tUu4o0lA.net]
再帰は確実に終了する根拠がないと使いにくいんだよな。

324 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 12:54:38.12 ID:rc99+CA1.net]
ループは確実に終了する根拠がないと使いにくいんだよな。
チューリング完全は確実に終了する根拠が無いと主張できないよな。

325 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 14:01:26.03 ID:mKLMCJ7D.net]
>>323
再帰を使う上でその根拠を決めるのは自分でしょ

326 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 17:47:49.59 ID:v5F7vKVc.net]
>>323
再帰の頭に終了条件を書くでしょ、そのときに否が応でも自分で決めざるを得ない

327 名前:デフォルトの名無しさん [2014/04/06(日) 17:55:05.95 ID:/BRp7uTK.net]
再帰の頭に書くのは終了条件じゃないよ

328 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 18:32:11.06 ID:v5F7vKVc.net]
>>327
ありえない、お前は再帰をもういちど勉強したほうがいい

329 名前:デフォルトの名無しさん [2014/04/06(日) 18:42:52.70 ID:N5LDc9gS.net]
多額な借金で人生つんでるヤシたちw


manta.blog.jp


livedeaichat.blog.fc2.com/blog-entry-1.html


sisutore.blog.jp/archives/1000786211.html

330 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 18:48:53.18 ID:1V1mpQ2/.net]
>>327
じゃあ、今日からは、再帰を書くときは真っ先に再帰を終了させる条件を定義するようにしましょうよ。

331 名前:デフォルトの名無しさん [2014/04/07(月) 01:56:22.46 ID:d0TT8Xyg.net]
再帰は、内部的にはどーなってるんだ?
アーキテクチャの本を読んでも理解できなかったわ

332 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 03:42:51.76 ID:X0/QJ0Bz.net]
>>331
マシン語勉強すれば?



333 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 05:20:02.79 ID:EBZlvC1X.net]
再帰とマシン語はあんまり関連性ないだろ。

334 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 05:21:46.96 ID:EBZlvC1X.net]
つーか終了条件が成立するまで自分自身を呼び出すだけ。
たったこれだけ。単にループを再帰で置き換えるだけなら
簡単。データ量が不定だったりする場合は一定の量だけを
切り出して、そのブロックに対して再帰にすればいい。

335 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 09:20:18.42 ID:X0/QJ0Bz.net]
内部的にどうなってるか知りたいってことは、引数やローカル変数が上書きされないかとか、どうやって元の場所に戻るんだろうとかが疑問だってことでしょ。
自分は、関数呼び出しがマシン語では引数や戻りアドレスをスタックに積んで関数の先頭アドレスにジャンプするコードになるのを知ってたから理解できたけど、そんなのは老害だって言うなら黙るよ。

336 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 09:25:29.71 ID:2J/E/BiW.net]
実装の話だろ、あってんじゃん

337 名前:デフォルトの名無しさん [2014/04/07(月) 09:29:04.52 ID:5wZ1j6dN.net]
この関数が老害ってどういうことなんでしょう

338 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 10:06:25.41 ID:Azn2Ag2H.net]
mkdir himitsu
cd himitsu
ln -s . himitsu

339 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 10:40:46.86 ID:2J/E/BiW.net]
chown oh:oh himitu

340 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 19:44:06.53 ID:07lAy1km.net]
・ポインタ
・再帰
・リンクリスト

辺りがダメな人は本当にわからないらしい。
数学科でもダメな奴がいると聞いた。

341 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 19:54:04.79 ID:WXfYbNCh.net]
どう突っ込めばいいんだ?

342 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 19:54:31.72 ID:jH/0whnp.net]
ほんとだよなw



343 名前:デフォルトの名無しさん [2014/04/07(月) 20:03:59.61 ID:Yv3nxM4P.net]
ねじ込むように突っ込む

344 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 21:57:36.22 ID:cPHU7Y9F.net]
そんな奴等はメモリモデルとかアドレス空間から教えないと

345 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 22:44:41.34 ID:aZ3ao3+q.net]
還元的な方法以外でも理解可能です。

346 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 23:03:10.48 ID:R8X8CMOs.net]
>>344
チューリングの計算可能の話にまで遡るのか・・・
大学レベルだけど、講義でもないのに教えるの面倒くさいなあ

347 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 23:13:47.29 ID:9xD+wUOX.net]
なんでやねん

348 名前:デフォルトの名無しさん mailto:sage [2014/04/08(火) 17:07:35.17 ID:h+V2EGQg.net]
数学科って、cでプログラム書くようなことあるのか?
6年ぐらい入門して、最終的に触る機会なんてなかったぞ

349 名前:デフォルトの名無しさん mailto:sage [2014/04/08(火) 17:21:28.77 ID:mk0uQXXd.net]
まず日本語を勉強してだな

350 名前:デフォルトの名無しさん mailto:sage [2014/04/08(火) 17:31:13.57 ID:h+V2EGQg.net]
>>349
サクラ鯖に、なでしこでCGIでしょうか?

351 名前:デフォルトの名無しさん mailto:sage [2014/04/08(火) 17:44:56.41 ID:q/1QB78S.net]
↑のレスは天才チンパンジー「アイちゃん」が
言語訓練のために書き込んだものです。

352 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 11:33:00.99 ID:V7HoJaA9.net]
初級アルゴリズムならそうかもな



353 名前:デフォルトの名無しさん [2014/04/24(木) 11:55:31.38 ID:1XlNsioB.net]
中級・上級アルゴリストにはどんなことができるの?

354 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 12:31:07.16 ID:mnsZs1hI.net]
実際に何か作ってるときに「こういうアルゴリズムがあるはずだ」と察知して
探せるようになればおk

355 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 14:05:02.62 ID:E/S2XTBi.net]
中級は学部・院生レベルくらいかな

既存のアルゴリズムの改良をしたり、
目的に沿ったアルゴリズムを開発したり、
その計算量やメモリ量を算出・証明したり、
実装したり、論文で発表したりする

356 名前:デフォルトの名無しさん [2014/04/24(木) 17:22:35.13 ID:CrNHZjbB.net]
アルゴリズムはデザインがすべて

357 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 20:31:22.55 ID:RrLorudN.net]
>>352
違う。

それを勉強し始めた時に思い描いた未来の自分になれば完成だ。
目標もなくただなんとなく勉強しているのなら、完成なんて永遠にこない。

あと、「一応」なんてものも無い。

358 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:05:08.96 ID:29x10p2Y.net]
algorithmの問題に関する作業能率を最大まで上げたら、
らいなっくすやれいるずを作れるようなすーぱーはっかーになれますか?

359 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:07:30.43 ID:29x10p2Y.net]
>>352
蟻本嫁

360 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:50:29.46 ID:RrLorudN.net]
>>358
なれるわけがない。

ウソだと思うなら、実際に効率最大まで上げてみればいい。

361 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 01:31:40.05 ID:J0O0+fbt.net]
>>331
末尾再帰最適化、継続あたりで検索。

362 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 22:30:20.43 ID:k5QgmFyd.net]
>>355
高卒なのか?



363 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 00:12:34.02 ID:4Xi6PaOs.net]
>>153
>ただし、if 文で n 回の比較が発生するから、n があまりに大きい場合は >>152 のやり方がいいと思う。

元のお題がI/Oなんで、この程度の比較命令は全く問題にならない。
わかりやすく書くのがいい。

364 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 16:51:03.49 ID:LWRQ8Tqr.net]
最近はCPU速いんでネイティブじゃなくてjavascriptが流行ったり
最適なアルゴリズムより線形検索とかでも充分だったり

365 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 17:09:52.91 ID:ztOmzoR+.net]
うむ。今個人のPCで使われているDDR3-1600だと
転送速度12.8GB/sだからね。

0.01秒だと人間が知覚できるかどうかの世界だけど
その時間があれば100MBのデータを探索できるわけだからね。

366 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 18:18:02.68 ID:dkXr/W0v.net]
最近のJavascript JITはネイティブより速いことも多々ある。

367 名前:デフォルトの名無しさん mailto:sage [2014/04/29(火) 16:58:26.39 ID:pvgpWpOe.net]
涙ぐましい努力をするより富豪的プログラミングが流行る時代だしね

368 名前:デフォルトの名無しさん mailto:sage [2014/04/29(火) 19:48:18.31 ID:gkPlm+Vx.net]
それでもリソースに限りはあるわけで、大きいのだとどっかで破産するんだよな。
富豪的プログラミングじゃなくて、成金的プログラミングだと思うよ。富豪ってのは
周りが無駄に無計画に使っているように見えても、実際は締めるところは締め、
使うところは使うっていうのだからな。

369 名前:デフォルトの名無しさん mailto:sage [2014/04/29(火) 19:50:52.99 ID:rRRSFl+L.net]
リソースがショートしちゃうもんな

370 名前:デフォルトの名無しさん mailto:sage [2014/04/29(火) 20:17:40.02 ID:8B6X7USU.net]
どこがどう大きくなるのかを見積もって、必要なとこを必要なだけ節約する、って形が有効。
必要以上の節約は労力の無駄使い。

371 名前:デフォルトの名無しさん mailto:sage [2014/04/30(水) 03:59:01.72 ID:RSryIHGR.net]
firefoxで動画再生してると
メモリ解放されなくてそのうち死ぬ
成金の糞flushのせい

372 名前:デフォルトの名無しさん [2014/04/30(水) 17:31:12.56 ID:8H1kM5Z6.net]
UFC 128 - エリック・コク vs. ハファエル・アスンサオ
https://www.youtube.com/watch?v=n2CcU1A1i-0



373 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 08:04:28.79 ID:9zM4+Fav.net]
>>371
一般的に、I/Oなどは、1MBほどのバッファを確保して、
バッファに読み込んで、再生などの処理をしたら、
処理したデータを捨てて、次のデータを読み込む、
シーケンシャル・アクセスで、バッファのサイズは大きくならない

そのブラウザは、もう一度再生するときに、
ネット回線からダウンロードせずに再生するために、
データをローカルのメモリかディスクに保存しているんだな

データを捨ててないから、最後にはメモリが確保できなくなるので、
もう一度見ないものは、タブを閉じたらいいのでは?

374 名前:デフォルトの名無しさん [2014/05/03(土) 00:51:05.80 ID:pJ23Zgdt.net]
1.中置記法を入力すると逆ポーランドに変換し出力する
2.逆ポーランド記法で入力するとそのまま逆ポーランドで出力する

の両方できるアルゴリズムはありませんか?

1.は操車場アルゴリズムでできるようですが、
操車場アルゴリズムだと2ができません。

375 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 01:02:13.43 ID:nIlg1A2j.net]
>>374
中値記法と逆ポーランド記法を識別する方法が知りたいって事?

376 名前:デフォルトの名無しさん [2014/05/03(土) 08:21:56.99 ID:pJ23Zgdt.net]
>>375
はい、そうです
識別方法はありますか?

377 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 08:39:02.09 ID:ci/X6yFn.net]
>>376
末尾だけを最初に見れば良いんじゃね?
逆ポーランド記法の場合、必ず最後は演算子で終わるから。
但し、一番外側にカッコがある場合は、一度取り除いてから末尾を見ないといけないね。

378 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 08:41:32.32 ID:ci/X6yFn.net]
俺がやるなら、まず末尾から文字を順に見ていくかな。
カッコだったら次の文字に移動。
数字が先に現れれば中値記法。
演算子なら逆ポーランド記法。

379 名前:デフォルトの名無しさん [2014/05/03(土) 10:33:17.49 ID:pJ23Zgdt.net]
ありがとうございます
末尾判断でやってみます

380 名前:デフォルトの名無しさん [2014/05/03(土) 10:44:34.36 ID:BYcmF+is.net]
f

381 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 11:56:43.41 ID:1SJdCv6F.net]
俺は頭からやりたい

382 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 13:34:57.97 ID:gqLjB/uh.net]
頭で再帰しちゃったら無限再帰で _|_ やぞ



383 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 14:00:37.70 ID:SFocP469.net]
どして?
いま旅行中だから帰ったらやる

384 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 00:30:58.09 ID:/8HFkyur.net]
ttp://www.younganimal.com/se/img/02.jpg
ttp://www.younganimal.com/se/img/03.jpg
ttp://www.younganimal.com/se/img/04.jpg
ttp://www.younganimal.com/se/img/05.jpg
ttp://www.younganimal.com/se/img/06.jpg
ttp://www.younganimal.com/se/img/07.jpg
ttp://www.younganimal.com/se/img/08.jpg
ttp://www.younganimal.com/se/img/09.jpg
ttp://www.younganimal.com/se/img/10.jpg
ttp://www.younganimal.com/se/img/11.jpg

385 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 01:21:41.85 ID:LoW5JUMG.net]
続きはよ

386 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 01:23:49.16 ID:tByDu0vN.net]
続き見てきたけど、デザインパターンが分かって書いているとは思えないところがなんとも。

387 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 01:57:49.42 ID:mBc+6kiF.net]
続き読んでないけど、オカマなんか?

388 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 10:08:06.94 ID:tByDu0vN.net]
いや、オナホのソフトを作っている会社の社長。
ハードの話をすっ飛ばしていきなりオナホ界のジョブズだとかw

389 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 11:55:06.72 ID:2wcEJRw7.net]
さて、短い旅から帰ってきた
頭からの再帰、明日にでもやろう
その前に
頭からとか、末尾からとか
末尾再帰に関わる意味で言ってるんか?
おれは算術式の頭から見ていく
という意味で言っていたが
それにしてもなんでこんな簡単な問題が!
初心者の俺は根本的に問題を誤解してるのか?
ま、いいや、明日には書いておく

390 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 14:05:33.54 ID:n8bRVLF6.net]
>>389
少なくとも>>377で言ってる末尾は、再帰の話なんて一切してないよ。
単純に数式文字列の最後の文字と言う意味ね。

391 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 20:22:58.60 ID:peygn8xB.net]
>>374
課題では中置を逆ポーランドにだったけど、アルゴリズムの都合上、
中置もポーランドも逆ポーランドに変換(無論、逆ポーランドはそのまま)

また、各種記法の混在を認める
((1 + (* 3 5)) (8 - 2) (2 5 expt) +)
でもよし

方針 式の頭からワンパスで変換を終了する

使用言語 Scheme

codepad.org/Ogp2Lzwh

392 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 20:41:37.31 ID:2wcEJRw7.net]
>>391
どひゃ!
>>391は変数と演算子を区別していない!

式の計算ではなく
式の変換だけの課題だった!

もう、変換だけでなく計算してしまう過大なら楽なのに!
(今日は寝る)



393 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 20:44:47.52 ID:2wcEJRw7.net]
(number? x)のところを
(number (eval x ()) )にすりゃいいな

394 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 08:05:58.63 ID:wP+UVhzo.net]
>>391
式に変数も認めるバージョン
演算子情報はは演算子データベースに保持

codepad.org/c65AyXpd

395 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 09:00:44.75 ID:ZPrSoRKy.net]
気持ち悪い

396 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 09:23:14.89 ID:wP+UVhzo.net]
あはは
ゲロはいてろ

397 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 17:36:11.48 ID:SXeDLzrE.net]
再帰プログラムを非再帰プログラムに変換する方法が理解できません。

たとえば、フィボナッチ数列を再帰的に計算するプログラムを
スタックを使って非再帰的に計算するプログラムが野崎昭弘さんの
本に載っているのですが、何度読んでも理解できません。

どうすれば理解できるようになりますか?

398 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 18:03:16.22 ID:lP/gHzU8.net]
たまたまそのコードと自分の相性が悪い、といったようなことはあるから、
他の例をさがしてみたら?

399 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 18:38:21.93 ID:rkx/vo/u.net]
>>397
fibonacchi数列の非再帰表現をするにはごく普通にwhileループを使って実現できる
f(n) = f(n-2) + f(n-1)
のf(n-2)の値を例えば変数prev2に保存し
f(n--1)の値を例えば変数prev1に保存すれば
f(n) はprev2 + prev1で求められる
それを変数ansに格納すれば
while ループごとに
 ans = prev2 + prev1
prev2 = prev1
prev1 = ans
と更新していけばよい

また、f(1)=f(2)=1なのでそれはwhileループで処理しない。逆に
f(3)以上の値をwhileループで求めればよい

具体的には、これを見ろ
codepad.org/vdi9qyqK

400 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 18:41:31.99 ID:lP/gHzU8.net]
フィボナッチを再帰的じゃなく求める方法についてじゃなくて、
再帰的なコードのループへの変換がわからない、ということでしょ。

401 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 18:42:59.47 ID:rkx/vo/u.net]
ん?スタックを使いたい?プッシュしてな、いきついたら、ポップするんだよ

402 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:13:51.53 ID:a2G3KqVr.net]
>>399
まあ再帰は基本的に遅いけど、メモ化すればずっとマシになるし(震え声)
C++で書いてみたサンプル↓
codepad.org/HgtP5slM



403 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:17:07.35 ID:a2G3KqVr.net]
>>400
まあフィボナッチは末尾再帰(非再帰型にしやすいもの)の中では定番ですし……
そうでなくてもスタックが使えれば原理的にはなんだって非再帰にできるはずだが
ja.wikipedia.org/wiki/%E6%9C%AB%E5%B0%BE%E5%86%8D%E5%B8%B0
www.math.kobe-u.ac.jp/~taka/asir-book-html/main/node67.html

404 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:34:10.95 ID:6FN1Wxeb.net]
>>403
ではAVL木や赤黒木(二色木)を非再帰に書き下ろしてみてくださいな

405 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:38:01.88 ID:a2G3KqVr.net]
>>404
「原理的に」つっただろ……なぜお前の代わりにそんな面倒なことする必要がある?

406 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:39:42.73 ID:6FN1Wxeb.net]
>>405
できないのですね

407 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:54:10.14 ID:84RD4hek.net]
煽っても何も得られないと思うぞ

408 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 20:11:01.93 ID:6FN1Wxeb.net]
ということにしたいのですね

409 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 20:22:30.15 ID:lP/gHzU8.net]
CPS変換すればなんでもGOTO

410 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 23:21:34.01 ID:irORkSf3.net]
関数呼び出すは引数をスタックに積んでgotoしてるんだものな。

411 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 13:14:23.25 ID:6fCCnAU/.net]
呼び出した場所の情報もスタックに積まないと戻れないぞ

412 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 13:28:37.03 ID:Ml/OqnCm.net]
それも引数だと思えばいい。

ていうかCPS変換てのは、戻らない形にするプログラム変換だから。



413 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 15:05:44.99 ID:r0DUx653.net]
「継続」だな
引数だけ渡しても再開できるとは限らんから

414 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 14:33:40.46 ID:kmKCNCUr.net]
「再開できる」とはスタックは一本しかないことを認めているようなもの

415 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 17:10:06.80 ID:Eb7sh+a5.net]
アクティベーションフレームはスタックである必要性ないから

416 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 11:33:25.46 ID:327eLNTn.net]
こっちもよろしく

アルゴリズムとデータ構造について語ろう
ai.2ch.net/test/read.cgi/math/1379334483/

417 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 15:13:54.42 ID:MlM1D9Ph.net]
a=a+1 を解釈する時点で混ぜるな危険

418 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 15:48:05.32 ID:327eLNTn.net]
とっつきやすいスレはここ。数学板は基本的に過疎なので遊びにきてほしい

P vs NP
ai.2ch.net/test/read.cgi/math/1344808587/

419 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 16:44:08.38 ID:d423R2AO.net]
>>418
呼ぶな

420 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:22:21.54 ID:EC+gzOW5.net]
>>397
再帰の技法 基本的考え方・アルゴリズム・プログラミング
www.amazon.co.jp/dp/4434085972/

この本良いよ。
階乗、フィボナッチ、ハノイあたりから始まって再帰を使った問題を解説している
もちろん再帰をループに書き直す考え方とかも入ってる

再帰だけ取り上げてる本ってありそうでなかったけど、苦手な人はこういう本で
一度基礎からちゃんと勉強した方が早道だと思う

421 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:24:47.89 ID:g/OODa/4.net]
俺は買わないけど言語は何使ってるの?
アマゾン見てみたが書いてなかったな、使用言語

422 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:33:08.26 ID:vwK3Zsni.net]
表紙に書いてあるけど
中身もそれかどうかは不明



423 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:39:11.30 ID:jH6wT1ov.net]
なか見検索で見た限りは純粋なCだよ
でも索引まで入れて140ページちょいって少なすぎないか?

424 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:42:44.47 ID:vwK3Zsni.net]
なかみで見れた
もうおなかいっぱい

425 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 01:09:20.80 ID:g/OODa/4.net]
C言語で再帰の本かい
そういうのもあるんだなあ

426 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 02:27:20.02 ID:Viwfu6Pv.net]
>>421
そのページの表紙の写真の下にある
[この本の中身を閲覧する]をクリックして出てくるサンプルの3ページ目の下から3行あたりに
「この本ではC言語を用いてプログラムを示すことにしますので、読者はC言語の知識があるものとします。」
と書いてあるぞ。

427 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 02:28:45.56 ID:Viwfu6Pv.net]
>>426
× サンプルの3ページ目
○ サンプルの2ページ目

428 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 03:31:35.37 ID:2Sfp9Dnc.net]
お前ら何か紹介されるととにかくまずけなしまくるよな
読んでさえいなくても

429 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 06:19:42.11 ID:g/OODa/4.net]
>>426
さんくす、見てきた
もう、お目目キラキラ一年生のために書きました!って言っていいくらいに丁寧にゼロから書いてる感じだった
「再帰?わかんねえよ」
「再帰の本ってリスプとかだろ?
べらんめえ!こちとら江戸っこでぇ、カッコカッコでコケコッコーじゃ埒が明かねえ!」
とか思うがヒトにはいいかもね
(俺は買わないけど)

430 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 06:21:20.87 ID:g/OODa/4.net]
(フリックで打ってると誤変換ふえるなあ、慣れなきゃ)

431 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 12:28:18.66 ID:W6i6Hy/C.net]
うぜえ

432 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 14:11:02.49 ID:g/OODa/4.net]
じゃ、しんでろ



433 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 14:59:53.72 ID:oNallj0q.net]
NGNG

434 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 20:30:31.87 ID:YRg9mIiY.net]
>>428
べつにいいんじゃね、挨拶みたいなもんだよ

毎度のことなんで紹介する方もわかってるでしょ

435 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 03:21:51.67 ID:7s/YdHrO.net]
>>420
void main() だと?!

436 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 08:32:11.08 ID:O+De570m.net]
>>435
VSなら間違ってないから(震え声)
それに定説は「void main()な入門書は大概糞」ってだけだし

> なお、C/C++の言語そのものの解説ではない書籍、例えば圧縮アルゴリズムに
> 関する書籍に void main() のような記述があったとしても、その書籍の有用性とは
> 直接関係ないので、大目に見てあげてください。
www.kijineko.co.jp/tech/superstitions/void-main.html

437 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 09:59:35.52 ID:o+iely1Y.net]
ttp://www.youtube.com/watch?v=FbqCbc7tFZg
総務省、「データサイエンス」力の高い人材の育成進める方針

438 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 14:14:56.29 ID:H+u5tE5j.net]
組み込みを長くやっていた人なら
void main()とか、無限ループしてmain()から抜けないとか、
日常茶飯事の感覚だろうな。

439 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 14:19:38.07 ID:H+u5tE5j.net]
gotoも日常茶飯事だな

440 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 14:50:19.52 ID:iRT5FyvM.net]
組み込みは"hosted environments"じゃないことが多いからな。
"free standing environments"ならmainは必要ない。ある時の型も任意。

441 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 15:06:23.11 ID:jIjiIgN7.net]
437のリンク先の要約をありがとう

442 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 16:42:26.70 ID:eTy5fHBW.net]
まあ C はオールマイティーだからな‥実装がすべて規格なんて糞食らえ



443 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 05:00:36.21 ID:7RR9zZ5c.net]
つまり組み込みプログラマーは知的底辺ということか

444 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 05:01:24.48 ID:7RR9zZ5c.net]
動きゃいい!の匂いがプンプンする

445 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 16:30:01.83 ID:hm+Oq1Eo.net]
実際、動きゃイイよっての多くないか?
単価が高めの案件ほど特にw

コードレビュー無し。
テスト仕様は徹底的だが

446 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 16:34:24.76 ID:hm+Oq1Eo.net]
高給な現場ほど、なぜかやり方を突っ込まれない。
悪意をもてばやりたい放題出来る。費用も言い値。
まあ悪意はそうそう持ち込めるものじゃないが。

多分STAP細胞の現場もそうだったんだろうな、と想像出来る。

447 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 16:39:58.16 ID:2EOO5SfK.net]
組み込み系のひとのソースは汚いのが多いよ
ほんと動けば良いのノリだけで造ってる
もちろんまともなひとがいない訳じゃないけどね

448 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 17:35:27.78 ID:zexIr6VF.net]
>>447
一番最初のソースがひどいとダメだよね
次からはちょっと変更する工数しかないから、みんな割り切ってそのまま変更
まともな人は黙って or ダメソースをなんとかする工数うんぬんで上司と揉めて辞めてしまう

449 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 17:41:16.64 ID:MmoG7Ddq.net]
ハードウェアが仕様通りに動くかどうかわかりません、もしくは仕様ありませんって世界だろ?
ソフトウェアも相当部分が使い捨てだよね。完全にスレ違いの話題。

450 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 20:01:38.46 ID:X19dTLG/.net]
しょうがない

451 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 20:03:23.97 ID:OmwWZrbT.net]
>>449
へ?ハードが完全とはいえんから
ソフトも適当でいいっていっるのか?

じゃ、馬鹿だ

452 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 20:04:28.73 ID:OmwWZrbT.net]
組み込み系のニンゲン
だめな奴おおすぎ



453 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 20:56:04.36 ID:IYI3/sk2.net]
のりじゃ作れんよ、凍死老

454 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 21:13:32.37 ID:JYHVd/sm.net]
>>447
組込みに限らず、出来る人は2chなんかに来ないだろ。

455 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 21:14:22.88 ID:hqsmsqu0.net]
クロック数単位の動作速度保証組み込んだ高級言語ってあるんかいなとふと思った

456 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 21:28:06.44 ID:Evci24oh.net]
エミュレータでカウントします。

457 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 01:48:47.18 ID:Z4oEYHwK.net]
機能実装の作業がいつのまにかハードの不具合調査になってたり、
結果、ソフトに柔軟でかつ早急な対応が必要になるし。
クラス設計とかやった方がいいのかもしれないが、2の次になるとかそういうことだと思う。

458 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 01:52:54.96 ID:Z4oEYHwK.net]
組み込み系は、ハード屋に使いまわされてて気の毒に思うことも多い。

459 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 05:21:25.51 ID:5jlmL2lS.net]
そりゃハード屋からみりゃ組込み君は奴隷
ハードのために仕事しろ!
だし
アプリのためのOSのためのハードじゃないからな

460 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 21:15:40.07 ID:wU314ZfN.net]
このように、スレ違いであろうと自己憐憫の機会は決して逃さないFW屋であった。

461 名前:デフォルトの名無しさん [2014/06/05(木) 13:01:25.59 ID:TEbe8oH8.net]
整数x, yの範囲内で
z個の重複しない乱数を発生させるためのアルゴリズムはどうしますか?

【例】 x=100, y=200, z=5だと、121, 129, 142, 189, 195みたいなのを返す(当然y-x+1>zである必要がある)。

462 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 13:22:26.50 ID:frJCi6Xi.net]
>>461
xからyまでの個数の配列作って乱数でシャッフル
先頭からz個取得

でいいんじゃないの?



463 名前:デフォルトの名無しさん [2014/06/05(木) 13:30:50.33 ID:TEbe8oH8.net]
>>462
シャッフルはオレのプログラミング哲学に反する。
先頭から取得するとどうしてても最初のほうの数が選ばれる確率が高くなるのは避けられない。

464 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 13:40:17.83 ID:XOt4XuJl.net]
int a[z];
r=y-x+1;
for(i=0;i<z;) {
a[i]= x + 乱数生成(r);
for(j=0;j<i;j++) {
if(a[i]==a[j]) break;
i++;
}
}

465 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 14:01:49.36 ID:frJCi6Xi.net]
>>463
>先頭から取得するとどうしてても最初のほうの数が選ばれる確率が高くなるのは避けられない。
根拠は?

z個取得する位置もランダムで選択してもいいんじゃないの

466 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 14:06:43.74 ID:XOt4XuJl.net]
取得位置がランダムならシャッフルする必要ない。
シャッフルする必要なければ配列に入れる必要もない。
選んだ配列のインデックスが重複すれば無視しなければいけないのだから>>464と何ら変わることはない。

467 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 14:27:18.69 ID:frJCi6Xi.net]
>>466
配列からz個読み出す初期位置を先頭からズラすって意味なんだけどね

468 名前:デフォルトの名無しさん [2014/06/05(木) 15:40:02.23 ID:hSA2XS33.net]
オブジェクト指向は愚かな考え。
peace.2ch.net/test/read.cgi/tech/1393660194/

469 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 16:22:07.85 ID:XOt4XuJl.net]
例えばFisher-Yatesシャッフルすればコスト少なくいい塩梅にシャッフルできるから、
(と言ってもzでなくy-xのオーダーになるので、
オーダーは変わらないものの>>463よりコスト安になることはない)
>>463の懸念もあまり意味は無い。

しかし仮にちゃんとシャッフルできてないのでは?って懸念を認めるとすると、
最初の方だけ偏りがあるという変なシャッフルをしない限り、
どこから取っても偏りがあることには変わりない。
そういうわけなんで>>465は修正案の部分がおかしい。
「根拠は?」のところはいいんだけど、良いシャッフルアルゴリズムを挙げられればもっと良かった。

470 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 16:55:24.44 ID:jEZV0Sf8.net]
>>461
こんなかんじかな。
先頭から、それぞれが選ばれる確率をきちんと設定して、
すべて等確率になるようになってる……はず。
検定は自分でやってくれ。

void
choose(int x, int y, int z) {
int i;
int n = z;
int d = (y-x+1);
for (i = x; i <= y; i++) {
if (n/d の確率で真) {
printf("%d ", i);
n--;
}
d--;
}
}

471 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 17:03:39.05 ID:jEZV0Sf8.net]
あ、すまん。ぜんぜんちがった。
忘れてくれ。

472 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 17:09:28.41 ID:frJCi6Xi.net]
>>469
xとyに大きな隔たり、つまり配列が大きい場合、最終的にz個取り出す位置にもランダム性があれば
よりランダム性のあるz個の列を何度も取り出せるって意味合い程度だよ、思いつきだよ

シャッフルでありがちな実装ってこんなんかな
乱数生成エンジンが質の良い物ならこんなんでいいと思うけどね

int size = 10;
int a[size] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

for(int i=size-1; i>0;i--)
{
int j = rand()%i;
swap(a[i], a[j]);
}



473 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 17:19:32.12 ID:jEZV0Sf8.net]
>>461
こうだ。
dCn はコンビネーションな。d!/(n!(d-n)!) のこと。

void
choose(int x, int y, int z) {
int i;
int n = z;
int d = (y-x+1);
for (i = x; i <= y; i++) {
if ( (d-1)C(n-1) / dCn の確率で真) {
printf("%d ", i);
n--;
}
d--;
}
}

474 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 21:11:11.97 ID:C2lCmQ2j.net]
>>461
一応突っ込んでおくと、それを乱数とは言わない。
乱数を加工して得られる数列。

475 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 02:53:59.42 ID:cO/jAhvR.net]
1−100の乱数で、重複しない乱数って重複が許されている乱数より、より
乱数じゃないよね。だって、後の方になるほど次に出る数に制限があって予想が
つくわけだし。
99個目の次は100%当てられる
そんなの乱数って呼んで良いの? 数学的に。

476 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 08:45:46.74 ID:lrmBy0jf.net]
乱数として考えるのは「幾つかの数からなる集合」としてであって、
「集合に含まれる個々の数」では無いのだが。

さっきから馬鹿なこと言い続けてる奴がいるな。

477 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 09:08:36.98 ID:F77g5hNR.net]
>>476
それは乱択

478 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 09:09:56.94 ID:DTdJKogB.net]
>>475
そうだよ
それは乱数じゃないよ

479 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 02:24:09.38 ID:RWltX+Oe.net]
順列の集合から1個をランダムに取り出すんだと解釈すれば乱数やね
>462の設問は言葉足らずかもしれないが、意図は通じるでしょ

480 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 07:07:52.13 ID:SxbAzKvi.net]
N回目の試行がN+1回目の試行に影響を及ぼしてはいけない
>>461 は ambiguous だから知らんが
>>475 は乱数ではない
>>479
順列の集合から1個をランダムに取り出す
の後で1個をもとに戻せばよい

481 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 11:56:57.57 ID:kpprM5q6.net]
>>480
その定義だと、線形合同法は乱数じゃなくなるね。
線形合同法を禁止するわけにはいかないのだろうか。

482 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 12:05:27.70 ID:u3dUy4Sv.net]
影響って言葉の意味がズレてる。

「箱の中から1個取り出して元に戻さない」方式の場合は、取り出す前は 1/N の確率だったものが、
1/(N-1) の確率に変化してしまう、ということを言っている。

決定的である、という意味では、線形合同法に限らず、真の乱数でない、あらゆる疑似乱数が
決定的だから、線形合同法だけ槍玉に上げるのはおかしい。



483 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 12:25:19.08 ID:GAICIAD/.net]
馬鹿な476の話題を引きずらなくて良いよ

484 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 12:28:22.09 ID:kpprM5q6.net]
>>481
線形合同法はN回目に取り出された物がN+x回目(xは1から周期の長さ)に取り出される確率は0じゃん。
線形合同法は「箱の中から1個取り出して元に戻さない」方式だよ。
481=483だとすると主張がよく分からない。

485 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 12:57:15.27 ID:u3dUy4Sv.net]
>>484
その理屈では、M系列だろうがMTだろうがXORShiftだろうが、ありとあらゆる方式に同じことが言える。
単に状態空間が、線形合同法は通常32ビットぐらいで、MT19937の場合は19937ビットある、というだけ。

486 名前:118 mailto:sage [2014/06/07(土) 13:01:13.03 ID:GcMNObkn.net]
>>461はhashmap使えばO(z)までに効率化できるな。

487 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 13:17:13.74 ID:kpprM5q6.net]
>>485
ありとあらゆる方式なんだ?
まあそれは置いといて、481=483だとすると主張がよく分からない。
どういうものなら乱数なんだ?
線形合同法やM系列は違うわけだね。
これは「箱の中から1個取り出して元に戻さない」方式というのを
否定はしてないようだし。
何か詳しい人かと思ったんだけど、違うのかな。

488 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 13:23:04.14 ID:u3dUy4Sv.net]
極端なことを言えば、決定的な(つまり、普通の)擬似乱数列は、
決定的なんだから、箱の中からどれかを選んで取り出しているのではなく、
ただ単に一列に数が並んでるだけ。

この説明でわからないなら消えろ。

489 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 14:47:13.36 ID:kpprM5q6.net]
>>488
あれ?
線形合同法は「箱の中から1個取り出して元に戻さない」方式ではないという主張なんだ。
線形合同法はN回目に取り出された物がN+x回目(xは1から周期の長さ)に取り出される確率は0で、
ただ単に数が並んでるだけではないんだけど。
それ(確率は0ということ)は決定的かどうかとは無関係。

主張がよく分からないので自分ではっきり言って欲しいんだが、
「箱の中から1個取り出して元に戻さない」方式は乱数でなくて、
線形合同法は乱数だと言っている?

490 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 15:39:11.11 ID:SxbAzKvi.net]
線形合同法は乱数じゃないよ

491 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 07:41:14.21 ID:UFZstAgU.net]
厳密には乱数じゃないから擬似乱数なんでしょ?

492 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 07:43:34.23 ID:397riybv.net]
はっきり結論出てしまうとつまらんな



493 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 19:49:00.06 ID:2o23JRSC.net]
では聞くが、完全な乱数列ってのはどうやったら手に入るのだ

494 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 20:15:33.27 ID:HIL+OgKB.net]
専用ハードウェアが必要だね。

495 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 23:49:23.31 ID:0ybo3LG4.net]
> 主張がよく分からないので自分ではっきり言って欲しいんだが、

おまえが何を言っているのかよくわからない。
ていうか、自分がわかってないだけだろ。

496 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 01:06:47.47 ID:XaG4yhUa.net]
シードを作るだけじゃなくて、量子揺らぎとかで完全な乱数を作るハードってないの?

497 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 01:20:19.44 ID:quK33S+U.net]
>>494
AVX 以降は「専用ハードウェア」が入っているらしい
peace.2ch.net/test/read.cgi/tech/1192628099/337

498 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 01:30:26.49 ID:7KvpyEFp.net]
random_device

499 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 08:54:20.67 ID:9rhLvykP.net]
同じ数字が二回連続で出る可能性が0%
ってのは乱数じゃないよな
どう見ても

500 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 08:57:33.70 ID:t5f3UYqy.net]
だから「擬似」乱数なのだと何度いえば

501 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 10:11:13.10 ID:0wp3BeLp.net]
「乱数らしさ」の検定のひとつである誕生日検定では、線形合同法は成績が低い、と。
それだけの話なんだが。

502 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 10:15:20.72 ID:0wp3BeLp.net]
もしかして前にオレオレ生成系を自慢しようとして壮大に自爆していた奴か?



503 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 11:57:14.10 ID:dLnT9sND.net]
乱数デバイスも「乱数」ではない。

504 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 13:00:09.87 ID:w5pULqfp.net]
ラプラスの魔ですね分かります

505 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 14:22:42.28 ID:8gvU9cRE.net]
乱数という呼び方は無機質でいやだな。
出来れば淫数と予備隊。

506 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 14:25:39.03 ID:EjU0b0TW.net]
賛成

507 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 14:42:13.60 ID:WYLHhV4p.net]
淫らと濫りと乱れは違うぞ。

508 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 01:16:14.10 ID:NONZII8t.net]
ハノイの塔のアルゴリズムがどう考えても理解できません。
誰か分かりやすく説明してください。

509 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 01:40:28.92 ID:g5Yp38/D.net]
>>508
そんな解説サイトは山ほどあるので、
ググって10個くらい熟読してから、
それでもダメなら諦めましょう

510 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 01:47:31.20 ID:ZXkL1tuI.net]
>>508
再帰を使わない方法なら判る?

511 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 08:08:51.06 ID:w9WFMXlw.net]
>>508
机の上に500円玉と10円玉と1円玉を積み重ねる
Nが3の場合のプログラムの動作と比較しながら動かす

512 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 10:23:44.24 ID:Asjcm40b.net]
つーか、再帰を使ったほうがわかりやすいだろ。
たいていのプログラムは、正解ありきで上の円盤から動かす前提で書いてあるから、
それを直接理解しようとするとわかりにくい。

棒を 1 2 3 として、塔を 1 → 3 に動かしたい、とするだろ。
すると、その手続きは次のように分解できる。
・ 一番下の円盤を除く塔を 1 → 2 に動かす
・ 一番下の円盤を 1 → 3 に動かす
・ 残りの塔を 2 → 3 に動かす

これで、動かす必要のある塔のサイズがN-1になったわけだから、
これをどんどん再帰的に適用してゆけば、円盤だけを動かす手順まで
分解できる。



513 名前:デフォルトの名無しさん [2014/06/10(火) 10:35:17.31 ID:2vb7DWIF.net]
こんどベトナムのハノイへ旅する予定です。
が、いま話題のハノイの塔、あるいはそれに関連する塔はハノイのどこにありますか?

514 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 10:42:35.25 ID:Asjcm40b.net]
無いけど、そういえばなんで「ハノイの」塔なのに、日本でよく言われている「伝説」だと、
インドのベナレス(ワーラーナシー)にある、という話になってるんだろう。

515 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 13:12:41.55 ID:5o9Z0dmD.net]
>>508
その感想はほとんど理解している。
再帰の計算力に気づいているわけだから。

516 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 16:41:40.27 ID:xo5SfOIJ.net]
連立一次方程式じゃん

517 名前:デフォルトの名無しさん mailto:sage [2014/06/10(火) 16:43:33.18 ID:xo5SfOIJ.net]
誤爆失礼

518 名前:デフォルトの名無しさん mailto:sage [2014/06/11(水) 14:33:34.65 ID:QAZZuHs2.net]
最終局面から、さかのぼって考える
最終局面Cの1つ前の局面はB、その前はAなら

A(B(C))
これは、Aを呼ぶと、Bを呼んで、Cを呼んで、
Cが処理され、Bが処理され、Aが処理される

呼ぶ順が、A→B→C
処理される順が、呼ぶ順の逆で、C→B→A

ゲーム木でもよく出てくる
最終局面を取れば勝つ場合に、
いきなりCへ持っていくのは、難しいので、
その前の局面Aを目指すとか

519 名前:デフォルトの名無しさん mailto:sage [2014/06/11(水) 22:15:16.94 ID:01hDVrAo.net]
処理する順はF{ DO; F(); }なのかF{ F(); DO; }なのかによる。

520 名前:デフォルトの名無しさん [2014/06/20(金) 07:05:54.29 ID:8+/CaDiy.net]
qiita.com/kenokabe/items/41189c45001321c9e283
Swiftで脱アルゴリズム!
iOS開発を関数型(宣言型)プログラミングへパラダイムシフトしてみる【脱アルゴリズム宣言@】

521 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 11:50:08.13 ID:UkLSHGsY.net]
>>520 チューリング-チャーチの提唱について256年勉強してからまた来いやヴォケ

522 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 14:33:02.92 ID:VkQHLz+n.net]
>>521
おまえ何様?
反論あったら表から具体的にどうぞ?
多少オーバーなレトリックはあったものの、内容にはなんら矛盾はないね
好評だったし、お誉めのメールも何通か頂いたが?



523 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 14:50:48.37 ID:UkLSHGsY.net]
> お誉めのメールも何通か頂いた
本人かよ。

みなさんに通告です。
このスレには「毛の壁」と呼ばれているバカが常駐しましたので、
しばらくレスにはご注意ください。

524 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 16:15:26.24 ID:QkksQtMn.net]
>>520
関数型プログラミング(によって書かれたコード)とかアルゴリズムの最たるもののひとつじゃねえか

525 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 16:32:31.25 ID:a0oeUuGM.net]
これがご尊顔だ
https://avatars2.githubusercontent.com/u/1316994?s=460

526 名前:後藤 mailto:sage [2014/06/20(金) 18:28:17.36 ID:c8EK/sly.net]
>>520
言ってることは至極真っ当だと思う。
なかなか国内にはここまで書ける奴は居ないね。

527 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 20:49:13.82 ID:fiYVjyLm.net]
>>520
ツッコミどころはいくつかあるけど、
軽いノリで書いた記事だと思えば些細な事柄だろうし、
よくできていると評価していいレベルだと思う

自分としては、FRPに関する非関数型言語プログラマ向けの
記事を見たのは初めてだったし、
現時点でのFRP入門からSwift/iOS上のアプリケーション開発へと
どう内容をつないでいくのか?という、
著者のプログラミングと文章執筆の能力に興味がある
もし最後までたどりつけたなら、評価も大絶賛へ変わるかもしれない
期待している

528 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 20:54:30.58 ID:7LN6wgSV.net]
>>520
へ?これが?
絶賛、、よくかけてる?

どひゃあー!!!!!!

脱アルゴリズム!!!

精神病やでぇ

529 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 20:56:12.91 ID:7LN6wgSV.net]
脱アルゴリズム?
へ?
へへ?
へへへのれれれ!

peace.2ch.net/test/read.cgi/tech/1403215505/18

530 名前:528 mailto:sage [2014/06/20(金) 21:02:27.05 ID:fiYVjyLm.net]
// 一つ書き忘れていた

どうせカキコするならこのスレじゃなくて
この板か新Mac板のSwiftスレにすれば
スレ住人の反応も違ったものになっていたと思う

531 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 21:07:56.30 ID:UkLSHGsY.net]
わかったから後はこっちで。
peace.2ch.net/test/read.cgi/tech/1403215505/l50

532 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 21:23:26.72 ID:bvHvYDuS.net]
ガリバーやってるぞ、見てないけど



533 名前:デフォルトの名無しさん [2014/06/21(土) 06:31:53.10 ID:w9O3o4sx.net]
おまえらは頭いい風の馬鹿
数学やれ。出直してこい
岡部健さんの真意をなに一つ理解してなかったことがわかる
まあ無駄だろうけど

534 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 11:47:33.30 ID:dLpzMh1j.net]
>>533
>>531

535 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 13:37:30.18 ID:dwrmXJNu.net]
脱アルゴリズムの時代にこのスレは時代遅れすぎるよな。
原始人かお前らは?

536 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 14:20:46.12 ID:98vgiiX3.net]
脱アルゴリズム!
ぷぷぷ

537 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 14:53:56.17 ID:fFa5Dk5f.net]
なんちゃってギークが本物のギークに嫉妬か
おまえら、「数学やれ」。

538 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 14:54:34.09 ID:fFa5Dk5f.net]
その人のgithubのコード見てからほざけ

539 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 15:32:24.01 ID:rl9mUq6v.net]
ギリシャ人がどうかしたのか?

540 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 17:39:33.52 ID:/6VRtGE8.net]
>>537
ぷぷぷ

541 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 17:40:01.08 ID:/6VRtGE8.net]
>>538
精神病だと見抜けない、三流君、乙!

542 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 17:47:22.43 ID:/6VRtGE8.net]
岡野っての、愚かしくも顔写真出してるだろ
本人歯カッコイイとおもってるんだろうが
ありゃ、露骨に精神病の写真

特徴は線源した世界を、それのみがありうる世界とみなし、演繹的帰結は、それまた直ちに世界そのものとかみなすこと

アホさらけ出しのアルゴリズムの独善的定義と、そこからの演繹
もろそのものズバリ

もし
>>527が、本人の自演でないなら、そのあたり把握できん同類じゃないか?
要するに、精神病か形而上頭のオバカさん



543 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 17:47:59.96 ID:/6VRtGE8.net]
×線源
○宣言

544 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 23:41:14.26 ID:oxWL7iix.net]
パンツ脱いでクソをする手順もアルゴリズム。間違えると大変なことに

545 名前:デフォルトの名無しさん [2014/06/22(日) 01:16:03.62 ID:upDz43Y5.net]
むしろ
プロトコール

ルーティーン
だな

546 名前:デフォルトの名無しさん [2014/06/22(日) 16:09:55.15 ID:gWKNiVOA.net]
>>535 >>536

え?何?脱糞がどうしたって?

547 名前:デフォルトの名無しさん mailto:sage [2014/06/22(日) 21:57:11.46 ID:zl3FAxHi.net]
歌舞伎町で脱糞事件があったな

548 名前:デフォルトの名無しさん [2014/06/24(火) 13:06:46.35 ID:PkfA062R.net]
おい、脱アルゴリズムの人の言い訳エントリ来たぞ
ttp://qiita.com/kenokabe/items/821ce4020644372b648c

549 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 13:14:34.87 ID:B+cmMGNo.net]
わきゃきゃ、やっぱり岡部っての精神病だろ
ネットでの批判に対して、ねちねちと記事の中で攻撃してるのが笑える
要するに形而上学頭で馬鹿ということ

550 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 13:30:57.89 ID:MKS7z3Yf.net]
>>548
ガチで関数型やreduceやmapはアルゴリズムでないと思ってたのか
真性だったとは

551 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 13:36:10.33 ID:AfD6RzLL.net]
こっちでやれ
peace.2ch.net/test/read.cgi/tech/1403215505/l50

552 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 15:39:07.42 ID:4uvPp5vF.net]
言語により吸収されているかどうかの違いって話だけで
ここまでアレコレ記事をかけるってのは一つの才能だな



553 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 17:49:39.30 ID:6s2VwAqc.net]
>>548
コイツここまで言われて自分がアホだってまだ気付いてないのか

554 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 17:57:03.88 ID:YQzGnuEQ.net]
>>548
うーむ

555 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 18:36:15.52 ID:YQzGnuEQ.net]
>>548
この人のTwittersickuserという別ブログ読んだけど、
精神的にアレな人なんじゃない??

556 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 18:58:09.06 ID:AfD6RzLL.net]
こっちでやれ
peace.2ch.net/test/read.cgi/tech/1403215505/l50

557 名前:TON mailto:sage [2014/06/24(火) 22:03:17.38 ID:rW7Z7bUU.net]
そんなに怒るなよ、毛。悪かったよ。
昨日から突然500人ぐらい閲覧数が急上昇したのは確かに俺が宣伝したことだけど、
お前は自分の書いたことに自信があるんだろ?だったら宣伝してやったようなもんだ。怒るなよ。
あと、俺だけに切れるな。月琴さんにも怒れw

558 名前:デフォルトの名無しさん mailto:sage [2014/06/24(火) 23:28:30.77 ID:4uvPp5vF.net]
staticおじさん並にヤバイな

559 名前:デフォルトの名無しさん [2014/06/25(水) 04:27:40.49 ID:Qab2L3Zv.net]
これからは脱アルゴリズム。

560 名前:デフォルトの名無しさん mailto:sage [2014/06/25(水) 04:45:54.09 ID:RqZOIKvI.net]
これからしばらくは脱アルゴリズムをNGワードに入れましょう。

561 名前:デフォルトの名無しさん mailto:sage [2014/06/25(水) 11:13:03.66 ID:Fqus7fR8.net]
脱毛アルゴリズム!
はずかしい

562 名前:デフォルトの名無しさん mailto:sage [2014/06/25(水) 12:04:27.28 ID:GNkL2J2x.net]
僕の毛根も閉鎖されそうです><



563 名前:デフォルトの名無しさん mailto:sage [2014/06/25(水) 13:23:41.34 ID:Qmk+f2Xz.net]
>「アルゴリズム」とは「バズワード」であり、「一般的に命令型プログラミング
>パラダイムを指し示す」のであり、その他の使用は一般的ではない、ということです。
勉強になるな。

564 名前:デフォルトの名無しさん mailto:sage [2014/06/25(水) 15:25:18.64 ID:z2YOEiqg.net]
>>563
あほ

565 名前:デフォルトの名無しさん mailto:sage [2014/06/25(水) 16:52:04.37 ID:sLvKN4KO.net]
脱毛の人は一人アホの世界を生きてることがよく分かる一文だ。

566 名前:デフォルトの名無しさん [2014/06/25(水) 18:34:01.55 ID:ih8uR3Oe.net]
qiita.com/kenokabe/items/821ce4020644372b648c

>「アルゴリズム」とは「バズワード」であり、「一般的に命令型プログラミングパラダイムを指し示す」のであり、
>その他の使用は一般的ではない、

567 名前:デフォルトの名無しさん mailto:sage [2014/06/25(水) 19:03:06.54 ID:gOHbwnP9.net]
酔っ払って書いたんですよ 脱アルコリズム

568 名前:デフォルトの名無しさん [2014/06/26(木) 02:29:54.50 ID:IafH8hir.net]
アルゴリズムはバズワードだから脱アルゴリズムするべきなんですよ。

569 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 02:53:42.20 ID:+Qf6QLv/.net]
>>566
この人病人だと思う

570 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 04:12:38.68 ID:CytiCPlP.net]
精神病である傍証が、批判されて頭に来て記事の中でさえそれに対して個人攻撃はじめたことだな
ここでも暴れ出したし

571 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 04:36:56.10 ID:wMY3ZtFA.net]
一般的にアルゴリズムはパラダイムではないから、話がかみ合うことはない

572 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 05:25:55.42 ID:CytiCPlP.net]
>>571
こりゃまた酷い発言が
パラダイムという概念がまるでわかってないな
アルゴリズムの概念にしてもそうなんだが、哲学的認識が低すぎるくせに哲学的なことを言いたがるね、君

ズバリ精神病だろ?
特定の捉え方が心理的に付着してしまい、それ自身の捉え返しが不可能になるんだな
あとは、そこからの演繹的は構築のみ

だから、ああいうお馬鹿な形而上学的珍説が生まれてしまう



573 名前:デフォルトの名無しさん [2014/06/26(木) 05:27:26.24 ID:nwumEtrQ.net]
>>572
     (´・ω・`)
   /     `ヽ.   お薬増やしておきますねー
  __/  ┃)) __i |
/ ヽ,,⌒)___(,,ノ\

574 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 05:29:07.81 ID:CytiCPlP.net]
>>573
わははは
俺を精神疾患者だとしたいのか?
無能、必死のアイデアか?
笑止

575 名前:デフォルトの名無しさん [2014/06/26(木) 05:34:25.20 ID:nwumEtrQ.net]
>>574
     (´・ω・) チラッ
   /     `ヽ.
  __/  ┃  __i |
/ ヽ,,⌒)___(,,ノ\


     (´・ω・`)
   /     `ヽ.   今度カウンセリングも受けましょうねー
  __/  ┃)) __i |
/ ヽ,,⌒)___(,,ノ\

576 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 05:36:49.34 ID:dL4T43Xu.net]
古典でも読んでいた方がマシだなあ
ON COMPUTABLE NUMBERS, WITH AN APPLICATION TO THE ENTSCHEIDUNGSPROBLEM
www.cs.ox.ac.uk/activities/ieg/e-library/sources/tp2-ie.pdf

577 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 05:44:12.40 ID:Dt5A64wL.net]
脱毛アルゴリズムのせいですっかりスレが精神病スレになった
精神病は恐ろしい

578 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 07:28:13.71 ID:8Y9ANwf/.net]
              )
         ,.-―: ̄`ー::::::::::、              (
       /::::::::::::.::::::::::::::::::::::::::::`::、、          ,,        )      )
      /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、          ゙ミ;;;;;,_           (
      l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l           ミ;;;;;;;;、;:..,,.,,,,,
      l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l           i;i;i;i; '',',;^′..ヽ
     l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l           ゙ゞy、、;:..、)  }
     l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l           .¨.、,_,,、_,,r_,ノ′
     ヽ:::: ´、ひ> ;:  l .<ひ>'  、::::::::/         /;:;":;.:;";i; '',',;;;_~;;;′.ヽ
    ヽ:::::    ̄ .)::;  l  ̄   l::::/         ゙{y、、;:...:,:.:.、;:..:,:.:. ._  、}
     、:::::..   /:::; .,-、     l:::/、         ".¨ー=v ''‐ .:v、,,、_,r_,ノ′
    ,―::::::::  ゝヽ- ー' 、    l::/,、ヽ        /;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ 
     l,、,、,,:、:: / ,--、,-.、_ l    /::::::,、,、l       ゙{y、、;:...:,:.:.、;、;:.:,:.:. ._  .、)  、}
   l,、,、,、,、,、::、 `ー ̄-'   /:::::::::::,、,、l       ".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′
   l,、,、,、,、,、,、::ヽ      /::::::::、,、,、,、,ノ:\   /i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ
   l,、,、,、,、,、,、,、,、,,ー― ':::::::,、,、,、,/,、,、,、,、,`  ゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、)  、}
  /,、,、,、,、,、,、,、,、,、:::::::::::::::::::::::::::、,、、,、,、,、,、,、,、   ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′
      

579 名前:デフォルトの名無しさん mailto:sage [2014/06/26(木) 11:53:37.34 ID:xrLN/Cc3.net]
精神病っていうか ID:CytiCPlP みたいな子は、
極度に知能が劣ってるんだと思うよ。
人より二段くらい下というか。

580 名前:デフォルトの名無しさん mailto:sage [2014/06/27(金) 01:24:44.73 ID:6uE5vYGa.net]
脱データ構造、脱アルゴリズム、脱デザインパターンにスレの名前を変えるべき

581 名前:デフォルトの名無しさん mailto:sage [2014/06/27(金) 01:38:14.80 ID:w0MUEsVa.net]
あぼーんばっかりだな……

582 名前:デフォルトの名無しさん mailto:sage [2014/06/27(金) 06:00:31.24 ID:6gnfhLnK.net]
>>579
わはは
俺の著作は国会図書館にゴロゴロ
面白いこというやつだな

評価能力皆無の暴露乙



583 名前:デフォルトの名無しさん mailto:sage [2014/06/27(金) 06:00:57.08 ID:6gnfhLnK.net]
>>579
おまえ、おかべ?
笑いが止まりません

584 名前:デフォルトの名無しさん mailto:sage [2014/06/27(金) 16:27:19.70 ID:iQ4reeO8.net]
国会図書館は出版された図書を網羅的に集めるところだから自慢にはならない。
ぶっちゃけた話、電波本も収蔵してるし。
OPACで調べると多数の大学図書館が所蔵してる事の方がまだいい。

585 名前:デフォルトの名無しさん mailto:sage [2014/06/27(金) 16:41:54.37 ID:IT4HMvNl.net]
本人がこっちのスレに書いても、

レスはこっちのスレに書くようにしてください。
peace.2ch.net/test/read.cgi/tech/1403215505/l50

586 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 03:09:06.82 ID:QkllHUOQ.net]
ますます脱アルゴリズムパラダイムへの変換が進んでいる感じだな世間では

587 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 06:00:01.53 ID:ceaE8o9R.net]
脱毛アルゴリズムのせいでこのスレ荒廃著しいな
さすがは脱毛頭頂

588 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 06:00:48.78 ID:ceaE8o9R.net]
>>586
おまえ、精神病の岡部町だろ

589 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 18:30:22.98 ID:ZqFHAVH4.net]
ほざけ。貴様らナンチャッテコーダーに理解できてるとはおもわないがね
岡部のこと言ってることがおかしかったら論理的に反論してみろ

590 名前:デフォルトの名無しさん [2014/06/28(土) 18:32:33.68 ID:KiCN9c2h.net]
俺も読んでみたけど、岡部が言ってることには別段おかしいところはないと思った

591 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 18:33:17.36 ID:ow7ZB3pO.net]
また岡部が来たぞ

592 名前:デフォルトの名無しさん [2014/06/28(土) 18:35:17.84 ID:KiCN9c2h.net]
岡部認定する簡単なお仕事です



593 名前:デフォルトの名無しさん [2014/06/28(土) 18:37:30.59 ID:KiCN9c2h.net]
理解できる人もいれば、理解できない人もいる。
俺が岡部なら理解できる人と親しくなりたいと思うだろうな。
つまりお前らは岡部から嫌われるべくして嫌われた。
脱アルゴリズムという一語にとらわれてカリフォルニア大卒の
秀才から見放されたブタどもw

594 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 18:41:51.97 ID:ceaE8o9R.net]
>>589
ほーら、もろ精神病
写真ももろ精神病
底辺で精神病なんてやだなあ

595 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 18:43:23.09 ID:ceaE8o9R.net]
>>593
あははは
おまえ、認識が浅いんだよ
科哲でも勉強しろ
むだかなあ、その形而上学頭じゃ

だから、精神病なんだしな

596 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 18:44:19.53 ID:ago1EUHo.net]
反応はあっちのスレに書き込んでください。
peace.2ch.net/test/read.cgi/tech/1403215505/l50

597 名前:デフォルトの名無しさん [2014/06/28(土) 18:44:59.94 ID:KiCN9c2h.net]
>>595
                       ∩___∩
     ,.-―-、             | ノ ノ   ヽ\
   ∩|~_ヽ.╋/∩            /  ●   ● |
   | ノ⌒ ̄ ̄⌒ヽ          ミ   ( _●_) ミ
  /  ●   ● | 重症クマ   /    ̄ ̄\/⌒ゝ
  |    ( _●_)  ミ       彡          / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 彡    |∪|   、゛       .ミ       ヘ_/:::
 |    ヽノ  〈 . プス! . ミ        ミ::::::::
  〉、 ヽ._  _.\___   ミ       ヽミ:::::
   ヽ、__.〉|=|==|(⌒)++++][コ==-〇      \:::
          ̄ ̄ ̄ ̄ ̄   \ \___  ヽ:

598 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 18:45:04.70 ID:ceaE8o9R.net]
>>593
おやおや、自分で脱アルゴリズムは単なる扇動のための表現と認めたな
おまえのやってることは人をだましてイメージ植え付けるやり方
それを指摘されてぶち切れるあたり

もろ精神病

599 名前:デフォルトの名無しさん [2014/06/28(土) 18:47:03.44 ID:KiCN9c2h.net]
>>598
誰が何にどう騙されたのかな?お〜ん?

600 名前:デフォルトの名無しさん [2014/06/28(土) 18:49:07.49 ID:KiCN9c2h.net]
で、お前ら最終学歴なによ?岡部はカリフォルニア大だが?お〜ん?

601 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 18:50:55.34 ID:2CixPdeM.net]
脱アルゴリズムでーす
ビローン

         /_ノ ' ヽ_\
       /(≡)   (≡)\
      /::::::⌒(__人__)⌒:::::\   
      |     |r┬-|     |   
 ,.--――\     `ー'´     /――--、
( )    ( ̄           ̄)    ( )
 ヽ      ̄|            | ̄     /
   ヽ     |    э    |     /   
    ヽ、_(    ,,,,    ,ノ   __ノ
       /    、(U)ノ   \ ̄
     /  /´    `\  \         
    /  /          \  \ 

602 名前:デフォルトの名無しさん [2014/06/28(土) 18:54:50.95 ID:KiCN9c2h.net]
>>601
パシャ パシャ  パシャ パシャ パシャ  パシャ パシャ パシャ パシャ パシャ
   パシャ パシャ パシャ パシャ パシャ  パシャ パシャ パシャ  パシャ  パシャ
 ∧_∧      ∧_∧     ∧_∧  ∧_∧    ∧_∧     ∧_∧
 (   )】      (   )】    (   )】 【(   )    【(   )    【(   )
 /  /┘ .   /  /┘.    /  /┘ └\ \   └\ \   └\ \
ノ ̄ゝ     ノ ̄ゝ      ノ ̄ゝ     ノ ̄ゝ    ノ ̄ゝ     ノ ̄ゝ



603 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 20:27:13.51 ID:fEs+jdDC.net]
LISP

604 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 22:27:38.54 ID:DAhf0dEp.net]
作家になったエンジニア
matogrosso.jp/engineer/engineer-01.html

>藤井 コードはわかる、というか、数式での理解が苦手なんです。数式で見ても
>よくわからないんですが、コードになったアルゴリズムで見れば「あぁ!」って
>腑に落ちる。群とか集合とかの処理の方法なんかもコードで見たほうがわかるんですよね。

こんなことってあるの?
数式でわからないものが、コードで書いたらわかったなんて経験ないんだけど。
そういう人もいるのか、単にハッタリなのか?

605 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 22:45:54.42 ID:S3hAxR/5.net]
知らない・慣れない記号でわんさか書かれたものよりはコードのほうが……かもね

606 名前:デフォルトの名無しさん mailto:sage [2014/06/28(土) 23:18:32.01 ID:Wnh+uZwR.net]
記号を覚えてなかったり
上とか下とか小さく書いてあったりするのが
英単語混じりで一列に並ぶから

607 名前:デフォルトの名無しさん mailto:sage [2014/06/29(日) 00:10:58.39 ID:jxL17uOJ.net]
微分方程式だといまいちピンとこないのが、
差分方程式に変形してプログラムにまでなればなんとなく、とか。

ただ、あまり良いことじゃない。抽象を扱えない頭だと、後々苦労する。

608 名前:デフォルトの名無しさん mailto:sage [2014/06/29(日) 00:45:43.60 ID:osp1rgt9.net]
狂気のマッドコーダー、鳳凰院凶真だっ!フゥーハハハ!
機関の妨害が入っているようだな
そのようなものに私が屈すると思ったかっ!

全ては脱アルゴリズムの選択だっ!
エル・プサイ・コングルゥ

オカリンは凄いね〜wwwww

609 名前:デフォルトの名無しさん mailto:sage [2014/06/29(日) 02:56:13.63 ID:6ywxiUqJ.net]
「CERNだけど何か質問ある?」でCERNが「シュタインズ・ゲート」に触れ大盛り上がり
gigazine.net/news/20140623-ama-cern/

610 名前:デフォルトの名無しさん mailto:sage [2014/06/29(日) 09:17:18.99 ID:TGhI+LW9.net]
>>604
数式をプログラムコードにして実行すると、計算結果の数値やグラフを見てイメージがつかめる、っていうなら判る。

611 名前:デフォルトの名無しさん [2014/07/01(火) 03:58:16.28 ID:VC0m3k7v.net]
JavaScriptで、2分木を書こうと思ったが、
1-100をこの順番で追加したら、rootが1となり、
どんどん右側へ追加されていき、
直線となって、2分木にならない

B-Tree, 赤黒木は、どうやって木の高さをそろえているの?

612 名前:桃白白 ◆9Jro6YFwm650 [2014/07/01(火) 05:55:58.42 ID:zDJRF/6W.net]
>>611
左の子が親より小さく、右の子が親より大きいって
いうのが満たされてれば、一直線となっても立派な2分探索木でござるよ。
効率は悪いけど。

B-Treeはノードが持つ子の数に制限を設けて、子の数がいっぱいになったら
ノードを分割していく感じ。すべてのリーフノードの高さは同じになる。

赤黒木は色をチェックして平衡化を行ってく。
黒ノードがB-Treeのノードに対応するから、黒ノードの数が左右で同じになる。



613 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 07:36:37.26 ID:NR0eMQV0.net]
>>611
アルゴリズムの本を1冊は持っておけ

614 名前:デフォルトの名無しさん [2014/07/01(火) 08:44:01.18 ID:G0peUy8I.net]
で、出た〜本持っとけ言奴

615 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 09:36:03.07 ID:NR0eMQV0.net]
>>614
その煽りの面白さがおじさんにはさっぱりわからんわ

616 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 11:14:27.31 ID:/zCy2KR2.net]
ネットに転がってるpdfで良いです。

617 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 12:19:37.68 ID:29jmPgpF.net]
>>614
「知的でタメになるつっこみの仕方」
監修・吉本興業
を一冊持ってろ

618 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 14:15:02.29 ID:WdBXMFPF.net]
おじさんの くちさきから いてつくはどうが ほとばしる!!

619 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 19:19:42.82 ID:XUFkTk0Y.net]
>>611
まず木の回転は順序保ったまま高さを調整できる。
あとは回転をどういう条件でやるかで赤黒木・AVL木とかに分かれる。
B木は二分木じゃないのでまた別

620 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 21:26:27.54 ID:lJh4uqZb.net]
>>611
平衡二分木なら、まず原理が簡単なAVL木を勉強しよう。
次にspray木。
次に2-3-4木(これは二分木ではない)、赤黒木(2-3-4木の二分木化)。

621 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 22:02:39.89 ID:iG7VjtU1.net]
「代数的構造」買ったけど難しいな
頭が固くなってきているせいか、なかなか辛い

622 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 22:07:09.65 ID:wjCbvLq3.net]
>>617
そのレスを見るとあまりタメにならなそうな気が…



623 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 08:28:35.69 ID:s8DtebR3.net]
脱アルゴリズムってなんなん?

624 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 08:32:51.18 ID:8QRdpiH3.net]
>>623
あぼーん推奨ワード

625 名前:612 [2014/07/02(水) 12:59:56.47 ID:UOkv1KGW.net]
2分木の木の高さをそろえる方法まで、
載せている本なんて、無いだろ?

載っていたら買うけどさー
載せられないということは、かなり難しいと言うこと

626 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 14:24:59.48 ID:IpihKmr8.net]
つ アルゴリズムC・新版―基礎・データ構造・整列・探索、R. セジウィック
www.amazon.co.jp/dp/4764903091/

627 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 20:13:43.24 ID:FQajgQTr.net]
アルゴリズムとデータ構造、岩波講座
にも、載ってた気がする
実家に置いたままだわ

628 名前:612 mailto:sage [2014/07/02(水) 23:26:01.30 ID:UOkv1KGW.net]
R・セジウィックの20年前のアルゴリズムC++の本を見たら、
2分木の回転については、10行ほどしか載っていなかった

プログラミング・コンテスト・チャレンジブックにも、
2分木の回転・平衡化は載っていない

オライリーの「入門 データ構造とアルゴリズム」には、
AVL木の回転について、図入りの説明が載っていた

でも赤黒木を詳細に説明した本は無い
Linuxのタスクディスパッチで使っているのに

ところで2分木で、nullの代わりに、
番兵を使っているものがあったが、
番兵を使った方がよいのか?

629 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 23:48:15.85 ID:sVSUUVOR.net]
ぶっちゃけググった方が早い…
木の回転 https://ja.wikipedia.org/wiki/%E6%9C%A8%E3%81%AE%E5%9B%9E%E8%BB%A2
AVL木   www.geocities.jp/m_hiroi/light/pyalgo12.html
赤黒木   www.geocities.jp/m_hiroi/light/pyalgo16.html

番兵は性能よりもコードをシンプルにするためのもんだし、お好みでどうぞ

630 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 23:56:44.88 ID:RK8C0ZnB.net]
>>629
いやいや、シンプルになっても終了条件が見えなくなってリーダビリティ下がるでしょ。
前処理と後始末がいることも多いしコメント必須になる。
性能上がらないなら使うもんじゃない。

631 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 00:11:23.34 ID:qo0RbgmN.net]
えー。しかし番兵なんて所詮ゴミみたいな定数倍最適化にしかならんしなあ
多少短く書ける以外に価値がほぼないから、趣味の領域かと

632 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 00:24:13.05 ID:qo0RbgmN.net]
そういう意味ではNull Objectパターンやnilも番兵の亜種っぽいな
使い方次第で可読性が下がるし



633 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 08:34:15.19 ID:5WHzWYtz.net]
脱アルゴリズム・・・・・

634 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 09:12:49.19 ID:xp4LuS6y.net]
宣言型言語の制約プログラミングや論理プログラミングなら
アルゴリズムを必ずしも記述する必要はないが、
結局糞みたいな処理速度にならないために隠蔽されたアルゴリズムを
意識せにゃならなくなるから脱アルゴリズムは飛ばし過ぎ

635 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 10:39:28.42 ID:QCtThtAw.net]
どんなプログラム書いても、それアルゴリズムになるから
アルゴリズムってそういうものなんだけど

636 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 11:07:32.82 ID:HJPE9W5O.net]
>>631
最近のCPUじゃあ定数倍最適化にもならないんじゃない?
分岐の投機的実行があるから。

637 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 13:02:24.53 ID:jKZw1Onx.net]
分岐予測が当たると早い、という石で、直感に反する順序で判定を並べたほうが
良い場合もあるという報告があったし(※)、正直、個々の機械で実アプリで
確かめない限り、何も言えん。

ただ、勉強としては色々なモディファイがあるというのは抑えておいた
ほうが良い。速度だけじゃなくモディファイが要ることはよくある。

(※)
普通は、確率が50%→25%→12.5%→....といった順に並べたほうが、先に結果が
確定するから速い、というのが定石なのだが、そうすると分岐予測的には最悪に
なるので、確率が低いほうから ...→12.5%→25%→50%のように並べたほうが速い
プロセッサがある。

638 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 14:32:49.20 ID:2p/tvR1B.net]
>>637
>12.5%→25%→50%のように並べたほうが速い
ほうほう、なるへそ

639 名前:デフォルトの名無しさん [2014/07/03(木) 15:25:04.31 ID:H6q9tJaf.net]
脱アルゴリズムとか馬鹿なんじゃねえの

640 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 17:09:24.39 ID:/vji65t/.net]
正直、あの記事の主は病人だと思う。

641 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 17:13:20.97 ID:0MY1anpd.net]
脱プログラミング、人差し指でディスプレイのあっちこっちから引っ張るとプログラムができる

642 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 17:43:08.65 ID:LtdUn3Av.net]
人差し指でディスプレイのあっちこっちから引っ張ることがプログラミング作業となるだけであって



643 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 18:40:39.03 ID:jKZw1Onx.net]
だからそれはこっちでやれ
peace.2ch.net/test/read.cgi/tech/1403215505/l50

644 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 23:43:57.28 ID:Tn3/IHEN.net]
>>637
最近は実行時プロファイル取ってJITします。

645 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 01:16:13.84 ID:FWLzKTbt.net]
>>625
>2分木の木の高さをそろえる方法まで、
>載せている本なんて、無いだろ?

上にもでてる、岩波の「アルゴリズムとデータ構造」石畑清のをみたいけど、
この話題、AVL木、B木で数十ページつかって詳しく解説してたよ。
というかこのあたり読んでなかった。

やっぱ日本人の書いたアルゴリズム本のなかでこれは良い方だと思う。

646 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 07:29:05.29 ID:llTgxSpv.net]
おまえら、頭いい風のトンチキ。数学やれ。

647 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 07:55:14.81 ID:Mhkj+G22.net]
やはり、2分木の回転を説明した本はなさそう
Webに載ってる情報で我慢するしかないのかー

648 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 08:04:47.39 ID:iKaePYIV.net]
(゚Д゚) ハア??

649 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 08:26:55.29 ID:gfxFeYJy.net]
木の二重回転だるい。あるとなしでどの程度違うんだろ?
親への参照をもたせると参照のはりかえがかなり複雑になる

650 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 09:38:02.44 ID:S//BcKLx.net]
岩波の「アルゴリズムとデータ構造」石畑清

"Algorithms" Robert Wayne, Kevin Sedgewick

どっちも amazon の書評わろす

651 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 11:56:44.81 ID:twdVMSox.net]
「アルゴリズムとデータ構造」
とか
「データ構造とアルゴリズム」
ってタイトルの本多過ぎ

652 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 12:00:57.86 ID:mFyW8OWx.net]
データ構造は重要



653 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 12:09:47.36 ID:twdVMSox.net]
そこは否定してない
一字一句完全に同じタイトルの本がいくつもありすぎて紛らわしいので
もっと工夫すれば良いのにと思った

654 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 13:48:11.44 ID:woY7u5MP.net]
>>647
>>649
sedgewick読めばいいのに。
この人はアルゴリズム解析屋だからそのへんは結構しっかり書いてる。
Knuthのところ出身。

655 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 16:02:33.27 ID:sBqWnM4N.net]
>>647
Niklaus Wirth: 「アルゴリズム+データ構造=プログラム」日本コンピュータ協会
浅野哲夫: 「データ構造」近代科学社
桐山清: 「C言語によるデータ構造とプログラム書法」森北出版
近藤嘉雪: 「定本 Cプログラマのためのアルゴリズムとデータ構造」ソフトバンク
渡邊敏正: 「データ構造と基本アルゴリズム」共立出版

のどれにも、AVL木(バランス木)の回転の解説あるよ

656 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 16:19:55.17 ID:woY7u5MP.net]
今時Wirth先生の本はないわ。
均衡二分木はあまり実行効率が良くないAVL木中心だし、
多分木派生の二分木は赤黒じゃないし。
しかも言語がPascal。
言語屋さんだけあってコードは綺麗。

657 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 16:27:00.41 ID:iKaePYIV.net]
『アルゴリズム・イントロダクション』読め。
総合版は武器にもなってお得だぞ。

658 名前:デフォルトの名無しさん [2014/07/05(土) 10:32:09.33 ID:5deLSK6V.net]
セジウィックのアルゴリズム本もわかりやすくておすすめ

659 名前:デフォルトの名無しさん mailto:sage [2014/07/05(土) 13:44:41.02 ID:R8cFDXwQ.net]
アルゴリズム・イントロダクション
セジウィック新版
の二択だな。
アルゴリズム・イントロダクションをちら見してみて挫折しないようならこっちやればいい。
この二冊ほどしっかり書けてる本はほとんどない。TAOCPは実装言語が独自すぎて除外。

660 名前:612 mailto:sage [2014/07/06(日) 02:00:23.53 ID:+YGfR2l7.net]
>>645
石畑清のは、AVL木の回転について、図入りの説明がある
ただし、25年前の本で、ソースコードがPascal

661 名前:デフォルトの名無しさん mailto:sage [2014/07/06(日) 03:16:22.62 ID:3qD8tN7V.net]
石畑清の本はいいよやっぱり。説明が細かいし。

しかしPascalだから困るという意見が結構多いのが不思議。
アルゴリズムを説明するためのたかが数十行のコード、言語仕様やライブラリに
深く依存しているわけでもないプログラム読むのにそんな苦労するのか?

疑似コードとして読めばいいでしょ。俺もPascal知らんけど充分理解できるよ。

もひとつ言っとくと、石畑清の本、巻末にちゃんとCとLISPのコード例も付録
で載ってるんだよ。ほんとは持ってないんじゃないのお前ら?
コピペしかできない知恵遅れにも安心(笑)

662 名前:デフォルトの名無しさん mailto:sage [2014/07/06(日) 07:43:12.94 ID:ETigXUGg.net]
Pascalは配列添字が1から始まるから、他の言語に移植するときに、
Off by one エラーに注意しながら書き直す必要がある。
これが面倒。



663 名前:デフォルトの名無しさん mailto:sage [2014/07/06(日) 09:25:03.24 ID:PgwRX7N+.net]
>>662
1オリジンを他のオリジンに直すだけだろう?簡単な線形変換をかますだけなのでは?
ま、2オリジンに書き直すなら多少のぐちゃぐちゃは厭わないが、1オリジンを0オリジンにわざわざ直す必要もない

664 名前:デフォルトの名無しさん [2014/07/06(日) 23:35:38.44 ID:I8o/e02M.net]
大学のアルゴリズムの講義の教科書が石畑Pascal本だ

665 名前:デフォルトの名無しさん mailto:sage [2014/07/07(月) 06:33:10.27 ID:iqLntt6B.net]
666

666 名前:デフォルトの名無しさん mailto:sage [2014/07/07(月) 12:41:09.24 ID:mcdr45lP.net]
AVL木は挿入や削除で必要になる回転が多いので遅い。
バランスしてるからオーダーは良いが、
オーダーを計算する時に無視する定数部が悪い。
均衡二分木がAVL木しか書いてない本はとてつもなく古い。

667 名前:612 [2014/07/07(月) 23:46:14.44 ID:dH0g1YaP.net]
>>661
漏れは研究家で、本はプログラミング・コンテスト・
チャレンジブックしか持っていない
漏れは立ち読みするから、誰よりも厳しいよw

まず図を載せていない著者を評価しない。
そういう著者はコピペしているだけで、
本当にアルゴリズムを作っていないかも

いかに読者に解かりやすく説明できるか?
まず図を作る段階で、戦いは始まっている

668 名前:デフォルトの名無しさん mailto:sage [2014/07/08(火) 00:19:27.31 ID:WA0uMVhU.net]
入門 データ構造とアルゴリズム
www.oreilly.co.jp/books/9784873116341/

>インド工科大学(IIT)と企業の両方で豊富な経験を持つインド人著者による、
>実例豊富なデータ構造とアルゴリズムの解説書。

この本の評価どうですか?

669 名前:デフォルトの名無しさん mailto:sage [2014/07/08(火) 03:59:34.21 ID:KMzZlwYF.net]
目次を見る限り、インド人ってネタを活かしてるようには見えないな

670 名前:デフォルトの名無しさん mailto:sage [2014/07/08(火) 06:23:28.25 ID:C3Ow5lln.net]
漏れは研究家でw
誰よりも厳しいよww
評価しないwww

671 名前:デフォルトの名無しさん mailto:sage [2014/07/08(火) 08:35:30.86 ID:+1SkhcPX.net]
朝からニヤリとさせてもらった
さて働こう…

672 名前:デフォルトの名無しさん mailto:sage [2014/07/08(火) 20:48:31.13 ID:KjaCWqA1.net]
>>666
不正確だ
挿入で必要な木の回転は、ただの一回だけ、問題は削除だね。これは AVL も赤黒木も同じ
削除が頻繁におこなわれるのなら、左右のバランスのゆるい赤黒木がいいね



673 名前:デフォルトの名無しさん mailto:sage [2014/07/09(水) 00:42:28.78 ID:nWprtmY/.net]
インド人嘘つかない

674 名前:デフォルトの名無しさん [2014/07/09(水) 23:39:21.70 ID:8efLPFpl.net]
アルゴリズムの名著にはPascalで書かれた本も多いし、Pascalもひと通り勉強したほうがいいんだろうか?

675 名前:デフォルトの名無しさん mailto:sage [2014/07/09(水) 23:51:22.77 ID:9Qxa4e89.net]
pascalはCというかPL/I系統の言語が出来るなら読むのはそんなに難しくない。

676 名前:デフォルトの名無しさん mailto:sage [2014/07/10(木) 13:54:07.94 ID:iLbfPtwr.net]
CがPL/I系統?

ていうかPascalないしAlgolは、いちいち勉強なぞしなくとも読むのにそうは苦労しないだろ。
Algolには名前呼びとか変な機能があるが、普通はそういうトラップは回避して説明に使うから。

677 名前:デフォルトの名無しさん [2014/07/16(水) 08:34:15.83 ID:uBdPgdk4.net]
qiita.com/kenokabe/items/13ea8d2da6adce1b3b9a
関数型プログラミングとオブジェクト指向の抜き差しならない関係について整理して考える



お、これはなかなか優秀な人が現れたな。わかりやすい良エントリ。

678 名前:デフォルトの名無しさん mailto:sage [2014/07/16(水) 09:49:46.76 ID:VblCYr0v.net]
>>677
スレ違いです。こちらへどうぞ。

【毛の壁】脱アルゴリズム宣言【FXST】
peace.2ch.net/test/read.cgi/tech/1403215505/

679 名前:デフォルトの名無しさん mailto:sage [2014/07/16(水) 23:55:51.33 ID:FEyT2AKy.net]
アルゴリズムを学ぼう (アスキー書籍)
川中 真耶
www.amazon.co.jp/dp/B00JGI5H2I/

Amazonのレビューでも評価低いけど、この本意外に良書やね。
もっとレベルが低いのかと思ってたけど、二分木だとAVL木の回転とかまで
ちゃんと説明している。
ただ、レビューでも触れられているけど、ストーリー仕立てにする意味が
ほとんどないというか、単純につまらない。
こういうのが受けると思ったんだろうけど、キャラクターにも魅力がない。

Kindle版だと安いから買って読む価値はある。

680 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 00:43:35.51 ID:YW/aq4b0.net]
アルゴリズムを学ぼう サポートページ
https://sites.google.com/site/adtalgo/home

681 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 10:13:30.44 ID:S7UqHs8v.net]
>>679-681

【これは】重大な誤り【ひどい】
1つ本当にひどい誤りを含んでおりました。本当に申し訳ありません。恥ずかしくて夜も寝られません。

P. 33

O(aN) = O(eN)
この文章の記述は大嘘です。デタラメです。
指数の底を変えることは出来ません。
そもそも数式の展開も誤っています。
指数の場合も同様で〜〜となる。の文を削除。


わろ・・・えない

682 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 18:39:54.82 ID:FWtSwDTq.net]
あまり話題にならないけど丸善から出ている黄色い表紙の装丁のアルゴリズム本でオススメある?
お前らには難しくくて縁のない本が多い?



683 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 19:43:15.82 ID:8B88F9S3.net]
                | ̄``''- 、
                |      `゙''ー- 、  ________
                |    ,. -‐ ''´ ̄ ̄`ヽ、_        /
                |, - '´ ̄              `ヽ、     /
              /               `ヽ、ヽ   /
             _/                    ヽヽ/
           / / /   /  /  /            ヽハ
          く  / /!   |   〃 _/__ l|   | |   |  |  | | ||ヽ
           \l// / |  /|'´ ∧  ||   | |ー、||  |  | l | ヽ
            /ハ/ |  | ヽ/ ヽ | ヽ  | || /|ヽ/!  |/ | ヽ
            / |  ||ヽ { ,r===、   \| _!V |// //  .!   |
            | ||   |l |ヽ!'´ ̄`゙   ,  ==ミ、 /イ川  |─┘
            | ハ||  || | """ ┌---┐  `  / //  |
            V !ヽ ト! ヽ、    |     !    / //| /
               ヽ! \ハ` 、 ヽ、__ノ    ,.イ/ // | /
    ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
    |(/(/(/(/(/(/(/(/(/(/│||      |\  〃
  r'´ ̄ヽ.              | | ト    /    \
  /  ̄`ア             | | |  ⌒/     入
  〉  ̄二) 知ってるが    | | |  /     // ヽ
 〈!   ,. -'                | | ヽ∠-----', '´    ',
  | \| |   .お前の態度が   | |<二Z二 ̄  /     ',
  |   | |               _r'---|  [ ``ヽ、      ',
  |   | |   気に入らない >-、__    [    ヽ      !
  \.| l.              ヽ、      [     ヽ    |
    ヽ|              \    r'     ヽ、    |

684 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 22:33:37.10 ID:3rueaPG+.net]
そう言わず教えろよ

685 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 20:25:53.74 ID:Ecx8KQMM.net]
本ばかり読んでないで実践しろよ

686 名前:デフォルトの名無しさん mailto:sage [2014/07/23(水) 01:29:55.54 ID:dHvcLkvH.net]
結城浩の「Java言語で学ぶデザインパターン入門」ってオリジナルと増補改訂版って
買い直した方がいいぐらい違いが大きいんですか?

687 名前:デフォルトの名無しさん mailto:sage [2014/07/23(水) 08:13:43.33 ID:Qr1azPSk.net]
Cookieを使わずにユーザーを追跡する仕組みが普及しつつある
it.slashdot.jp/story/14/07/22/0613210/

688 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 22:18:02.88 ID:wzSFtnz7.net]
GoFは言語が未熟だった時代の名残のようなもの
現代的なほとんどの言語(特に動的型付言語)では、多くのパターンが適用できない
(適用しても、バッドパターンにしかならない)

Javaなどの一部の古めかしい静的型付言語では、まだ頼る余地は残っていたが
そのJavaでさえも関数型の要素を取り入れ、設計が大幅に変わってきている
GoF自体の改定でもなければ、改めて学ぶ価値はない

689 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 22:53:43.17 ID:GcACTNu8.net]
なんだ本人が来たのか(笑)

690 名前:デフォルトの名無しさん mailto:sage [2014/07/29(火) 17:13:50.87 ID:qGOKoo8w.net]
突然ですが質問させてください
重みなし無向グラフの場合、ダイクストラ法より反復深化の方が計算量少なくて済むんですか?

691 名前:デフォルトの名無しさん mailto:sage [2014/08/19(火) 13:41:16.96 ID:46ZruSDn.net]
アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」
gigazine.net/news/20140819-visualgo/

692 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 09:31:36.46 ID:TsfChlj7.net]
「アルゴリズムを学ぼう」は続の方が面白いな。



693 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 13:15:21.81 ID:bjSSfYoR.net]
qiita.com/kenokabe/items/821ce4020644372b648c

>「アルゴリズム」とは「バズワード」であり、「一般的に命令型プログラミング
>パラダイムを指し示す」のであり、その他の使用は一般的ではない、ということ
>です。

勉強になるな。このページ。

694 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 15:45:42.81 ID:FbNt5hSi.net]
>>693
どこらへんが?

695 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 16:00:30.06 ID:r0J72yK/.net]
>>693 毛の壁は隔離スレから出るんじゃねぇよ
peace.2ch.net/test/read.cgi/tech/1403215505/l50

696 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 02:48:17.06 ID:BRRsQsEe.net]
そんな意地悪言うなよ。

697 名前:デフォルトの名無しさん mailto:sage [2014/10/07(火) 20:54:36.34 ID:3NSGj8n/.net]
死ねゴミ共がw

698 名前:デフォルトの名無しさん mailto:sage [2014/10/13(月) 00:56:00.10 ID:hQ/UKOA3L]
なぜか放置されてる合法ハーブのサイト
www.unitepopulaire.org/
unepsefalliance.org/
www.love-salvia.com/
xn--ccke7d0a7en7a6d6eqb4l.com/
www.esodam.org/
herb-patio.jp/
xn--edkpew5hb5jf4159d0glkskyw0ckwox9v.com/

699 名前:デフォルトの名無しさん [2014/10/24(金) 21:39:41.30 ID:VyYUZ4Z5.net]
カリー化とは何でしょうか?

700 名前:デフォルトの名無しさん mailto:sage [2014/10/24(金) 21:46:02.67 ID:zvGM4ELq.net]
「大抵のものはカレー味にしとけば失敗しない」という理論

701 名前:デフォルトの名無しさん [2014/10/24(金) 21:54:38.69 ID:VyYUZ4Z5.net]
なるほど深いですね

702 名前:デフォルトの名無しさん mailto:sage [2014/11/25(火) 23:14:09.49 ID:ghl2SNY1.net]
は?



703 名前:デフォルトの名無しさん mailto:sage [2014/11/26(水) 16:03:51.97 ID:cap+vDqw.net]
ねんまつ

704 名前:デフォルトの名無しさん [2015/02/04(水) 10:21:19.15 ID:QfhTV/If.net]
1うんこ

705 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 15:18:37.61 ID:Bqyo/mYz.net]
「オブジェクト指向のこころ」って原題とは何も関係ない変な題名で誤解されているけど、実はデザインパターンの良書だよね
結城本みたいなトイプログラムじゃなくてちゃんと仕事に活かせるコードや考え方が載ってる
もっと評価されるべき本だと思う

706 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 17:25:01.22 ID:Qj5PkULS.net]
まるち

707 名前:デフォルトの名無しさん [2015/03/16(月) 00:54:31.01 ID:pKR+yvmi.net]
アルゴリズム!重要度を増していく、今までも、そしてこれからも

708 名前:デフォルトの名無しさん mailto:sage [2015/03/16(月) 01:07:48.91 ID:EXoRrBXi.net]
増しません、基本ではあるが

709 名前:デフォルトの名無しさん mailto:sage [2015/03/16(月) 06:58:50.72 ID:dto99C0o.net]
関数型が来る!とかと同じようなアレだな

710 名前:デフォルトの名無しさん mailto:sage [2015/03/19(木) 20:04:29.25 ID:rGfQi3lS.net]
グーグル・アルゴリズム
アマゾン・アルゴリズム
アルゴリズム体操

711 名前:デフォルトの名無しさん [2015/03/23(月) 20:17:07.02 ID:v5lqXW2+.net]
>>662

あんたなあ・・・ ハァ。

線形代数の教科書の行列、ベクトルは全部、添字1からだろ。
それをC言語では0から始めなければならないから「1つズレ」の
バグがでるんだろう。

あんたの言ってることは本末転倒だ。この田分け!


唯一の例外がFFT。唯一、添字が一定成分に対応した0から始まるから

712 名前:デフォルトの名無しさん mailto:sage [2015/03/23(月) 23:50:39.23 ID:VDUQlxD5.net]
>>711
おらの教科書では自然数は 0, 1, 2, ....



713 名前:デフォルトの名無しさん mailto:sage [2015/03/24(火) 00:52:58.38 ID:MX5B1wfa.net]
自然数の定義の話題は宗教戦争に発展するのでNG

714 名前:デフォルトの名無しさん [2015/03/24(火) 01:10:04.30 ID:Ve+M57ZM.net]
自然数が初等的算術を展開するのに必要十分な集合じゃないと困るでしょ。
算術の基礎になれないような集合に「『自然』数」なる名称を与えて特別視する理由がない。
で、0なしの{1,2,...}ではペアノ算術のモデルすら構成できないんだから、
自然数に0入ってなきゃ困ります。

715 名前:デフォルトの名無しさん mailto:sage [2015/03/24(火) 02:16:41.68 ID:qocM3p7p.net]
そういや空集合もあらゆる集合の部分集合だもんな
自然数にもゼロが会った方が自然な気はするな

716 名前:デフォルトの名無しさん mailto:sage [2015/03/24(火) 03:17:40.76 ID:O1VRnX3O.net]
正直そういうことはどうでもいい
ただ正の整数と同じ意味なら言葉が勿体無いから0も入れればいいじゃん

717 名前:デフォルトの名無しさん mailto:sage [2015/03/24(火) 12:37:46.16 ID:c6mpFC05.net]
なに、実は >>711 が田和けであることを示せばいいだけの話

718 名前:662 mailto:sage [2015/03/24(火) 20:19:23.88 ID:aWlBWbGCG]
アセンブリ言語を使ったこともない奴がデカイ面できるようになったんだな。
2chも本格的に終わってるわ。

などどscで書いてみる。

719 名前: mailto:sage [2015/04/04(土) 09:36:37.38 ID:zehumhhz.net]
1〜6の整数がランダムに並んでいる時、これを最小手順で並べ替える
アルゴリズム知ってる人、思いつく人いたら教えてほしい
隣で比較する基礎の解放ではなく最小手順

5,6,3,2,4,1 → 1,2,3,4,5,6 にする最小手順

720 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 09:42:25.65 ID:QuAhdSHj.net]
ソート自体不要
結果として1,2,3,4,5,6を返せばいいw

721 名前: mailto:sage [2015/04/04(土) 09:46:00.61 ID:zehumhhz.net]
それだと6回かかるでしょ

722 名前: mailto:sage [2015/04/04(土) 09:49:01.47 ID:zehumhhz.net]
あ、ごめん。ついwを付けられて
上では1-6って書いたけど、0-99の100個の数字を最小回数でソートしないと
いけない問題に今ぶつかってて。誰か賢い人いたら助かるなーって思って書いてみた



723 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 10:00:43.23 ID:QuAhdSHj.net]
>>721
1,2,3,4,5,6と決まった数字がランダムに並んでだけだよね?
どうランダムに並んでようが、ソート結果は常に1,2,3,4,5,6になるんだから、
最初からその結果を用意しておいて、どういう並びであってもそれを1回返せばいい
ということ。

宿題の意図としては求めてないだろうから無視していいけどね。

724 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 10:12:22.71 ID:8tbUo2zR.net]
ソートのアルゴリズムなんてググればいくらでも解説されてるでしょ
ttp://www.it-shikaku.jp/top30.php?hidari=02-02-02.php&migi=km02-02.php
それじゃ何か足りないの?

725 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 11:37:48.38 ID:9IYCOCMd.net]
>>719
sleepsort

726 名前: mailto:sage [2015/04/04(土) 16:50:06.49 ID:zehumhhz.net]
>>724
ありがとう、平均回数も乗ってるこのページ凄い役だった
とりあえず、これでやってみる。>>725 何、これ初めて見たw
みなさん、ご協力本当に感謝します。

727 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 21:12:22.13 ID:vj4bzuy0.net]
sleep sort は、bucket sort とみなすべきだろうし、1,2,3,45,6を返すっていうのもそうだよね。
質問者の質問の意味は、最小 sorting network を求めろってこと?

728 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 21:26:57.58 ID:w5ibkrLo.net]
最小置換手順が欲しいと推測

729 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 21:55:13.09 ID:vj4bzuy0.net]
ああ、なるほど。そしたら最長増加部分列求めりゃ良いね。

730 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 22:21:32.50 ID:bg9jdXhF.net]
て、手順としてどのようなオペレーションが許容されるかで変わりますね。当たり前だけど。一手順で、隣接のスワップしか許さないのか、任意の場所のスワップを許すのか、任意の繋ぎ変えを許すのか、任意の一つの数字を任意の場所に入れることを許すのか。

731 名前:デフォルトの名無しさん mailto:sage [2015/05/16(土) 22:03:28.98 ID:y/t4uXt/.net]
日本人はスマホとかコンビニとか省略するのが好きだけど
検索アルゴリズム的にはスマートホン、コンビニエンスストアの方が10倍早く検索できるんだよな。
記憶力をよくしたかったら、省略するのをやめましょうね。

732 名前:デフォルトの名無しさん mailto:sage [2015/05/17(日) 05:07:39.56 ID:M9Jld2yx.net]
ア・・・・
あ・思い出した
ア、はいいよね



733 名前:デフォルトの名無しさん mailto:sage [2015/05/17(日) 06:49:06.78 ID:MQbFTiCx.net]
>>731
面白い脳味噌してるなコイツ

734 名前:デフォルトの名無しさん mailto:sage [2015/05/17(日) 12:03:39.74 ID:Cq+Owzl6.net]
>>731
理屈が分からないのですが、もう少し詳しく説明していただけませんか。
同趣旨のことを解説したネット上の記事を紹介していただけるだけでも構いません。

735 名前:デフォルトの名無しさん mailto:sage [2015/05/18(月) 10:30:22.61 ID:DlA37DUd.net]
でかい方が見つけやすいでしょ

736 名前:デフォルトの名無しさん mailto:sage [2015/05/18(月) 20:00:18.97 ID:qgceviCB.net]
>>735
それでは曖昧すぎて説明になっていないんじゃないかな。

どのようなデータ構造に対してどのようなアルゴリズムで検索するときに、
検索対象「スマホ」よりも検索対象「スマートホン」の方が10倍早いと言っているのか。

こういうのを話す場でしょ、ここは。
まぁ元々が曖昧だから、>>731以外だれも説明できないとは思うが。

737 名前:デフォルトの名無しさん mailto:sage [2015/05/30(土) 23:11:38.07 ID:GbYkPqTc.net]
>>731
は収録数の少ないシソーラス辞書しか持っていないらしい

738 名前:デフォルトの名無しさん [2015/07/30(木) 16:31:15.15 ID:gNKRMuak.net]
A スター アルゴリズムの計算について質問をしたいのですがいいでしょうか?

739 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 19:32:45.75 ID:StheyCIu.net]
別に断る必要は無い
解る者が居れば答えるし、そうじゃなければ放置されるだけ

740 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 20:18:42.09 ID:oAGEjgo8.net]
ggrks ↓

741 名前:デフォルトの名無しさん [2015/07/31(金) 14:17:38.86 ID:qB8zjiMb.net]
開始地点と到着地点を入れ替えても同じサイズの経路が出来ます。
そしてそれは地図を斜めに線分したものに対象である。
そのときの計測時間が余りにも違うのですが、これは何が主な原因でしょうか?
ttp://gmdev.xrea.jp/st/up/1090.png
ttp://gmdev.xrea.jp/st/up/1091.png

742 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 15:24:20.10 ID:qnWPb5RQ.net]
>>741
左上から順に探索してるから開始位置によって処理時間違うとかかな?
マップを上下/左右反転して同じコース走らせてみたらもう少し詳しくわかるかも



743 名前:デフォルトの名無しさん [2015/07/31(金) 18:33:06.81 ID:qB8zjiMb.net]
上下反転でも上記と同じような動きになってしまいました。
ttp://gmdev.xrea.jp/st/up/1092.png
ttp://gmdev.xrea.jp/st/up/1093.png

左右はまだ試していませんが多分同じ結果になるかと。
一応補足として、# of calclation は
while (!openList.isEmpty()) {
  count++; ....
です。
上下反転したときの経路は元と違って同じですし。
しかし、この四つの中で違うのは時間だけでほかは経路サイズも、#も一緒っていう。
A*って元々こんな特性なんでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 19:02:30.87 ID:km5orOmS.net]
>>743
これ斜め移動できるっぽいのに何で真ん中通らないの?

745 名前:デフォルトの名無しさん [2015/07/31(金) 19:13:51.36 ID:qB8zjiMb.net]
一応、壁に阻まれている設定なので、斜め移動は可能ですが、そのような経路は取らない様にしています。
家の隅を思い浮かべてもらえればいいかと思います。

746 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 22:14:18.76 ID:pNhxtvtu.net]
てきとーだけど、
時間が掛かる方はスタート位置から全方向に探索し始めるけど、
もう一方は限定されてるから、その辺の違い?

747 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 22:43:26.98 ID:rVmFBF2u.net]
探索木の根元(付近)がよく茂ってるか否かか

748 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 00:40:27.40 ID:hEjnOg+p.net]
オープンリストとか見られるようにしたらどう探索してるか一瞬でわかるよね

749 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 19:09:42.88 ID:vmnF+S0U.net]
スタート位置からの経路が多いかどうかかなあ
もっと単純なマップから少しずつ複雑化して試してみたら?

□□□□□□□
□□□□□□□
A□□□□□B
□□□□□□□
□□□□□□□

□□□□□□□
□□□■□□□
A□□■□□B
□□□■□□□
□□□□□□□

□□□□□□□
□■■■□□□
A□□■□□B
□■■■□□□
□□□□□□□

こんな感じで

750 名前:デフォルトの名無しさん [2015/08/03(月) 16:26:23.97 ID:JJqkNluJ.net]
遅くなってすみません。
オープンリストをみて見ると、探査時間が遅いほうが根元(付近)がよく茂っていました。
原因が判明してスッキリしました。ありがとうございます。
一応これでA*の実装は終了しようと思います。最適化は時間かかるし、ほかのアルゴリズムも組んでみたいので。

>>749
一本道の迷路で試したところ、経路の大きさが9と探査のとき、時間が半端なくかかってしまいました。
多分複雑なマップはA*には向いていないのかもしれません。

同じ経路探査として、こんなのを見つけたのですが、ゲームに使うとしたらこっちのほうが面白そう。
ttp://codezine.jp/article/detail/94
てか、

751 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 19:33:29.19 ID:MJUDpxg+.net]
深さ優先・幅優先探索で、
キャッシュに乗りやすいなどの、
メモリ特性が異なるのかも

キャッシュ的には、直前に使ったアドレスを、
繰り返し使って、廃棄する方が、
使用メモリも少なくて、速いのだろう

752 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 20:24:42.14 ID:t5WJQOuJ.net]
A*は複雑な迷路より広くて何も無い方が苦手だと思うけど



753 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 02:23:14.81 ID:TrY1gttZ.net]
何も無かったら一直線にゴールに向かうだけでしょ。

754 名前:デフォルトの名無しさん mailto:age [2015/08/04(火) 05:58:48.09 ID:r3CWXwbp.net]
迷路ジェネレーター
jsdo.it/jagarikin/bNMK

755 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 07:41:15.54 ID:Ryo/DS3S.net]
どうやって一直線に向えるんだw
人間は目で見てゴールまでの経路を探索するからそれが分かるんだけどさ。

こういうアルゴリズムは、例えるなら一歩先しか見えない状態で、
進める全方向に枝葉を伸ばして探索していくから、
何も無いとパターンが増えて時間が掛かるんだよ。

ちなみに。ゲームで使われるてるし、カーナビとかグーグル地図のルートだとか、
ネットのサーバーまでのパケットが通る通信経路とかの探索で使われている。

756 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 07:53:11.90 ID:TrY1gttZ.net]
A* ってのは、各点からゴールまでの直線距離なんかを元に、一番有望そうな枝から探索するアルゴリズムなんだよ。
何も無い状態なら、一番距離が小さくなる枝が選ばれ続けるから、一直線だよ。

757 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 07:57:35.38 ID:faHT6mnE.net]
>>756
A*の探索範囲
https://www.youtube.com/watch?v=moUOV-zzJ0Q

758 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 09:30:31.14 ID:TrY1gttZ.net]
>>757
その動画、 0:05 あたりの探索範囲が怪しい。
明らかにゴールから遠ざかるような点も探索してる。
どこか間違えてると思う。

https://www.youtube.com/watch?v=DINCL5cd_w0
あたりのほうが適切そう。

759 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 10:06:00.63 ID:faHT6mnE.net]
>>758
確かに少しおかしいけど
障害物が無い空間でも最大でひし形のような範囲を探索するはず

760 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 00:37:22.34 ID:GWKF7o0G.net]
斜め移動で菱形に広がるのは、複数の枝が同点一位で並んだとき、古いのから探索した場合なんかに起きる問題だよ。
新しいのから探索すると起こらない。

761 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 02:01:34.48 ID:+qWU8RMV.net]
_***_____***_
**A***_***B**
_***_____***_


橋本環奈が出ている、NHKのアルゴリズム子研究所で、
カーナビの経路探索で、ダイクストラ(または、A*)で、
AB両点から探索しているのを見たけど、
ABの回りも、少し探索していた

762 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 07:27:53.77 ID:yAAa1oiV.net]
>>760
いやコストの問題だろ
直線距離+正確なコストだから
斜めだと正確なコスト分少し伸びるんだよ
だから明らかに遠ざかるような探索もする



763 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:00:40.63 ID:GWKF7o0G.net]
>>762
そっちの問題だと、菱形に広がるパターンにはならない気がする。

ちなみに、そっちの問題は、直線距離の代わりに適切な距離を使えれば防げる。
上下左右にしか動けないならマンハッタン距離とか。

764 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 19:15:00.05 ID:iWaQs0bI.net]
アルゴリズムの発表ってしていいかな。学会でもしたんだが受けが悪くて。

765 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 19:16:45.23 ID:Wv3ZRkcl.net]
気になるからしてみ

766 名前:スモモンガー mailto:sage [2015/09/12(土) 19:31:58.04 ID:iWaQs0bI.net]
ではお言葉に甘えて
sumomonga.at-ninja.jp/reseach/kangaroo/head.html

アルゴリズムの原理は単純で探索中の辺やレコードとの距離を隣接するの辺やレコード間の値の差の
最大値で割ってその数分進めば探索の辺やレコードを飛び越えないということなんだ。
単純なアルゴリズムだからもうすでに先駆者がいないかどうか調べてみたんだが一応今のところ
発見できなかった。もし、既出だったらスマソ。
もともとは多角形と直線の交点を求めるために作ったんだが今は探索のアルゴリズムに応用できないか
と考えている。まあ、ぶっちゃけバイナリサーチを使えばいいんじゃないかといわれそうだが。
正直上のホームページの説明も分かりにくいと思うから(俺は説明が下手なんだスマソ)ダウンロードペーから
ダウンロードして直接ソースみたほうがこのスレの住民ならわかると思う。
なんか長文になってすまん。
どうぞよろしくお願いします。

767 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 19:32:59.56 ID:64Xb/9UR.net]
色覚異常者臭い配色だな

768 名前:スモモンガー mailto:sage [2015/09/12(土) 19:35:17.81 ID:iWaQs0bI.net]
あと、情報処理学会の会員の方がいたら、グラフィックスとCAD研究会で”多角形と図形の交点の高速算出”
って題名で論文出しているからそっちのほうが少し説明がまとも

769 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 19:38:40.39 ID:iWaQs0bI.net]
すまん、俺は芸術的センスは皆無なんだ。

770 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 19:59:23.62 ID:Wv3ZRkcl.net]
> よって飛び越えないためにはkをY/lを越えない最大の整数にすれば大丈夫に思えます。しかし、一つ飛び越えたということは交わったということなので実際には(Y/l+1)を越えない最大の整数にすればいいのです。

ここの Y は X じゃね。ていうか Y は k の関数 Y(k) じゃね。

ソースにコメントつけたらどうだ。
構造体 line の int a,b,c とか意味が分からん。あとラムダは lambda な。
二乗するのに pow() とか使ってんな。ていうか直線との距離に sqrt なんていらんだろ。単位法線との内積を取れ。

771 名前:スモモンガー mailto:sage [2015/09/12(土) 20:23:27.44 ID:iWaQs0bI.net]
>>770
わざわざ下手な説明と汚いソース読んでいただきありがとうございます。確かに、Y/lじゃなくX/lですね。
今夜中に直しておきます。ただ、Yはkだけに依存するものではないので、Y(k)とするのはまちがっていると思います。
構造体のa,b,cはax+by+cのa,b,cです。直線との距離は単位法線との内積をとったほうが確かに早そうですね。
二乗はpowを使わないほうがいいんですか。勉強になります。ソースコードのほうはちょっと俺の力
ではすぐ直せそうにないので明日直そうと思います。あらためてになりますが、読んでいただいてありがとうございます。

772 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 21:06:00.39 ID:Yzh+CkQk.net]
ci.nii.ac.jp/naid/170000087534
ci.nii.ac.jp/naid/170000087558
どっちも内容同じ?



773 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 09:11:22.28 ID:n3zvmQA3.net]
ハロー "Hello, World" OSと標準ライブラリのシゴトとしくみ 単行本 – 2015/9/12
www.amazon.co.jp/dp/4798044784/

こんなのでた。
面白そう。

774 名前:スモモンガー mailto:sage [2015/09/16(水) 21:09:13.76 ID:k300cqkh.net]
とりあえずソース直しました。

>>772
私は二つ投稿してないんですが(汗)一回修正入れたんでそのせいかもしれないです。新しいほう
が間違えがないんじゃないかと思います。

775 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 01:36:24.28 ID:h/C+p+kS.net]
毎日変わる文字列がどのパターンに当たるか判定するソフトを作りたいんですが、
どの言語を使えばいいですか?
宝くじの攻略に使いたいんですが
htmlとVBを10年前にやったことがある程度の能力しかありません

0 7 A 3 D 6 8 H @ 4
と毎回不規則に並んでいる数字から毎回不規則に4つ選び、
該当の2591の形がどのパターンなのかを判断するというソフトです
さらにこのとき選ばれた2591を別の不規則の数列に当てはめたときも判定するようにしたいです
0 A 4 6 8 @ 3 D 7 H
この数列のときはどの形なのか・・・という具合にです

これを平日の間手動でやるのは限界があったので

776 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 09:31:31.86 ID:8C/CtMhx.net]
アルゴリズムだろ、馬鹿には無理だが

777 名前:デフォルトの名無しさん [2015/09/17(木) 15:49:14.71 ID:jeXjMZOh.net]
アルゴリズムの勉強って何をすればいいの?
何も見ずに書けるようになるとか?

778 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 16:56:57.71 ID:RFJKEvXv.net]
とりあえずwiki行ってリンク辿れば?

779 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 17:07:55.21 ID:ylAQcAdL.net]
>>775
どういう処理がしたいかよくわからんけど
データがすくないならスクリプト言語,多いんならC++でも使えば?

780 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 00:53:57.52 ID:kZ1aVgi2.net]
>>777
セジウィックや、オライリーのインド人の本など、
アルゴリズムの本は、一杯出ている

>>775
丸で囲んだ数字などの、
MS-CP932の機種依存文字を使うな。
これらは、Shift-Jisにも属さない文字

781 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 02:38:17.41 ID:YgOe18Uv.net]
囲み数字はShift_JISX0213に入ってるんだよなあ
Shift-Jisとかいう独自規格のことは知らないけど

782 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 17:33:44.18 ID:uevEmGa3.net]
>>780
オライリーの本調べてみたら問題がたくさんのってるようですね。
解いて勉強すればいいということですか



783 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 20:20:23.43 ID:7AiId5VK.net]
>>782
とりあえず解いていけばよい
まずは既存のアルゴリズムを知ること
そして問題に対して適切なアルゴリズムを適用して解決できるようになること

784 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 22:37:30.79 ID:U/4/CI9X.net]
>>783
やってみます。ありがとうございます。

785 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 08:38:55.46 ID:mo1gDnuH.net]
宝くじの攻略とか言ってる段階で確率論でも学んだほうがいいのでは?

786 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 08:49:47.26 ID:g55jIHl1.net]
確率論学んだからって狂人が正気に戻る訳でもあるまい。

787 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 09:12:37.94 ID:h/dwjgiw.net]
宝くじが夢を買うってことなら、この人は夢をプログラミングしてるんだよ。

788 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 09:22:06.02 ID:5cHEEdwc.net]
獏は夢を食べます

789 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 13:08:11.01 ID:hRep6fdc.net]
>>786
確率のいい教科書はありませんか測度論までケアしてくれるやつ

790 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 13:48:42.32 ID:ZXXgaQ/P.net]
>>789
・測度と積分 入門から確率論へ
・はじめての確率論 測度から確率へ

この辺りを読まれてはいかがでしょうか。

791 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 16:19:22.10 ID:hRep6fdc.net]
>>790
上の奴って品切れみたい,空手踊りとか肉体系で楽しそうだね

792 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 17:05:20.53 ID:hheo9oaF.net]
測度と確率 小谷

プロ仕様だけど



793 名前:デフォルトの名無しさん [2015/10/06(火) 19:59:51.30 ID:uxUTfTFS.net]
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点

794 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 08:03:53.85 ID:Np+b0DPs.net]
>>785
ナンバーズ4っぽいから、期待値の高い組み合わせを出したいんだろう。あれ、誕生日で買ったら当たっても安いんだよね。

795 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 19:20:01.26 ID:mdnTkxCG.net]
保守

796 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 12:58:47.56 ID:ngwDS6AM.net]
BOOK・OFFで
2200円のこれを200円で買った俺って勝ち組?
i.imgur.com/6zlSiQq.jpg

797 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 13:08:25.20 ID:Zr5MZtBC.net]
ゴミにはビタ一文出すな

798 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 13:45:30.59 ID:8+WZrGwR.net]
サッカーや野球のようなゲームがあったとします。
選手は毎年どんどん出現してきて、引退した選手もファイルに残ります。
ファイル名は必ずユニークなIDで、同じファイル名は存在しません。
ここまで仕様確定です。

もし、Aチームの選手はAフォルダに格納される方式を取ったとき、
チームに所属する選手はすぐ出せると思います。
しかし特定の選手を探したいときは難しくなります。
(例えば1990年の得点王選手のIDが記録されていたとして、そのIDにアクセスするのは若干めんどうです)。

そして、引退した選手も保存されるので、ファイルは一方的に増えて行きます。
100万や200万、1000万になるかもしれません。(どのくらいかは知りません)。
確実にアクセスは遅くなり、間違った方法だと検索も大量に取られます。

どのファイルがどこのフォルダに保存されてるのか記載するにしても、もしも仮にDが1億も並んでるとアホの極みと思うわけです。



良さそうな方法考えてください。

799 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 13:49:09.94 ID:vcVH8w6b.net]
データベース使え

800 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 15:20:54.63 ID:eH4IcMDe.net]
チームが買収されたり合併されたらどうすんの

801 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 18:50:14.31 ID:yGf9dC8a.net]
>>798
データベース使え案件だけど無理なら自前で
選手IDをキーにしたB+木のインデックスファイルをつくり
それから検索する

802 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 22:26:55.40 ID:RIZFllKe.net]
オンメモリに収まる量ならともかく
外部データ連携するB+木とか自前で用意する方がリスク高いんじゃないの
しかも用途が野球なら実際に必要になる18人と監督+α以外ほぼ無駄データなわけで
そんなもんをまじめに管理するよりゲームの面白さに注力しろって意味でも
DB使え



803 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 20:12:40.65 ID:MVvuxbKY.net]
おまえらがいってることがすでにわかんねーよ

804 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 20:16:08.48 ID:cyCCNHZp.net]
登場選手はなんと1000万人!
面白いのかそれ?w

805 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 15:30:58.86 ID:jz4WAacM.net]
セジウィック4版が和訳されるのっていつ頃かな?

806 名前:デフォルトの名無しさん mailto:sage [2015/12/02(水) 19:19:28.88 ID:A58rIrCf.net]
実装したいアルゴリズムの名前がわからないので教えてください
知りたいのは以下の様なものです
---
for (int i = 0; i < 10; i++)
do_something(i);
これをクラスに展開して
int i = -1;
static bool Next() { ++i < 10; }
static int Value { get { return i; } }
static void Main() {
while (Next())
do_something(Value);
}
---
このように変換する方法について調べたいのです
実際に欲しいのはN重ループをフラットに繰り返しで処理する方法です
自力で解こうとしたのですが、どこかで勘違いをしているようで、うまく動いてくれません
名前が分からないと調べようがないので助けてください

807 名前:デフォルトの名無しさん mailto:sage [2015/12/02(水) 22:20:37.79 ID:yyIVeakG.net]
イテレーターで抽象化したいってことかな

808 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 00:25:03.13 ID:74Kx8KXh.net]
>>807
そうです
Iteratorパターンというのですか?
このパターンについて調べてみたのですが多重ループを解く方法については記述が見当たりませんでした

809 名前:デフォルトの名無しさん [2015/12/03(木) 15:48:13.76 ID:5y9yFaIO.net]
イタレーターを二つ以上用意する

810 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/03(木) 18:57:59.03 ID:tK7Nyube.net]
ヒント:ruby

811 名前:805 mailto:sage [2015/12/03(木) 20:32:43.77 ID:74Kx8KXh.net]
木構造+イテレータでぐぐって解決しました
ありがとうございました

812 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:54:01.39 ID:vWrFkfhW.net]
デザパタ実践したらファクトリだらけになったんだがこんなもんなのかな



813 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 23:56:43.50 ID:/pdSfCvK.net]
>>812
ありがち
デザパタ厨のやつが作ったクラスが
全部createInstanceだらけで使いにくいだけのクソが出来上がってた
まさに早すぎる抽象化
やるならせめてDIとかリフレクションや
アノテーションを使えやって思った

814 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 12:43:43.71 ID:fYAYo2Es.net]
数学っぽい問題なのですが、
n = 100のとき以下の3つの条件を満たす単位分数の組みを考える
1/n1 + 1/n2 + ....+ 1/nk = 1  (1)
n1 + n2 +....+nk = n (2)
n1 < n2 < ....<nk        (3)
これをプログラミングを用いて解きたいのですが、いい方法が思い浮かばなくて困っています
何か方法ありましたら、教えてください

815 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 23:31:43.15 ID:R0gDPv6y.net]
簡単な乱数生成のアルゴリズムで、線形合同法と言うのがあります。
数学のループ記述はよく分からないので、プログラム風に書くとこうです。

x = (a * x + b) % mod;

xが上書きされて何度も順番に使用さていると言う意味です。

% mod は割った余りです。
32bit環境なら
mod = 2 ** 32;
となっています。(つまり上記の式は32bitで表現できる最大値未満の乱数がxとして算出され、次の乱数生成にまた使用されます)。

64bit環境なら
mod = 2 * 64;
となっています。

x の初期値は何が入っていても構いません。(例えば式の初回使用時などに適当な値を入れます。例えば今の時間とか)。

a と b は定数で、これを何に設定するかによって乱数が良質であるか悪質であるか、また使える周期の長さが変わります。
周期が長くて良質な物を出すとき、これに何を設定すると良いのか分からないので教えてください。
32bit用と64bit用の両方をお願いします。

ちなみに、それを考えるのがどの程度大変 (または簡単) なことか分からんで質問してます。

816 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 18:58:35.99 ID:y7r4C3dc.net]
https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
例から適当に拾え
てか 線形合同法 定数 あたりでググればソースと解説があるだろ

817 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 19:00:49.31 ID:GmzcEDm2.net]
MT使え

818 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 21:14:19.01 ID:rY8ZFzdV.net]
>>816
>>817
ありがとうございます

819 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 02:29:13.85 ID:WaYE86JM.net]
>>814
それ解はあるの? 無限に続くのでは?

820 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:55:42.31 ID:2+dP2nJG.net]
>>819
単位分数って言ってるんだから、各 nk は 1 以上の整数だ。
条件 (2) によって nk は有限個しかないよ。

この条件を満たす解が存在するかどうかは知らん。

アルゴリズム的にはどうなんだろうな。
単純に条件 (2) と (3) に合うものを 1/2 + 1/98 から順に網羅していって、
条件 (1) に合うものをピックアップしていくというのはクソ遅いかな。
もちろん、浮動小数点でやったら誤差が出るから、すべて整数計算だけど。

821 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 11:58:26.07 ID:oLnMv084.net]
その方針だと何れにせよnのdistinct partitionの全体を走る必要がある。
「よい」アルゴリズムのオーダーは知らないけど, 分割数の漸近公式だけ見れば少なくとも準指数時間アルゴリズムになる

822 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:39:33.46 ID:oLnMv084.net]
やってみた, (2, 6, 7, 8, 21, 56), (3, 5, 6, 8, 9, 24, 45), (3, 4, 7, 8, 12, 24, 42)の3組だけらしい



823 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 07:49:13.32 ID:quO35K88.net]
遺伝的アルゴリズムの無料電子テキスト日本語版が無い
日本の人工知能はクソ

824 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 12:41:00.87 ID:21yj4oPz.net]
北野某に聞けよw

825 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 21:09:57.94 ID:i0IFFoJB.net]
人工知能予算は懐の中に消えていきました

826 名前:デフォルトの名無しさん [2016/01/20(水) 23:38:29.66 ID:epdaSdlJ.net]
オライリーの入門データ構造とアルゴリズム、原著のアマゾンレビュー見たら間違いがものすごい多いらしいけど翻訳は直ってるの?

827 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 22:44:56.10 ID:vB+/Osfo.net]
いいえたとえ明らかに間違いだ確信しても悪だと感じてもそれを正確に翻訳するのが翻訳家の仕事なのです
翻訳家ごときが主張を勝手にねじまげてはいけないのです

828 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 00:08:33.24 ID:raZVxvb6.net]
そりゃそうだな
もしもエラッタが出てるとしてもそれも反映するんじゃなくエラッタとして翻訳して付けるだろうし

829 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:24:00.13 ID:gfbrLyNS.net]
>>827
昔、「フォトンマッピング」という、
原著の間違い(計算式も含め)が大量に修正されていて、
挿絵まで挿入されて、しかも原著より安いという驚きの翻訳本があった。

まぁ、原著に間違いが多かったのには、それなりの訳があったんたが。

830 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 04:41:54.83 ID:QDUQ11dL.net]
日本の報道は捻じ曲げすぎるよね
海外の出来事のほとんどがまともに入って来ない

831 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 06:35:32.21 ID:4ZCEMBL4.net]
ロイターあたりを眺めるのか?

832 名前:デフォルトの名無しさん mailto:sage [2016/01/25(月) 00:49:21.41 ID:DXoTpOvl.net]
>>827
お前の言ってることは実社会を無視した単なる教条主義
翻訳にしろ何にしろ他人に役立つ仕事をするのに必要なのはpragmatismだよ
ニートして自分の部屋にこもってないで偶には人様の役に立つ仕事をしに外に出ろよ



833 名前:デフォルトの名無しさん mailto:sage [2016/01/25(月) 06:29:16.92 ID:8H4JYu/t.net]
ずいぶんでかいつりばりだなぁ

834 名前:デフォルトの名無しさん mailto:sage [2016/01/25(月) 11:08:55.31 ID:qRGGYULG.net]
>>827
原著者に問い合わせるだろう普通w

835 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 04:26:25.65 ID:1+b9HDsX.net]
機械翻訳だと中身の検証なんてしないよ
集合知プログラミングという悪しき前例もあるし

836 名前:デフォルトの名無しさん [2016/02/07(日) 12:46:18.16 ID:l17BC95H.net]
既存のDBがあり顧客都合によりDBレイヤの変更が許されない
要望ではUIレイヤを総入替してAPレイヤをリファクタリングしたいということになっています
しかし現実ではそもそもUIとAPとDBが密結合していてレイヤという概念は存在しません
こういった案件で役立つアーキテクチャスタイルやパターンは何でしょうか
DBの変更が効かないのでドメインモデルパターンは実質不可能です
全てを諦めて貧血モデルとトランザクションスクリプトを使うしかないのでしょうか
リファクタリング案件なのにコードが綺麗になる未来が見えません

837 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 15:38:18.60 ID:Ah5srJ1t.net]
>>836
なんとかレイヤってからには基本設計レベルでは元々レイヤはあったんでしょ
それらが実際は密結合しているのが嫌なんでしょ
つまりレイヤを疎結合にするのが目的なわけでしょ
だからUIレイヤを総入替するわけでしょ
将来的なリファクタリングを見据えて疎結合にするのが先なんじゃないの
コードが綺麗とかリファクタリングするとかはその先の話でしょ

838 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 16:19:13.81 ID:Ah5srJ1t.net]
あーそれとリファクタリング案件なんて誰が言ってるのか知らんけど
現実にリファクタリングにお金払う会社なんて存在しないからね
たぶん内部事情に詳しい客とか上の人とかが強調して言ってるだけで要件ではないよね
リファクタリングなんて曖昧な言い方は止めて上手いこと見積りに含めないと
現実には行われない可能性が高いね

839 名前:デフォルトの名無しさん [2016/02/28(日) 14:04:19.66 ID:kcbLGyy1.net]
リポジトリパターンなるものを知って使ってみたのですがこれ遅すぎませんか?
テキストファイル用のリポジトリから集約を全件取得
オラクルDB用のリポジトリに対して取得した各集約を保存して最後にコミット
という何気無い処理にもかなり時間がかかっています
リポジトリパターンは業務用システムで実用に耐えうるのでしょうか

840 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 21:39:59.71 ID:rqKeW9kJ.net]
>>839
考え方がおかしい
それってあくまでも層が違うモジュールをぶった切って設計やテストをしやすくするって用途だから
業務の永続化手段として使うものじゃないよ

841 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 22:00:28.10 ID:cktW2eh6.net]
>>840
よくわかりません
一般的な業務用システムでは永続化層を設けないのですか?

842 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 23:13:58.36 ID:rqKeW9kJ.net]
そういうことじゃなく
まあ遅いって判断してるわけだから
何かやり方がおかしいんだよ



843 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 23:21:17.03 ID:GBJ/TPKE.net]
>>839
リポジトリパターンが遅いっていう忌みがわからんw
じゃあそのまんま同じ処理を他のやり方でやったら普通に早いの?

844 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 00:06:09.33 ID:XUzsrygn.net]
>>843
バルクコピーを使うと高速になります
ですがこれはリポジトリパターンでは使えそうにありません

845 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 00:31:30.59 ID:2q2DW/zb.net]
それパターンなんて関係なくて、バルクコピーなら速くてインサートは遅いってだけじゃん。

846 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 10:54:35.48 ID:LDxMFaxC.net]
>>844
そのまんま同じ処理でって言ってるじゃん
バルクコピーしたら処理変わってんだろw

リポジトリパターンがその他の設計パターンで実装したものより遅いのかって聞いてんの

847 名前:デフォルトの名無しさん [2016/03/14(月) 14:56:36.24 ID:IZ2LWlGv.net]
質問です。たとえば以下のようなファイル名のリストがあったときに、ファイル名の類似性によってグルーピングするような一般的なアルゴリズムって何があるでしょうか?
検索キーワードだけでも教えてもらえると助かります!

123-456.zip
書類-1.doc
書類-2.doc
456-789.zip

→グループ化

123-456.zip
456-789.zip

書類-1.doc
書類-2.doc

848 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 16:02:15.36 ID:9C/zUDR9.net]
つベイズ

849 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 16:04:35.86 ID:9b9aepwB.net]
拡張子で分けてるだけじゃないの?

850 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 18:51:10.95 ID:4xYadpbt.net]
正規表現である程度のパターンごとに表現する。

851 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 19:19:25.61 ID:DzDVqAyb.net]
男の娘はどちらに分類されるべきかとか考えると趣向による問題だし一般的な分類は無理なんじゃないかな
文字種とかで類似度の高いペアに分けるぐらいでしょ

852 名前:デフォルトの名無しさん [2016/03/16(水) 00:01:25.62 ID:MRypUzWZ.net]
>>847
レーベンシュタイン距離とか



853 名前:デフォルトの名無しさん [2016/04/05(火) 16:33:18.67 ID:m6kqb6v+.net]
ダイクストラのアルゴリズムの正しさの証明がよく分からないのですが、
何かいい本はありますか?

854 名前:デフォルトの名無しさん [2016/04/05(火) 16:46:05.13 ID:m6kqb6v+.net]
imgur.com/MdPoKq5.jpg
imgur.com/PRjr5CT.jpg
imgur.com/41t2x4S.jpg

↑ダイクストラのアルゴリズムの正しさの証明についてですが、
3枚目の赤で囲ったあたりが分かりません。

この証明、分かる人いますか?

855 名前:デフォルトの名無しさん [2016/04/05(火) 16:50:41.63 ID:m6kqb6v+.net]
3枚目の画像で、

「d(x) = d(y) + l(y, x) となっているはずである。」

と書かれていますが、その後、このことは証明中で使われていないように見えます。

これは何なんでしょうか?

856 名前:デフォルトの名無しさん [2016/04/05(火) 16:58:30.51 ID:m6kqb6v+.net]
3枚目の画像に、

「d(x) = d(y) + l(y, x) となっているはずである。」

と書かれていますが、

d(x) ≦ d(y) + l(y, x)

ということしか言えないかと思います。

これについてはどうですか?

857 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 00:31:36.30 ID:pFDX1Wjl.net]
(b)のyとxについては(a)のwとvと同じかと。最短経路上にあると仮定してるから<はありえない。
これに別途証明を与える必要があるかどうかは別として。

858 名前:デフォルトの名無しさん [2016/04/06(水) 08:08:37.20 ID:QfbBfCGx.net]
>>857

ありがとうございます。

>>855
の疑問についてはどうでしょうか?

どうも使われていないように思います。

859 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 09:08:25.64 ID:loGBTR8N.net]
>>858
「v が先に取り出されたという話ですすめてるのに、d(x) < d(v) となるような x (図にもあるとおり、この x はまだヒープから取り出されてないので、V’ には属さない) があるのはおかしい」

ってことを言いたいんだろうけど、ややこしいね。
y も持ち出さないと d(x) = d(y) + l(y, x) が最短ですってことが言えないんじゃないのかな。

860 名前:デフォルトの名無しさん [2016/04/06(水) 23:05:03.06 ID:QfbBfCGx.net]
>>859
ありがとうございます。

-------------------------------------------------------------------

imgur.com/X6aS3J5.jpg
imgur.com/UyANGwz.jpg

優先度付きキュー(プライオリティーキュー)について質問です。

2枚目の画像に、優先度付きキューへキーを追加する insert(key) の疑似コードが書いてあります。
以下にそれを書きました。

insert(key)
■■H++
■■A[H] = -INFTY
■■heapIncreaseKey(A, H, key)

heapIncreaseKey(A, i, key)
■■if key < A[i]
■■■■エラー:新しいキーは現在のキーより小さい
■■A[i] = key
■■while i > 1 && A[parent(i)] < A[i]
■■■■A[i] と A[parent(i)] を交換
■■■■i = parent(i)

861 名前:デフォルトの名無しさん [2016/04/06(水) 23:05:47.70 ID:QfbBfCGx.net]
さて、質問ですが、なぜ、A[H] = -INFTY などとわざわざ代入しているのでしょうか?
heapIncreaseKey の一番最初の if 文は必ず偽になりますから無意味であるように思います。

なぜこのような無駄なことをしているのでしょうか?

以下のようなコードになぜしないのでしょうか?

insert(key)
■■H++
■■i = H
■■A[i] = key
■■while i > 1 && A[parent(i)] < A[i]
■■■■A[i] と A[parent(i)] を交換
■■■■i = parent(i)

862 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 00:15:40.81 ID:pUEgfdfM.net]
if 変数
else

などと条件分岐すると、速度も遅いし、
ややこしくてバグも増えるから、条件分岐を減らす

配列の番兵なども同じ



863 名前:デフォルトの名無しさん [2016/04/07(木) 02:46:40.63 ID:D2Sjbg8N.net]
>>862

ありがとうございます。

すみませんがよく分かりません。

if 変数
else

などとしているのは、むしろ -INFTY を代入しているコードのほうではないでしょうか?

864 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 03:52:09.66 ID:BbGPO0PR.net]
>>861
優先度ヒープは一度キューに入れたオブジェクトやタスクの優先度を後から変更できた方が実用性が高いんだけど、その2ページだけなら必要ないかも。
その書き直したコードでも大丈夫かもしれない。

アルゴリズムとしてはどの本にも同じようなことが書いてあるのは当然なんだけど、 実は全く同じ擬似コードがコルメン本にある。
バイブル的な本だからそこからパクってきたのかもしれない。

もし大学の情報系の生徒だったりITの仕事で使うなら、コルメン本(アルゴリズムイントロダクション)を進める。
2冊で1万円近くなるし、ページ数も多いものの、解説や証明は丁寧だし版も重ねてるから誤訳や誤字も少ない。証明の解説も詳しい。
他の本でわからないと結局そういった名著を当たることになる。

865 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 04:55:53.13 ID:pUEgfdfM.net]
もし変数aに値が入っていないと、一々、nil, undefined のチェックが必要になる。
それが面倒だから、初期値を代入している

if a{
aに値が入っている時だけ、処理する
}

漏れも、JavaScriptで配列を使って、2分ヒープを作ってみたので、参考にして

2分ヒープ(BinaryHeap)
jsdo.it/michihito/bGH5

866 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 18:59:01.77 ID:QHM1+lud.net]
カードゲームのaiを実装したいんですが、
行動に対する評価値を2分構文木に入れていくっていうロジックはありですか?

あと、行動すると巻き戻せない、シミュレートできないので、どうしようかなと。

行動に対するロールバックも実装しなければいけないでしょうか?

867 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 04:09:29.14 ID:MwGqsbeb.net]
>>866
どういうルールのゲームで、どういった種類の「行動」があって、どうして2分構文木(2分木じゃないの?)になったの?

868 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 13:01:51.57 ID:FoBfIIvs.net]
>>867
基本的にはカードを出す(呪文を唱える、モンスターを出す)、物理攻撃する、パスするぐらいですかね。

あ、2分探索木じゃ行動が2つじゃないから駄目な気がしてきました。

869 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 14:42:40.27 ID:MwGqsbeb.net]
>>868
AIで探索木的なのを考えてるならA*を勉強してみるといいかも

870 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 15:13:16.75 ID:LJnl+JdY.net]
A* は解領域にマッチしたヒューリスティック関数を決めてあげるのが大変だ‥

871 名前:デフォルトの名無しさん [2016/04/09(土) 19:20:31.07 ID:aVoK2gcj.net]
カードのシャッフルアルゴリズムって
どうしようかと悩みだすと結構悩むなぁ

872 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 22:57:17.76 ID:O9j9lH5Y.net]
>>871
一番シンプルなのは
配列からランダムに
取って戻すのを繰り返す



873 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:15:07.59 ID:8wDwAIGa.net]
>>871
悩むなぁとか言ってるけど、他の質問も見てると自分で何も考えてないよね?誰かがヒントと方向性示してくれるのを待ってるだけで。

874 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:17:50.87 ID:tVvAXki7.net]
おいおい。頭空っぽの奴に自分で考えろとか酷いこと言うなあ

875 名前:デフォルトの名無しさん [2016/04/10(日) 08:38:44.69 ID:oXSlNHSo.net]
>>864-865

あるがとうございました。

876 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 10:29:49.38 ID:viI7M/4y.net]
>>871
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC_-_%E3%82%A4%E3%82%A7%E3%83%BC%E3%83%84%E3%81%AE%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB

877 名前:デフォルトの名無しさん [2016/04/16(土) 19:09:43.89 ID:RkF64Ds4.net]
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

の「領域探索」が分かりません。

どうして↓のような2分探索木を作り利用するのですか?


imgur.com/uRbPFzt.jpg
imgur.com/TSevr6v.jpg

878 名前:デフォルトの名無しさん [2016/04/16(土) 19:11:14.59 ID:RkF64Ds4.net]
location ではなく x の値をノードに持たせないのはなぜでしょうか?

879 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 11:03:47.60 ID:Jl/B9TZo.net]
>>877
2分探索木を使う理由は探索時間を早くするためでしょう。
うまくいけば探索数が半分になるから

>>878
二分探索木をn個の配列で実装しているので、配列の添え字をxにする方法は
xが大きな数だったり整数でなかったりの場合に都合が悪いから

ただこれデータがソートされていることが前提だよね。そのまま二次元に
展開できるのかな

880 名前:デフォルトの名無しさん [2016/04/18(月) 20:25:41.28 ID:6VYHQoTT.net]
>>879

半分どころじゃなくて log n でしょ。

配列の添え字じゃなくて配列の中身をなぜ x にしないのか聞いているんじゃないの?

881 名前:デフォルトの名無しさん [2016/04/18(月) 20:30:02.32 ID:6VYHQoTT.net]
多分、 location の値を配列に入れているのは、2分探索木の
左右のバランスがよいことが保証されるからじゃないの?

882 名前:デフォルトの名無しさん [2016/04/19(火) 10:53:36.63 ID:b4Mb+Ui9.net]
>>877-878

2次元以上に拡張するためにはそのようにする必要がある。



883 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 01:45:04.87 ID:jf1w54Av.net]
木のバランス取れて初めて使えるレベルだろ
状況によっては木構造なんか作らず線形に探索した方が速いし

884 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 12:27:46.43 ID:9Ocgrhnl.net]
>>883
状況によっては木構造の方が速くて線形に探索した方が遅い状況も作れるな

885 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 13:48:32.88 ID:6r15gyc9.net]
>>883
では、どういう状況の場合に線形探索を利用するのか先生から説明をどうぞ

886 名前:デフォルトの名無しさん [2016/04/21(木) 14:08:39.31 ID:0vzabbti.net]
MIT系の『Introduction to Algorithms』

Princeton系の『Algorithms』

どっちがおすすめ?

887 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 14:19:32.38 ID:TG5MxLgd.net]
>>886
頭がいいなら前者、バカなら後者

888 名前:デフォルトの名無しさん [2016/04/22(金) 08:39:42.12 ID:pemVeZaH.net]
Introduction to Algorithms

って当たり前のことをループ不変とかを使って説明しているよね。

はっきりいってくどい。

889 名前:デフォルトの名無しさん [2016/04/22(金) 20:17:37.76 ID:pemVeZaH.net]
AlgorithmsはJavaのソースコードが載っていて具体的。

890 名前: ◆QZaw55cn4c mailto:sage [2016/04/22(金) 23:06:44.42 ID:DMiaofP1.net]
>>883
バランスを常にとるように作ることはできる

891 名前:デフォルトの名無しさん [2016/04/23(土) 10:50:53.22 ID:M5Qy0F9U.net]
>>888

Introduction to Algorithmsは確かにくどくて読みにくい。
別に難しい本でもない。

892 名前:デフォルトの名無しさん [2016/04/23(土) 10:51:34.32 ID:M5Qy0F9U.net]
結論は、
Donald E. Knuthの本が一番。



893 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 16:24:35.42 ID:jNieRcbT.net]
終了

894 名前:デフォルトの名無しさん [2016/04/24(日) 09:33:35.68 ID:jhscNiw7.net]
日本人著者によるアルゴリズムの本で一番いい本って浅野孝夫の情報の構造っていう本。

石畑清の本ってAVL木の説明が出鱈目だってAmazonのレビューに書いてあった。

895 名前:デフォルトの名無しさん [2016/04/24(日) 09:37:13.46 ID:jhscNiw7.net]
ところでPascalで書かれている本が多いのはなぜ?

Cのほうが分かりやすくない?

896 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 09:42:22.03 ID:HSA/nLEW.net]
pascal は学術系なんだよ。

897 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 11:11:12.52 ID:Z/fpIQVL.net]
処理のフローが書いてあるだけだろ

898 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 13:30:26.41 ID:n5HZWl0r.net]
>>892
あれは回答とかあっさりしすぎなとこあるだろ。。

899 名前:デフォルトの名無しさん [2016/04/24(日) 18:45:27.10 ID:jhscNiw7.net]
エイホホップクロフトウルマンのデータ構造とアルゴリズムを図書館から借りてきて
読んでいるけど、説明がいい加減すぎる。

900 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 23:44:13.95 ID:pid8Qk86.net]
入門 データ構造とアルゴリズム、2013、オライリー
Narasimha Karumanchi(インド人) 著

セジウィック・石畑清が定番

川中真耶も、赤黒木の説明だったかな? わかりやすかった

901 名前:デフォルトの名無しさん [2016/04/25(月) 08:06:15.68 ID:rnP5hl5x.net]
Karumanchiの本はこうすればいいということしか書いていない。
なぜそうすればいいかが全く書かれていない欠陥本。

902 名前:デフォルトの名無しさん [2016/04/26(火) 10:56:55.51 ID:JtHly74d.net]
石畑清の本は説明が面倒なところは容易に分かるとかいって逃げている。



903 名前:デフォルトの名無しさん [2016/04/27(水) 09:48:32.30 ID:Sdx3kEFz.net]
>>894

浅野孝夫のその本、最高だな。
超詳しく省略なく書いてある。
書きすぎとかいう批判が出そうなくらいだな。

904 名前:デフォルトの名無しさん [2016/04/30(土) 11:02:54.99 ID:jYDzAJS5.net]
アルゴリズムイントロダクションを買おうと思うんだけど、
総合版にするか第1巻第2巻のみにするかで迷っている。

後半の特殊なアルゴリズムはいらないような気もするし。

なんで総合版って割高なの?

905 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 18:06:23.76 ID:YBbs5n7s.net]
総合版ってあの鈍器だっけ。

906 名前:デフォルトの名無しさん [2016/04/30(土) 19:17:12.58 ID:jYDzAJS5.net]
総合版を買うことにしました。

907 名前:デフォルトの名無しさん [2016/05/01(日) 13:40:03.98 ID:tKi6j9CT.net]
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


908 名前:デフォルトの名無しさん [2016/05/01(日) 20:44:59.79 ID:u3cieUqF.net]
>>903

ポインタを使っていないのはなぜなんだろうか?
Pascalってポインタを使えるよね。

909 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 21:24:53.98 ID:JP6hgmB0.net]
>>908
可能な限り参照で済ませる文化だったかと

910 名前:デフォルトの名無しさん [2016/05/02(月) 03:02:21.21 ID:/Hk1TQTD.net]
古いからと否定する気はないけど今なら良い書籍が沢山有る気がするぜ
どれがそうなんだって言われたら困るけど20年前よりはいい本が出てる気がする

911 名前:デフォルトの名無しさん [2016/05/02(月) 09:17:48.88 ID:F0I20g+z.net]
>>910

そうか?
日本語の本では、アルゴリズムイントロダクションくらいしか思い浮かばない。

ほかに新しくていい本なんてあるか?

912 名前:デフォルトの名無しさん [2016/05/02(月) 13:17:36.23 ID:F0I20g+z.net]
比較的新しい本でいい本っていうと、翻訳系以外だと全く思い浮かばないんだが。



913 名前:デフォルトの名無しさん [2016/05/02(月) 18:10:09.56 ID:F0I20g+z.net]
浅野孝夫の本はクイックソートとか載っていないのがいいね。

914 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 10:25:55.27 ID:xwMa7zwR.net]
アルゴリズムイントロダクションって具体的にどれくらい難しいですか?(予備知識の多さではなく理解の難しさ)
数学科向けの数学書ぐらい?

915 名前:デフォルトの名無しさん [2016/05/03(火) 14:57:28.35 ID:bxMOJzqX.net]
簡単。

916 名前: ◆tAo.kQ2STk mailto:sage [2016/05/03(火) 15:46:52.15 ID:CPxVolRD.net]
ちょっとOS書いてるんだけど

可変長かつ連続したメモリ領域が本当に必要になるケースはOSレベルではそんなに無いって事を仮定して
・メモリ全体を1つ16バイトのチャンクに分ける
・各チャンクのアドレスの下4ビットが常に0になるので、普段はアドレスを4ビット右シフトした値を識別子として保持する
としてアロケータを組んでみてます。

32ビットの識別子で36ビット(64GiB)の空間を扱えるって利点の他に
x86_64のglibc mallocが1確保に対し管理領域として追加で8 Bytes消費するのと比較して、
こちらは16バイトの確保に対して管理領域として1ビット必要なので
glibc mallocで1024バイトの連続した領域を確保するのと同じ利用効率になり、かつ
「ポインタ」の保存に必要な領域が半減するという利点があります。

アドレスの算出にシフト演算が必要な点と、
基本的なデータ構造(list, set, map, hash, ...)を
1個16バイトのチャンクの組み合わせとして表現するのがちょっと手間である事
連続したメモリ領域の確保に別なアロケータが必要である事が主な欠点です。

実際には、4KiB単位の連続したメモリ領域をアロケータが面白みもない方法で確保して、
その中身をチャンクとして分割し、先頭2チャンクを管理領域にして確保/開放を行うという実装にしています。
連続したメモリ領域が本当に必要でも、4KiBあれば十分と今は仮定しています。

こういう方法ってこのスレ的には既出?

917 名前:デフォルトの名無しさん [2016/05/03(火) 18:42:53.59 ID:bxMOJzqX.net]
>>914

日本人の書いた薄っぺらい教科書よりも簡単。

918 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 18:52:57.38 ID:k0lWibxS.net]
>>914
ページ数は多いものの、説明は丁寧だから難しいということはない。大学の1,2年向け。
一冊の小さくまとまった教科書と違って説明を端折ったりしてないから、途中でわからなくなって結局別の本を買い足したりする必要がない

919 名前:デフォルトの名無しさん [2016/05/03(火) 19:03:24.76 ID:bxMOJzqX.net]
ただ、直観的に明らかな事実もわざわざご丁寧に説明していてうざい。

920 名前:デフォルトの名無しさん [2016/05/03(火) 20:50:04.37 ID:bxMOJzqX.net]
浅野孝夫の『情報の構造』に載っているプログラム例がエレガントで感心した。

921 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 08:24:35.18 ID:PCMiFBXM.net]
>>917-919
ありがとうございます

922 名前:デフォルトの名無しさん [2016/05/04(水) 12:49:25.38 ID:A2cfTnr6.net]
>>920

浅野孝夫のその本は説明が粗雑なところを詳細なプログラムを読むことで補完しなければならないところが難点。



923 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 15:23:50.62 ID:OcRpngHJ.net]
.>>916
さっぱりわかんね
要するにビットマップで管理するってことか?
勝手にやれとしか

924 名前: ◆tAo.kQ2STk mailto:sage [2016/05/04(水) 16:00:56.01 ID:p+LvbHBp.net]
>>923
要するに、32ビットのポインタで64GiBの領域を使えるって事

普通は64ビット版のプログラムはポインタを64ビットに拡張するんだけど、
木構造のようなポインタを多用するデータ構造の場合は
32ビット版と比較してメモリの効率が半減するデメリットがある。

この方法だと、メモリ効率を落とさずに4GiBを超えるメモリ領域を同時に使える。

既出かどうか(或いはもっと良い方法があるか)知りたかった

925 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 16:38:51.07 ID:WruTeJWf.net]
アロケータが確保する分にはいいとして、任意のポインタをどう表現するのかねぇ

926 名前: ◆tAo.kQ2STk mailto:sage [2016/05/04(水) 17:24:52.95 ID:p+LvbHBp.net]
任意のポインタを、アドレスを4ビット右シフトした値として表現する。
ポインタが指す先は常にチャンク境界(16バイト)にアラインメントされてて、
ポインタを使うときは4ビット左シフトしてアドレスに変換してから使う。
「ポインタを変数とかに代入してとっておくこと」と「ポインタをデリファレンスして他所から値を持ってくること」を分けて考えてる。
1バイトが128ビットのマシンだと思えばそんなに変な事ではないかと。

https://github.com/pixie-grasper/operating-system/blob/master/kernel/objects.asm

927 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 17:35:44.12 ID:ypA5W//n.net]
>>916
よくわかんねーけどやめたら

928 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 17:37:59.32 ID:WruTeJWf.net]
>1バイトが128ビットのマシンだと思えばそんなに変な事ではないかと。

やっぱりそうなるんだ。
ポインタのサイズを節約するために配列や構造体にえらい無駄が出るね。

929 名前: ◆tAo.kQ2STk mailto:sage [2016/05/04(水) 17:56:42.05 ID:p+LvbHBp.net]
> ポインタのサイズを節約するために配列や構造体にえらい無駄が出るね。
OS内に何らかの言語のインタプリタを実装して、
所謂ユーザーモードで動くプログラムは全てその言語で走る、というのを考えてる。
全てがシェルスクリプト、みたいな感じ。

で、そのインタプリタは数と文字列とハッシュを扱えれば良いと思っていて
ハッシュをAVL、文字列をrope構造なんかの木構造で実装するとすれば
16バイトってサイズは各ノードに情報を格納するのに丁度いいサイズではあるのよ。

ropeってのはこれな。
https://en.wikipedia.org/wiki/Rope_(data_structure)

その考えで行くと、あんまり無駄は出ないんじゃないかなとは思う。
勿論実行速度は多少犠牲になるけどね。

930 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 18:36:41.93 ID:VTHyhTWb.net]
>>916
FATの考え方だね。
メモリ管理でも応用できる気はするけど。

931 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 19:24:52.99 ID:WruTeJWf.net]
OSというからmallocとかの話かと思ったら、インタプリタ作ってんのか。
確かにLISPのConsCellの持ち方に似てはいるが。

932 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 20:55:58.55 ID:I71ZCmWZ.net]
16バイト境界でしか返さないmallocを作って4ビットシフトするのとはどう違うのか。

WindowsでいうGlobalAllocしてHANDLEを返して、実際に使うときにはGlobalLockでアドレスにするのと
同じような気がするのだが。



933 名前: ◆tAo.kQ2STk mailto:sage [2016/05/04(水) 22:32:04.59 ID:p+LvbHBp.net]
>>931
> OSというからmallocとかの話かと思ったら、インタプリタ作ってんのか。
正確には、OSが内部で使うアロケータの話。
malloc/freeとは仕様が違うっていうか前提からして噛み合わない。関数が返す領域のサイズが固定だから。
とここまで書いて、「常に1チャンクだけ確保して返す」とは明確には言ってなかったことに気付いた。ごめんよ。
incしてorするコードが根底にあるから忘れてたわ。

>>932
> 16バイト境界でしか返さないmallocを作って4ビットシフトするのとはどう違うのか。
16バイト境界でしか返さないって条件だと、16バイトの確保の為に追加で8バイトとか必要になる。
malloc/freeの仕様上、どうしても何バイト確保してあるかって情報をヒープ側に保持する必要があるからね。
開放する時点で何バイト確保されているかが自明で、かつ固定長ならば1ビットで済む。

> WindowsでいうGlobalAllocしてHANDLEを返して、実際に使うときにはGlobalLockでアドレスにするのと
操作の意味はそれと同じかも。中身は全然違うだろうけど。

934 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 23:32:14.08 ID:I71ZCmWZ.net]
なんか似たような話を最近見た気がしたがこれだった。
codezine.jp/article/detail/9325

935 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 23:54:19.41 ID:NIqCX6OH.net]
ホント最近の記事だな。

936 名前:デフォルトの名無しさん [2016/05/05(木) 20:14:53.64 ID:Rts6L3H5.net]
浅野孝夫の『情報の構造』の赤黒木のプログラムがすごすぎる。

名人芸の域に達している。

937 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 02:45:47.47 ID:iu7snuDE.net]
>>916
ObjectIDに、32bitメモリアドレスを使っている言語では、

使わない下位4bitを、nil, undefined, true/false などに使っている

938 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 00:38:26.53 ID:fVgrqlwf.net]
gof本の「オブジェクトのクラス」、「パラメータ化」という表現がよくわからん

939 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 09:44:21.83 ID:vQZ70y3E.net]
>>938
よくわからん、じゃねえよ
教えてくださいってちゃんと言えよカス

940 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 14:50:16.86 ID:bh4nZJj2.net]
クラスのインスタンスを引数として渡すってことじゃねーの。
つまりポリモーフィズムよ。






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

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

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