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

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

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

                  京都大学霊長類研究所

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

【関連スレ】
3Dアルゴリズム全般
http://toro.2ch.net/test/read.cgi/tech/1164171086/
<集大成>アルゴリズム大辞典
http://toro.2ch.net/test/read.cgi/tech/1086272325/
アルゴリズム総合スレ in ム板
http://toro.2ch.net/test/read.cgi/tech/1217773415/

アルゴリズムとデータ構造 - Kaneko Lab.
ttp://www.kkaneko.com/adp/algo/index.html
アルゴリズムとデータ構造 - ソースコード探険隊
ttp://www.codereading.com/algo_and_ds/
各種アルゴリズムの C++ による実装 - Spaghetti Source
ttp://www.prefield.com/algorithm/
アルゴリズムとデータ構造 - プログラミングスレまとめ in VIP
ttp://vipprog.net/wiki/algo_and_data_const.html
127デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:20:00.87ID:5nrc1ooF
>>126

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

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

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

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

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

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

だからあんまり人気がないのかもしれないですね。
2016/12/19(月) 00:01:07.57ID:hSWjQy3F
漏れw
2016/12/19(月) 01:06:56.52ID:8cVREo5r
流石に漏れは笑う
2016/12/19(月) 08:08:43.72ID:judB9f5Y
>>144
全体的なリテラシの底上げがされるまではどうしてもね。
148デフォルトの名無しさん
垢版 |
2016/12/19(月) 12:42:11.26ID:z9XVuDpo
>>144
理論的な上限値をあらかじめ計算することが出来て
無駄な努力や試行錯誤をしなくて済むというメリットがあるよ
2016/12/19(月) 17:37:02.75ID:ic0p/3Yf
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する長さ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。
2016/12/19(月) 17:39:59.34ID:ic0p/3Yf
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。
2016/12/19(月) 17:48:27.12ID:z9XVuDpo
(1,-1,1)の長さが2?
152デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:53:09.70ID:yHCszZUX
>なのでその対応をする関数をおしえてください。

意味不明です。
153デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:55:40.11ID:yHCszZUX
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

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

a_i < 0 のときには、

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

a_i = 0 のときには、

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

を返せばいいのでは?
154デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:57:14.37ID:yHCszZUX
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

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

a_i < 0 のときには、

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

を返せばいいのでは?

a_i = 0 のときには、条件を満たす列は存在しないね。
155デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:58:07.65ID:yHCszZUX
>>150

