探検
Introduction to Algorithms 3rd Editionを読むスレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/09/14(木) 20:06:11.31ID:VdbIWmI2 Introduction to Algorithms 3rd Editionを読むスレ
2017/09/14(木) 20:19:35.01ID:iCtpzzfs
よし始めてくれ
3デフォルトの名無しさん
2017/09/14(木) 20:21:41.61ID:VdbIWmI24デフォルトの名無しさん
2017/09/14(木) 20:57:43.48ID:VdbIWmI2 Excercise 11.1-4が分からないので、
解説をお願いします。
解説をお願いします。
5デフォルトの名無しさん
2017/09/15(金) 06:34:18.86ID:eHlGtulJ2017/09/15(金) 13:06:31.11ID:M6zHVajf
ッアー
7デフォルトの名無しさん
2017/09/15(金) 14:55:33.38ID:StEXdinN どこがわからないのかがわからんのだけど、
1. doubly linked listを使ってるところなら、これはまったく本質とは関係なくて、
stackとして使うlistっぽいものを2つ用意すればいいだけ
key用とobject用
2. 問題は、huge array Hを元に、(small stack Sを補助として)小さなdictionaryを作れ
ということなので、イメージとしては、H: 英語辞典から、たとえば、
a-zのエントリのみの辞書をつくって、「他のキーに対してはNILを返す」ようにしてください
ということ
HのキーkとSのキーjに対して、S[H[k]]=kとH[S[j]=H[S[j]]=jが成立するようにSを作っていけばいいだけ
Sはキーの管理しかしてないので、同サイズのS'も作ってobjectの管理をすればよろし
これで問題ないことは、init, search, insert, deleteを具体的に示さないといかんのだけど、
簡単だし、たぶん上の解答にかいてあると思う
1. doubly linked listを使ってるところなら、これはまったく本質とは関係なくて、
stackとして使うlistっぽいものを2つ用意すればいいだけ
key用とobject用
2. 問題は、huge array Hを元に、(small stack Sを補助として)小さなdictionaryを作れ
ということなので、イメージとしては、H: 英語辞典から、たとえば、
a-zのエントリのみの辞書をつくって、「他のキーに対してはNILを返す」ようにしてください
ということ
HのキーkとSのキーjに対して、S[H[k]]=kとH[S[j]=H[S[j]]=jが成立するようにSを作っていけばいいだけ
Sはキーの管理しかしてないので、同サイズのS'も作ってobjectの管理をすればよろし
これで問題ないことは、init, search, insert, deleteを具体的に示さないといかんのだけど、
簡単だし、たぶん上の解答にかいてあると思う
2017/09/15(金) 15:01:53.76ID:AShrr3bB
クオータニオンか
2017/09/15(金) 15:17:15.95ID:Xh3vGrxx
>>7
これってHash TableやTrieを使ったDictionaryに比べて何がうれしいの?
これってHash TableやTrieを使ったDictionaryに比べて何がうれしいの?
10デフォルトの名無しさん
2017/09/15(金) 15:40:26.21ID:StEXdinN Chap 11. Hash Tables
Sect 1. Direct-address tables
Sect 2. Hash tables
Sect 3. Hash functions
...
という流れのSection 1だから、基本的にHash tableへの前フリ
当然、keyが小さいならHash tableいらなくて、direct-address tablesで
十分ということもふれてあります
Trieについては、上で出した例以外だとあまり関係ないですね
書籍では、もう少し抽象的な扱いなんですが、本質的には簡単な話だということを示す
ために上の例を出しました
なので、Trieは問題を限定しすぎになります
Sect 1. Direct-address tables
Sect 2. Hash tables
Sect 3. Hash functions
...
という流れのSection 1だから、基本的にHash tableへの前フリ
当然、keyが小さいならHash tableいらなくて、direct-address tablesで
十分ということもふれてあります
Trieについては、上で出した例以外だとあまり関係ないですね
書籍では、もう少し抽象的な扱いなんですが、本質的には簡単な話だということを示す
ために上の例を出しました
なので、Trieは問題を限定しすぎになります
11デフォルトの名無しさん
2017/09/15(金) 18:49:15.88ID:eHlGtulJ12デフォルトの名無しさん
2017/09/15(金) 19:55:25.26ID:eHlGtulJ 11章のハッシュ関数のところで、
CHAINED-HASH-DELETE(T, x)
という関数がありますが、なぜ
CHAINED-HASH-DELETE(T, k)
じゃないんですか?
CHAINED-HASH-DELETE(T, x)
という関数がありますが、なぜ
CHAINED-HASH-DELETE(T, k)
じゃないんですか?
13デフォルトの名無しさん
2017/09/15(金) 20:03:32.59ID:eHlGtulJ キーって何ですか?イメージがわきません。
14デフォルトの名無しさん
2017/09/17(日) 17:10:20.73ID:7slIJ8sy Kleinberg & Tardosの本に以下のような内容の記述があります。
でも、 n > 1 のとき、 H が universal になることは決してないですよね。
u = v のとき、常に、 h(u) = h(v) なので、問題の確率は 1 ですから。
--------------------------------------------------
U を要素数の非常に多い有限集合とする。
H を U から {0, 1, ..., n-1} へのすべての写像の集合のある部分集合とする。
u, v ∈ U に対して、ランダムに選んだ h ∈ H が h(u) = h(v) を満たす確率はたかだか 1/n であるとき、
H は universal であるという。
でも、 n > 1 のとき、 H が universal になることは決してないですよね。
u = v のとき、常に、 h(u) = h(v) なので、問題の確率は 1 ですから。
--------------------------------------------------
U を要素数の非常に多い有限集合とする。
H を U から {0, 1, ..., n-1} へのすべての写像の集合のある部分集合とする。
u, v ∈ U に対して、ランダムに選んだ h ∈ H が h(u) = h(v) を満たす確率はたかだか 1/n であるとき、
H は universal であるという。
15デフォルトの名無しさん
2017/09/17(日) 17:31:03.46ID:7slIJ8sy S を #S ≦ n であるような任意の U の部分集合とする。
u を U の任意の要素とする。
X を ランダムな選択 h ∈ H に対して、値 #{s ∈ S | h(s) = h(u)} をとるようなランダム変数とする。
このとき、
E[X] ≦ 1
である。
証明:
s ∈ S に対し、
h(s) = h(u) であるならば、 1
h(s) ≠ h(u) であるならば、 0
となるようなランダム変数を X_s とする。
仮定により、 H は universal であるから、
E[X_s] = Pr[Xs = 1] ≦ 1/n
X = Σ X_s だから期待値の線形性により、
E[X] = ΣE[X_s] ≦ #S * (1/n) ≦ 1
u を U の任意の要素とする。
X を ランダムな選択 h ∈ H に対して、値 #{s ∈ S | h(s) = h(u)} をとるようなランダム変数とする。
このとき、
E[X] ≦ 1
である。
証明:
s ∈ S に対し、
h(s) = h(u) であるならば、 1
h(s) ≠ h(u) であるならば、 0
となるようなランダム変数を X_s とする。
仮定により、 H は universal であるから、
E[X_s] = Pr[Xs = 1] ≦ 1/n
X = Σ X_s だから期待値の線形性により、
E[X] = ΣE[X_s] ≦ #S * (1/n) ≦ 1
16デフォルトの名無しさん
2017/09/17(日) 17:34:31.44ID:7slIJ8sy この証明は、
u ∈ S であるとき、破綻しますよね。
u ∈ S であるとき、破綻しますよね。
17デフォルトの名無しさん
2017/09/17(日) 17:38:50.10ID:7slIJ8sy Kleinbergはネヴァンリンナ賞を受賞した人だそうですが、大丈夫な人なのでしょうか?
18デフォルトの名無しさん
2017/09/17(日) 19:04:02.49ID:rjQ9hI/o Algorithm Designのchap 13のことなら、p.738の(13.22)を導く大前提として、p.736に
distinct elements u, vとかいてあるんだけどね
(13.22)を受けてのuniversalのカジュアルな定義をかいてるだけ
後者については、
let u be any element in U
を
let u be any element in U\S
に読み替えればいいし、これで他の議論になんの影響もないでしょ
どちらも問題の意味理解していればわかる瑣末なこと
formalな定義と議論を知りたいなら
Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data Analysis,2ed By Michael Mitzenmacher, Eli Upfal, Cambridge Univ,2017
distinct elements u, vとかいてあるんだけどね
(13.22)を受けてのuniversalのカジュアルな定義をかいてるだけ
後者については、
let u be any element in U
を
let u be any element in U\S
に読み替えればいいし、これで他の議論になんの影響もないでしょ
どちらも問題の意味理解していればわかる瑣末なこと
formalな定義と議論を知りたいなら
Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data Analysis,2ed By Michael Mitzenmacher, Eli Upfal, Cambridge Univ,2017
19デフォルトの名無しさん
2017/09/19(火) 16:51:25.50ID:VId0++Wx 定理11.1で、
Θ(1 + α)
を n に関して 0 次の項である 1 を消去して、
Θ(α)
と書かないのはなぜですか?
α = n/m です。
Θ(1 + α)
を n に関して 0 次の項である 1 を消去して、
Θ(α)
と書かないのはなぜですか?
α = n/m です。
20デフォルトの名無しさん
2017/09/19(火) 21:26:27.98ID:IqRhss0M 証明内や、定理の直前のパラグラフに書いてあるとおり
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【給食無償化】国が全額負担 自維公3党、近く合意へ [ぐれ★]
- 「レーダー照射」なぜ中国は素直に謝罪しないのか 非を認めず反論、逆ギレ「ごめんなさい」と言えない国情★2 [七波羅探題★]
- こども家庭庁、2026年から“独身税”を開始、年収200万なら年4200円、年収400万なら年7800円 ★6 [お断り★]
- 【サッカー】Jリーグ、43億円の赤字予算を承認 ★2 [鉄チーズ烏★]
- 【芸能】整形課金額600万円 元STU48・榊美優、激変ショットに反響続々 「もう別人だし大成功」​「すごい変化だね」 [冬月記者★]
- 松村沙友理、スタバは好きだけど「やっぱコーヒーに700円800円が…」「家でお湯わかしてやったらタダやん」 [muffin★]
- ラ ー メ ン つ け 麺 ボ ク
- 長期国債の金利、今日本で一番ヤバいのがこれだろ [805596214]
- 味の素会長「日本の冷凍餃子は安すぎる。価値に見合った価格を」 [573472858]
- こ こ は ど こ の
- 全員ぶっ殺すお🏡
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★4