何がやりたいのかが不明確。
2016/12/19(月) 17:58:17.41ID:hSWjQy3F
>>149
列の最初の数字だけ1足すなり引くなりして返せばいいだけじゃないの?
157デフォルトの名無しさん
垢版 |
2016/12/19(月) 18:01:17.72ID:yHCszZUX
>例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
>(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
>なのでその対応をする関数をおしえてください。

一つに定まらないから、すべての結果を返したいのか、
任意の一つの結果を返したいのか?
158デフォルトの名無しさん
垢版 |
2016/12/19(月) 18:02:09.41ID:yHCszZUX
明らかに、

(0, 0, ..., 0) に対しては条件を満たす結果は存在しないね。
2016/12/19(月) 18:50:37.10ID:ic0p/3Yf
0はスタート地点なので
2016/12/19(月) 18:57:02.98ID:ic0p/3Yf
>>154
a_2を1としたとき(-1, 1)のとき(-1,0)を返し
a_1を-1としたとき (-1,1)は(0,1)をかえすことになるので
一つに定まりません
2016/12/19(月) 19:06:19.22ID:ic0p/3Yf
>>157
大きさn>0の任意の列aにたいしてf(a)=bでbがn-1の大きさでaと列の中の値が1だけ違う
列を出力する関数fを求めるということです。
2016/12/19(月) 19:13:51.38ID:ic0p/3Yf
>>156
初めはそんな風に考えてる時期もありました
もう2か考えてるけれど全然わからないのでここで質問してみました
2016/12/19(月) 19:16:05.63ID:hSWjQy3F
>>161
問題文を鸚鵡返しするんじゃなくて、質問者の質問に答えたら?
2016/12/19(月) 19:23:49.64ID:ic0p/3Yf
>>163
fの出力は列の集合じゃないから普通わかりますよね
2016/12/19(月) 19:31:58.40ID:hSWjQy3F
>>164
fが返すのは集合じゃないってのはどこに書いてある?
2016/12/19(月) 19:34:42.99ID:ic0p/3Yf
>>165
14行上に書いてあります
2016/12/19(月) 19:47:31.40ID:hSWjQy3F
>>166
Mateだと>>156って書いてあるわ
自分の中ではこれは当然みたいな条件がいろいろあるんだろうけど、それを人に説明するのが下手なんじゃね
2016/12/19(月) 20:02:25.40ID:ic0p/3Yf
改行コードの数を数えてますか?
文の折り返しと改行とは違いますよ?
2016/12/19(月) 20:17:02.98ID:2q/Y95iw
こりゃまたひどい質問者だな
2016/12/19(月) 20:18:06.39ID:Xx/umGft
課題の丸投げ、しかも「日本語」が
2016/12/19(月) 20:25:56.12ID:ic0p/3Yf
課題という証拠はありますか?
実際課題じゃなくプログラミングしていたら出てきた問題なので
全然課題じゃないです
2016/12/19(月) 20:33:03.53ID:ic0p/3Yf
>>170
あなたには誤った文を訂正する能力がないんですか?
それでは人間ではなくコンパイラーと同じですよ
2016/12/19(月) 20:37:51.17ID:ic0p/3Yf
>>169
面白い問題とつまらない問題を区別する能力が数学的推測には
一番必要なんんです
この問題がつまらないと思うのなら解かないでいいです
2016/12/19(月) 20:50:46.99ID:2q/Y95iw
問題をきちんと記述する能力に欠けている
2016/12/19(月) 20:52:23.54ID:2q/Y95iw
あと、面白い問題だと思うなら、それこそ自分で解くのが楽しいのでは
ここで聞かずに
2016/12/19(月) 21:27:51.26ID:ic0p/3Yf
>>175
楽しいものは独り占めるのではなく分け与えようと習わなかったのでは?
2016/12/19(月) 21:44:43.60ID:ic0p/3Yf
>>174
今読み返してみましたがキチンと書かれてますよ
どこがキチンと書かれてないのか言ってくれたら
それは理解力の無さなので説明してもいいです
2016/12/19(月) 22:34:08.82ID:2q/Y95iw
十分楽しんだからあとは一人で楽しんでくれていいよ
2016/12/19(月) 22:53:51.02ID:Xx/umGft
>>172
馬鹿乙
2016/12/19(月) 23:04:39.12ID:L2gIhLeK
先頭から非0を探して、はじめの要素が正なら1ひく、負なら1足す
これで終わりじゃないの?
2016/12/19(月) 23:45:15.82ID:Xx/umGft
アルゴリズムは自分で考えるじゃ、ボケ
2016/12/20(火) 13:05:59.52ID:lAXr92yw
>>171
茶か尿かもう判らんって意見があるけど
検出時のガスクロのデータ見直したら判るはずという話がある
仮にそれでお茶だとしてももう発表はないだろう
183デフォルトの名無しさん
垢版 |
2016/12/21(水) 18:35:54.54ID:UR5SKYPV
数列 1, 2, 3, …

すなわち、

数列 {a_n} = {n}

を考える。

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

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

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

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

また、有限部分列 a_k, a_(k+1), …, a_l(k ≦ l)が与えられたとき、 k ≦ i ≦ l である
任意の i に対して、 b_i ≦ b_m となるような m を求めるプログラムを作れ。
2016/12/21(水) 18:45:01.91ID:trArLuj5
お断りいたします
2016/12/21(水) 18:49:10.92ID:IT3zLaEf
俺も断るわ
186デフォルトの名無しさん
垢版 |
2016/12/21(水) 19:41:25.65ID:UR5SKYPV
早くも降参宣言か。
2016/12/21(水) 19:55:05.40ID:RIWp4Ngq
mなんていくらでもあるんじゃないの?
なんで#{m}=1?
188デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:06:55.96ID:UR5SKYPV
>>187

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

反例を作ろうと思ってもできないはずです。
2016/12/21(水) 20:09:57.40ID:trArLuj5
>>183
分からない問題はここに書いてね421 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/math/1480771004/493
2016/12/21(水) 20:12:10.26ID:RIWp4Ngq
k=1, l=2で、{m}={2,4,6,8,...}
k=l=1で、{m}=自然数の集合
じゃないの?
191デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:16:47.08ID:UR5SKYPV
>>190

{a_n} の任意の*連続する*有限部分列を a_k, a_(k+1), …, a_l(k ≦ l)とする。
192デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:18:48.11ID:UR5SKYPV
k=1, l=2で、{m}={2,4,6,8,...}
k=l=1で、{m}=自然数の集合
じゃないの?

a_1, a_2 = 1, 2

なので、 b_1, b_2 = 0, 1

です。

なので、 {m} = {2} です。
193デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:19:15.67ID:UR5SKYPV
>>191
は勘違いです。
194デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:20:14.23ID:UR5SKYPV
a_1 = 1

なので、

b_1 = 0

です。

なので、

{m} = {1}

です。
2016/12/21(水) 20:21:17.66ID:RIWp4Ngq
k=1, l=2も、k=l=1も、当然連続する部分列でしょ
{b_i}を10個ぐらい挙げてみてよ
2016/12/21(水) 20:22:42.50ID:RIWp4Ngq
mの条件が足りないんじゃないの?
2016/12/21(水) 20:24:46.75ID:RIWp4Ngq
b_i ≦ b_mさえ満たせばいいんならmなんていくらでもあるでしょ
198デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:32:03.58ID:UR5SKYPV
b_m は b_i の最大値です。

その最大値となる b_m の m が一意的であるということです。
2016/12/21(水) 20:32:36.28ID:El82f3CE
k≦m≦lという条件が抜けているっぽいね
200デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:34:06.08ID:UR5SKYPV
テレンス・タオ ルベーグ積分入門
テレンス タオ
固定リンク: http://amzn.asia/8KaL6NK

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

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

普通、ルベーグ積分なんてやるのは数学科かせいぜい物理学科くらいじゃないですか?
201デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:34:58.70ID:UR5SKYPV
>>199

各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する:
2016/12/21(水) 20:39:27.31ID:RIWp4Ngq
不完全な問題出しておいて>>186はないよね
203デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:41:22.47ID:UR5SKYPV
>>202

不完全なところはありません。
よく問題文を読んでください。
2016/12/21(水) 20:42:06.97ID:trArLuj5
>>200
力学・解析力学part2
http://rio2016.2ch.net/test/read.cgi/sci/1284697460/479
2016/12/21(水) 20:43:41.56ID:trArLuj5
マルチ小僧w
2016/12/21(水) 20:44:49.22ID:RIWp4Ngq
>>203
mがkからlの間なんて一言もないんだから不完全
207デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:47:08.96ID:UR5SKYPV
>>206

>>183
各 i(k ≦ i ≦ l)に対して、0以上の整数 b_i を以下で定義する
2016/12/21(水) 20:52:23.64ID:RIWp4Ngq
そうだとして、わざと誤読を誘おうとしている悪問だね
でO(log k)のアルゴリズム思いついたから俺は降りるね
2016/12/21(水) 20:53:06.55ID:RIWp4Ngq
O(log l)だった
210デフォルトの名無しさん
垢版 |
2016/12/21(水) 20:55:14.58ID:UR5SKYPV
>>183

の解答は以下です。

http://imgur.com/rAnp3Ga.jpg

赤線を引いたところは「odd」が正しいですね。
211デフォルトの名無しさん
垢版 |
2016/12/21(水) 21:27:34.73ID:UR5SKYPV
実は、この問題には続きがあります。

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

このとき、

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

は整数にはならないことを証明せよ。
212デフォルトの名無しさん
垢版 |
2016/12/21(水) 21:29:28.61ID:UR5SKYPV
ちょっとアルゴリズム的な問題からは離れますが。
2016/12/21(水) 21:31:37.14ID:xYX0mlO/
提出日はいつですか?
2016/12/21(水) 22:14:54.89ID:auJA5Ak8
またバカな質問者が暴れてるのか
2016/12/21(水) 23:45:05.79ID:mNaBBYjZ
qiitaでやれ
2016/12/23(金) 00:59:54.04ID:gOElNe3R
>>183
そのような m が 2 個ある
m1 < m2
とする

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

m3 = m1 + ( 2 の n 乗 )

と定義すると
m1 < m3 <= m2 であるが、b_m3 > n となって矛盾
2016/12/23(金) 01:37:11.09ID:gOElNe3R
>>211
1/m + 1/(m+1) + … + 1/n = P = 整数
だとする

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

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

すべての項は整数。

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

m <= x <= n は b_x を最大にするもの
左辺の L/x だけ連続する下位ビット 0 の個数は他より少ない
よって b_左辺 = b_x で矛盾
218デフォルトの名無しさん
垢版 |
2017/01/01(日) 00:15:18.27ID:VtFWW7J2
ダイクストラのアルゴリズムの正しさの証明が載っている本で
一番分かりやすい本を教えてください。
219デフォルトの名無しさん
垢版 |
2017/01/02(月) 07:40:19.35ID:03PPbeGI
『アルゴリズムイントロダクション』について質問です。

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

最短路問題の説明で、

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

という記述があるために質問します。
220デフォルトの名無しさん
垢版 |
2017/01/02(月) 08:09:15.65ID:03PPbeGI
実数 a が a≠∞のとき、 a + -∞ = -∞
実数 a が a≠-∞のとき、 a + ∞ = ∞

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

という等式を含めたいからこのような書き方になったのでしょうか?
2017/01/02(月) 09:29:22.45ID:J77W/v0L
それは実無限派の書き方だが,世の趨勢は可能無限
ほどほどに相手をするだけでいいよ
222デフォルトの名無しさん
垢版 |
2017/01/02(月) 11:22:57.42ID:03PPbeGI
>>221

ということは、『アルゴリズムイントロダクション』での実数の集合の定義には、
∞、-∞ が含まれるというk十ですね。
223デフォルトの名無しさん
垢版 |
2017/01/02(月) 11:23:39.72ID:03PPbeGI
頂点の数が n のグラフで、任意の頂点間に辺が存在するようなものを考える。

ある任意の頂点から別の任意の頂点への閉路をふくまない経路の数を求めよ。
224デフォルトの名無しさん
垢版 |
2017/01/02(月) 11:26:14.49ID:03PPbeGI
頂点の数が n(≧2) のグラフで、任意の頂点間に辺が存在するようなものを考える。

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

このとき、

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

が成り立つことを示せ。
2017/01/02(月) 12:08:43.26ID:GdcUHK9D
宿題は宿題スレへ
2017/01/02(月) 12:09:56.00ID:GdcUHK9D
宿題は宿題スレへ
227デフォルトの名無しさん
垢版 |
2017/01/02(月) 12:22:39.27ID:03PPbeGI
宿題ではないのです。

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

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

ところが、計算してみると、 O(n!) は荒い評価であって、 O((n-1)!) とできますね。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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