このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
データ構造,アルゴリズム,デザインパターン総合スレ 2
http://echo.2ch.net/test/read.cgi/tech/1362301811/
【関連スレ】
3Dアルゴリズム全般
http://toro.2ch.net/test/read.cgi/tech/1164171086/
<集大成>アルゴリズム大辞典
http://toro.2ch.net/test/read.cgi/tech/1086272325/
アルゴリズム総合スレ in ム板
http://toro.2ch.net/test/read.cgi/tech/1217773415/
アルゴリズムとデータ構造 - Kaneko Lab.
ttp://www.kkaneko.com/adp/algo/index.html
アルゴリズムとデータ構造 - ソースコード探険隊
ttp://www.codereading.com/algo_and_ds/
各種アルゴリズムの C++ による実装 - Spaghetti Source
ttp://www.prefield.com/algorithm/
アルゴリズムとデータ構造 - プログラミングスレまとめ in VIP
ttp://vipprog.net/wiki/algo_and_data_const.html
データ構造,アルゴリズム,デザインパターン総合スレ 3©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/06/19(日) 14:47:29.63ID:5KvSKdL/
497デフォルトの名無しさん
2017/07/08(土) 16:30:54.37ID:/Hl6yXpd >>496
教科書の荒さがして著者をdisることを生きがいとしてる厨房
ID:bx7kaphQ
Daniel Marcus Graph Theory を読む。 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/math/1497007079/
教科書の荒さがして著者をdisることを生きがいとしてる厨房
ID:bx7kaphQ
Daniel Marcus Graph Theory を読む。 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/math/1497007079/
>>497
高等な趣味だと思うよ,よく頑張っているね
高等な趣味だと思うよ,よく頑張っているね
499デフォルトの名無しさん
2017/07/08(土) 19:37:28.26ID:ICTsGxtb 馬鹿アスペ同士仲良く
500デフォルトの名無しさん
2017/07/09(日) 17:28:01.51ID:X4hx0gz3 お前ら、ちゃんと次スレ立ててやれよ?
隔離スレさえあればこっちに被害は及ばないからな
隔離スレさえあればこっちに被害は及ばないからな
501デフォルトの名無しさん
2017/07/09(日) 17:29:01.52ID:ZR+XIVIQ お前がやれよ
502デフォルトの名無しさん
2017/07/10(月) 01:48:04.10ID:LYhH/bN3 よし、今日からワイがM坂だ!
503デフォルトの名無しさん
2017/07/10(月) 10:06:36.48ID:BQfNYjN8 比較によるソートの比較回数の下限についての議論で決定木が登場します。
決定木の葉の数が n! 以上だという記述があるのですが、ちょうど n! ではないのでしょうか?
意味不明です。
決定木の葉の数が n! 以上だという記述があるのですが、ちょうど n! ではないのでしょうか?
意味不明です。
504デフォルトの名無しさん
2017/07/10(月) 13:49:55.16ID:BQfNYjN8 そもそも決定木って何ですか?
505デフォルトの名無しさん
2017/07/10(月) 14:01:08.40ID:BQfNYjN8 例えば、決定木の内部ノードに 1: 2 というのノードにおいて、
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、
その計算結果を捨ててしまってもいいんですよね?
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、
その計算結果を捨ててしまってもいいんですよね?
506デフォルトの名無しさん
2017/07/10(月) 14:02:15.57ID:BQfNYjN8 例えば、決定木の内部ノードに 1: 2 というノードがあったとすると、そのノードにおいて、
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、その計算結果を捨ててしまっ
て以後利用しなくてもいいんですよね?
a_1 ≧ a_2 であるか a_1 < a_2 であるかを計算しますが、その計算結果を捨ててしまっ
て以後利用しなくてもいいんですよね?
507デフォルトの名無しさん
2017/07/10(月) 17:02:14.26ID:BQfNYjN8508デフォルトの名無しさん
2017/07/10(月) 17:11:43.87ID:OAwCY67i どこでもたちまち糞日記スレにしてしまう恐ろしさ
509デフォルトの名無しさん
2017/07/10(月) 17:39:12.62ID:S+vnKcL6 他にも被害スレが?
510デフォルトの名無しさん
2017/07/10(月) 18:34:52.99ID:BQfNYjN8 段々、言いたいことが分かってきました。
a1, a2, a3, a4 を比較によってソートするあるアルゴリズムがあるとします。
そのアルゴリズムには対応する決定木 T が存在します。
深さ k の決定木の葉の数の最大値は明らかに 2^k です。(深さ k の完全2分木の場合)
a1, a2, a3, a4 の大小関係の可能性は、以下の 4! = 24 通りあります。
a1 < a2 < a3 < a4
a1 < a2 < a4 < a3
…
a4 < a3 < a2 < a1
そのすべての可能性に対してそのアルゴリズムはソートしなければならないので、
T の葉の数はちょうど 24 であるはずです。
深さ 1 の決定木はただ一つ存在し、葉の数は 2 です。
24 ≠ 2 なので、 T の深さは 1 ではありません。
深さ 2 の決定木の葉の数の最大値は 2^2 = 4 です。
24 ≦ 4 ではないため深さ 2 の決定木では、 24 個の葉を収容できません。
深さ 3 の決定木の葉の数の最大値は 2^3 = 8 です。
24 ≦ 8 ではないため深さ 3 の決定木では、 24 個の葉を収容できません。
a1, a2, a3, a4 を比較によってソートするあるアルゴリズムがあるとします。
そのアルゴリズムには対応する決定木 T が存在します。
深さ k の決定木の葉の数の最大値は明らかに 2^k です。(深さ k の完全2分木の場合)
a1, a2, a3, a4 の大小関係の可能性は、以下の 4! = 24 通りあります。
a1 < a2 < a3 < a4
a1 < a2 < a4 < a3
…
a4 < a3 < a2 < a1
そのすべての可能性に対してそのアルゴリズムはソートしなければならないので、
T の葉の数はちょうど 24 であるはずです。
深さ 1 の決定木はただ一つ存在し、葉の数は 2 です。
24 ≠ 2 なので、 T の深さは 1 ではありません。
深さ 2 の決定木の葉の数の最大値は 2^2 = 4 です。
24 ≦ 4 ではないため深さ 2 の決定木では、 24 個の葉を収容できません。
深さ 3 の決定木の葉の数の最大値は 2^3 = 8 です。
24 ≦ 8 ではないため深さ 3 の決定木では、 24 個の葉を収容できません。
511デフォルトの名無しさん
2017/07/10(月) 18:37:08.78ID:BQfNYjN8 深さ 4 の決定木の葉の数の最大値は 2^4 = 16 です。
24 ≦ 16 ではないため深さ 4 の決定木では、 24 個の葉を収容できません。
深さ 5 の決定木の葉の数の最大値は 2^5 = 32 です。
24 ≦ 32 であるため深さ 5 の決定木には、 24 個の葉を収容可能です。
以上から、決定木 T の葉の深さは最低でも 5 である必要があります。
24 ≦ 16 ではないため深さ 4 の決定木では、 24 個の葉を収容できません。
深さ 5 の決定木の葉の数の最大値は 2^5 = 32 です。
24 ≦ 32 であるため深さ 5 の決定木には、 24 個の葉を収容可能です。
以上から、決定木 T の葉の深さは最低でも 5 である必要があります。
512デフォルトの名無しさん
2017/07/10(月) 18:52:50.18ID:BQfNYjN8 a_1, a_2, …, a_n を比較によってソートするあるアルゴリズムがあるとします。
そのアルゴリズムには対応する決定木 T が存在します。
深さ k の決定木の葉の数の最大値は明らかに 2^k です。(深さ k の完全2分木の場合)
a_1, a_2, …, a_n の大小関係の可能性は、以下の n! 通りあります。
a_1 < a_2 < … a_(n-1) < a_n
a_1 < a_2 < … a_n < a_(n-1)
…
a_n < a_(n-1) < … < a_1
そのすべての可能性に対してそのアルゴリズムはソートしなければならないので、
T の葉の数はちょうど n! であるはずです。
n! 個の葉を収容するためには、 T の深さを k とすると、
n! ≦ 2^k
が成り立たなければなりません。
よって、
lg(n!) ≦ lg(2^k) = k*lg(2) = k
が成り立たなければなりません。
そのアルゴリズムには対応する決定木 T が存在します。
深さ k の決定木の葉の数の最大値は明らかに 2^k です。(深さ k の完全2分木の場合)
a_1, a_2, …, a_n の大小関係の可能性は、以下の n! 通りあります。
a_1 < a_2 < … a_(n-1) < a_n
a_1 < a_2 < … a_n < a_(n-1)
…
a_n < a_(n-1) < … < a_1
そのすべての可能性に対してそのアルゴリズムはソートしなければならないので、
T の葉の数はちょうど n! であるはずです。
n! 個の葉を収容するためには、 T の深さを k とすると、
n! ≦ 2^k
が成り立たなければなりません。
よって、
lg(n!) ≦ lg(2^k) = k*lg(2) = k
が成り立たなければなりません。
513デフォルトの名無しさん
2017/07/10(月) 18:53:05.24ID:BQfNYjN8 lg(n!) = Θ(n*lg(n)) ですので、
Θ(n*lg(n)) ≦ k
が成り立ちます。
以上より、比較によってソートする最高速度のアルゴリズムでも、その決定木の深さは
少なくとも Θ(n*lg(n)) の深さがあります。
よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Θ(n*lg(n)) 回の比較が必要です。
Θ(n*lg(n)) ≦ k
が成り立ちます。
以上より、比較によってソートする最高速度のアルゴリズムでも、その決定木の深さは
少なくとも Θ(n*lg(n)) の深さがあります。
よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Θ(n*lg(n)) 回の比較が必要です。
514デフォルトの名無しさん
2017/07/10(月) 18:57:08.74ID:BQfNYjN8 訂正します:
lg(n!) = Ω(n*lg(n)) ですので、
Ω(n*lg(n)) ≦ k
が成り立ちます。
以上より、比較によってソートする最高速度のアルゴリズムでも、その決定木の深さは
少なくとも Ω(n*lg(n)) の深さがあります。
よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Ω(n*lg(n)) 回の比較が必要です。
lg(n!) = Ω(n*lg(n)) ですので、
Ω(n*lg(n)) ≦ k
が成り立ちます。
以上より、比較によってソートする最高速度のアルゴリズムでも、その決定木の深さは
少なくとも Ω(n*lg(n)) の深さがあります。
よって、その最高速度のアルゴリズムにとって最悪のデータ a_1, a_2, …, a_n を与えた場合、
少なくとも Ω(n*lg(n)) 回の比較が必要です。
515デフォルトの名無しさん
2017/07/10(月) 19:00:21.22ID:BQfNYjN8 なんか非常に大雑把な議論で Ω(n*lg(n)) という評価を得ているのに、
ヒープソートやマージソートのような O(n*lg(n)) のアルゴリズムが存在する
というところが不思議ですね。
ヒープソートやマージソートのような O(n*lg(n)) のアルゴリズムが存在する
というところが不思議ですね。
516デフォルトの名無しさん
2017/07/10(月) 19:15:23.77ID:wVcu7osF この人DHAだろ
517デフォルトの名無しさん
2017/07/10(月) 19:19:20.07ID:TpSxkkBl マグロの目?
518デフォルトの名無しさん
2017/07/10(月) 20:08:22.69ID:BQfNYjN8 アマゾンってダメダメですね。
【全品10%ポイント還元】マンガ・雑誌など本全品がお買い得
7/10 18:00〜7/11 23:59のプライムデー限定で全ての商品が10%ポイント還元中! >今すぐチェック
ヤフーショッピングとかで買えば実質30%引きくらいで買えるときもありますよね。
【全品10%ポイント還元】マンガ・雑誌など本全品がお買い得
7/10 18:00〜7/11 23:59のプライムデー限定で全ての商品が10%ポイント還元中! >今すぐチェック
ヤフーショッピングとかで買えば実質30%引きくらいで買えるときもありますよね。
519デフォルトの名無しさん
2017/07/10(月) 20:27:20.96ID:Di3Z2y8c >>516
ADHD?唯の馬鹿のアスペだと思う
ADHD?唯の馬鹿のアスペだと思う
520デフォルトの名無しさん
2017/07/11(火) 02:13:19.92ID:kTultHtx URLとかファイルパスとかコマンドとかをクッソ汚い文字列として
文字列処理で結合したり変数埋込みしたり正規表現使ったり
するコードとか、
エンコードされたり、エスケープ混じりのぐちゃぐちゃな文字列とか
とにかく汚くて長くて改行されてない文字列処理にも
データ構造やデザインパターンて適用できるの?
またはデータ構造やデザインパターンでソースをきれいに
整形できたりする?
文字列処理で結合したり変数埋込みしたり正規表現使ったり
するコードとか、
エンコードされたり、エスケープ混じりのぐちゃぐちゃな文字列とか
とにかく汚くて長くて改行されてない文字列処理にも
データ構造やデザインパターンて適用できるの?
またはデータ構造やデザインパターンでソースをきれいに
整形できたりする?
521デフォルトの名無しさん
2017/07/11(火) 10:51:23.09ID:GFhKOZAg 文字列処理っつってもいろいろあんだろ
どういう処理がしたいのかもわからんのにデザパタ適用もクソもあるかよ
どういう処理がしたいのかもわからんのにデザパタ適用もクソもあるかよ
522デフォルトの名無しさん
2017/07/11(火) 11:15:39.29ID:oEYLH8ZM Stringというデータ構造
523デフォルトの名無しさん
2017/07/11(火) 19:00:22.76ID:XmA15/s4 クッソ汚いもぐちゃぐちゃも個人の感想だから伝わらない
524デフォルトの名無しさん
2017/07/11(火) 21:26:37.33ID:rybeffro おう、松坂!
次スレな
俺は賢い、ディープラーニング教えて [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1498636978/l50
次スレな
俺は賢い、ディープラーニング教えて [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1498636978/l50
525デフォルトの名無しさん
2017/07/12(水) 14:44:43.08ID:sNyzU/qO 著者名NGに入れて連鎖あぽーんですっきりするな
526デフォルトの名無しさん
2017/07/12(水) 18:59:57.68ID:BkmceXb8 繁野麻衣子著『ネットワーク最適化とアルゴリズム』を読んでいます。
http://imgur.com/RI1TvXi.jpg
部分グラフの定義がおかしいです。
こんな基礎的なところで間違いを犯しているというのが信じられません。
http://imgur.com/RI1TvXi.jpg
部分グラフの定義がおかしいです。
こんな基礎的なところで間違いを犯しているというのが信じられません。
527デフォルトの名無しさん
2017/07/12(水) 19:25:04.11ID:BkmceXb8 あ、グラフになっていないと部分グラフとは言わないからOKなんですね。
でも分かりにくい表現ですね。
でも分かりにくい表現ですね。
528デフォルトの名無しさん
2017/07/12(水) 19:35:27.04ID:BkmceXb8 A' が空集合の場合はどうするんですかね?
529デフォルトの名無しさん
2017/07/12(水) 19:40:24.94ID:BkmceXb8 空写像って何ですか?
530デフォルトの名無しさん
2017/07/12(水) 19:50:43.67ID:sNyzU/qO 中学生?
531デフォルトの名無しさん
2017/07/13(木) 01:49:26.96ID:dTYbVLC2 ただの基地外だろう。
532デフォルトの名無しさん
2017/07/16(日) 19:13:54.39ID:jm8THNZB D40
http://imgur.com/i8hq9mG.jpg
↑この問題に対する解答ですが、
https://github.com/for-2ch/for-2ch/blob/master/Chapter_D.ipynb
の解答であっていますか?
2週間くらい前に書いたものですが、理解ができません。
仮に、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなる
パスたちがすべて辺 AB を含まないと仮定すると、 A から B への T の辺のみ
からなるパスで辺 AB を含まないようなものが存在することになる。
↑ここが理解できません。
http://imgur.com/i8hq9mG.jpg
↑この問題に対する解答ですが、
https://github.com/for-2ch/for-2ch/blob/master/Chapter_D.ipynb
の解答であっていますか?
2週間くらい前に書いたものですが、理解ができません。
仮に、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなる
パスたちがすべて辺 AB を含まないと仮定すると、 A から B への T の辺のみ
からなるパスで辺 AB を含まないようなものが存在することになる。
↑ここが理解できません。
533デフォルトの名無しさん
2017/07/16(日) 19:22:48.15ID:jm8THNZB あー理解できました。
ここは分かりやすく書き直したほうがいいですね。
ここは分かりやすく書き直したほうがいいですね。
534デフォルトの名無しさん
2017/07/16(日) 19:35:47.89ID:jm8THNZB 仮に、 T に含まれないような C の辺たちの両端点を結ぶ T の辺のみからなる
パスたちがすべて辺 AB を含まないと仮定します。
A_1 := A
A_n ;= B
とします。
サイクル C が以下であるとします:
A_1 → … → A_n → A_1
もしも、
辺 A_i → A_(i+1) が T に含まれないときには、
サイクル C の A_i → A_(i+1) の部分を A_i から A_(i+1) への(一意的な) T の辺のみから
なるパスに置き換えます。
すると、 A から B への T の辺のみからなるパスで辺 AB を含まないようなパスが構成できます。
これは A から B への T の辺のみからなるパスが一意的であるという木の性質に反します。
(ほかに A → B という T の辺のみからなる長さ 1 のパスが存在することに注意。)
パスたちがすべて辺 AB を含まないと仮定します。
A_1 := A
A_n ;= B
とします。
サイクル C が以下であるとします:
A_1 → … → A_n → A_1
もしも、
辺 A_i → A_(i+1) が T に含まれないときには、
サイクル C の A_i → A_(i+1) の部分を A_i から A_(i+1) への(一意的な) T の辺のみから
なるパスに置き換えます。
すると、 A から B への T の辺のみからなるパスで辺 AB を含まないようなパスが構成できます。
これは A から B への T の辺のみからなるパスが一意的であるという木の性質に反します。
(ほかに A → B という T の辺のみからなる長さ 1 のパスが存在することに注意。)
535デフォルトの名無しさん
2017/07/16(日) 19:54:31.53ID:oSRVjDnX536デフォルトの名無しさん
2017/07/19(水) 22:52:51.73ID:W3gBCwo8 データ構造とアルゴリズムを勉強するときに、プログラム作成の言語は何がおすすめでしょうか?
なぜ、いまだにC++が幅を利かせているのでしょうか?
なぜ、いまだにC++が幅を利かせているのでしょうか?
>>536
C/C++が基本だから
C/C++が基本だから
538デフォルトの名無しさん
2017/07/20(木) 07:32:28.47ID:JPSYgWUy JAVAやC#はなぜ主流じゃないんですか?
539デフォルトの名無しさん
2017/07/20(木) 08:06:18.81ID:VwfBeboA 遅いから。
でも、JAVAはアルゴリズムの教科書でも使われていることあるよ。
でも、JAVAはアルゴリズムの教科書でも使われていることあるよ。
540デフォルトの名無しさん
2017/07/20(木) 13:39:20.43ID:+UhdLUtU Golangは爆速やで〜
541デフォルトの名無しさん
2017/07/21(金) 05:47:07.66ID:oNTvtqyo Foo foo; と
Foo foo = new Foo();
は何が違うの?
あるクラス内で
private String field; のとき
public String method(String field){
return field;
}
と、
public String method(){
return this.field;
}
は何が違うの?
Foo foo = new Foo();
は何が違うの?
あるクラス内で
private String field; のとき
public String method(String field){
return field;
}
と、
public String method(){
return this.field;
}
は何が違うの?
543デフォルトの名無しさん
2017/07/21(金) 08:35:20.75ID:gbxtSnvl 命名規約的にJavaだろ
544デフォルトの名無しさん
2017/07/21(金) 10:31:24.26ID:AAWIl0Xa >>541
Foo foo; // 参照型変数fooを宣言
Foo foo = new Foo(); // さらに、メモリのヒープ領域ってとこにFoo型のインスタンスを作成し、その場所を代入
コンストラクタとかでよく見ることになると思うけど
Foo(String name) {
this.name = name;
}
これは想像どおりの挙動をしてくれる
引数とフィールドに同じ名前があったとき
フィールドのものを使いたいときあえてthisつける
Foo() {
String name = "bar";
this.name = name;
}
みたいなときも同じ
名前が被ったとき、フィールド側の変数を選ぶのがthis
Foo foo; // 参照型変数fooを宣言
Foo foo = new Foo(); // さらに、メモリのヒープ領域ってとこにFoo型のインスタンスを作成し、その場所を代入
コンストラクタとかでよく見ることになると思うけど
Foo(String name) {
this.name = name;
}
これは想像どおりの挙動をしてくれる
引数とフィールドに同じ名前があったとき
フィールドのものを使いたいときあえてthisつける
Foo() {
String name = "bar";
this.name = name;
}
みたいなときも同じ
名前が被ったとき、フィールド側の変数を選ぶのがthis
545デフォルトの名無しさん
2017/07/21(金) 19:57:34.85ID:+Ec9GEX5 >>539
著者はズレてるよな。
著者はズレてるよな。
546デフォルトの名無しさん
2017/07/21(金) 20:06:52.80ID:+Ec9GEX5 データ構造、アルゴリズムはCで勉強して、デザパタはC++で勉強するのがいいな。
547デフォルトの名無しさん
2017/07/22(土) 13:37:57.58ID:S+qzOSdo 本当はGoやRuby Python JavaScript Kotlinあたりやりたいのに、
本格的なプログラミングとか設計勉強しようとすると
必ずJava, C, C++ あたりで解説されるから覚えざるを得ないというジレンマ。
本格的なプログラミングとか設計勉強しようとすると
必ずJava, C, C++ あたりで解説されるから覚えざるを得ないというジレンマ。
548デフォルトの名無しさん
2017/07/22(土) 13:46:49.67ID:0HjhMGYw おらLispやれLispゥ!
549デフォルトの名無しさん
2017/07/22(土) 18:31:48.46ID:Yr9CVNZl550デフォルトの名無しさん
2017/07/22(土) 19:09:29.77ID:3d/mUXex Javaだと問題があるのでしょうか?
セジウィックの本の第4版がJavaですが。
セジウィックの本の第4版がJavaですが。
551デフォルトの名無しさん
2017/07/22(土) 19:10:22.08ID:fXxiASxC >>547
GoやRuby Python JavaScript Kotlinあたりに入門ちゃんと済ませて、これから本格的なプログラミングとか設計を勉強していくぞって人なら
具体例の説明に使われる程度のJavaやCなんて、無勉でもある程度は読めるでしょ
GoやRuby Python JavaScript Kotlinあたりに入門ちゃんと済ませて、これから本格的なプログラミングとか設計を勉強していくぞって人なら
具体例の説明に使われる程度のJavaやCなんて、無勉でもある程度は読めるでしょ
552デフォルトの名無しさん
2017/07/22(土) 19:12:56.74ID:3d/mUXex 例えば、Pythonだとソートとかハッシュとかリストとかが用意されていますが、
データ構造を学ぶ上では高級すぎるのではないでしょうか?
データ構造を学ぶ上では高級すぎるのではないでしょうか?
553デフォルトの名無しさん
2017/07/22(土) 19:21:52.44ID:fJRG67nz Sedgwick のアルゴリズムの教科書は、C++版やJava版があるよね。
C++版はちょっと古くて、C++11以降のモダンな書き方で改訂版を出してほしい。
自分は、アルゴリズムの教科書は疑似コードのみを示すの(MITのCormenの)で勉強したんだけど、失敗だったと思っている。
疑似コードを真似してそのまま実装してたから、一文字変数あまりまえ、クラスや構造体を定義することはなく、何でもかんでも配列で済ませるというクセがついてしまった。
もうちょっと、オブジェクト指向とかを勉強してからにすればよかったのかも。
C++版はちょっと古くて、C++11以降のモダンな書き方で改訂版を出してほしい。
自分は、アルゴリズムの教科書は疑似コードのみを示すの(MITのCormenの)で勉強したんだけど、失敗だったと思っている。
疑似コードを真似してそのまま実装してたから、一文字変数あまりまえ、クラスや構造体を定義することはなく、何でもかんでも配列で済ませるというクセがついてしまった。
もうちょっと、オブジェクト指向とかを勉強してからにすればよかったのかも。
554デフォルトの名無しさん
2017/07/23(日) 11:49:40.37ID:cZonGhlD Javaとか連想配列使うだけでもいちいちnewとかキャストとか
鬱陶しい。
鬱陶しい。
555デフォルトの名無しさん
2017/07/23(日) 14:58:46.77ID:CNTwKpOF アルゴリズムは抽象的で、言語仕様とは切り離されたものであるべきなのだ。
そうは言っても手続き型を意識したものになりがちで、これを関数型に書き直せと言われても一目難しいものがままある
そうは言っても手続き型を意識したものになりがちで、これを関数型に書き直せと言われても一目難しいものがままある
556デフォルトの名無しさん
2017/07/23(日) 15:44:19.76ID:G5QCCj7S アルゴリズムイントロダクションを読んでいます。
http://imgur.com/xbuAPtJ.jpg
↑は、 ω 記法についてです。
「if the limit exists」
と書かれていますが、なぜこんなことを書いているのでしょうか?
意味不明です。
http://imgur.com/xbuAPtJ.jpg
↑は、 ω 記法についてです。
「if the limit exists」
と書かれていますが、なぜこんなことを書いているのでしょうか?
意味不明です。
557デフォルトの名無しさん
2017/07/23(日) 15:46:31.20ID:G5QCCj7S g(n) が漸近的に正であるような関数であれば、
f(n) = ω(g(n))
⇔
lim f(n) / g(n) = ∞
ではないでしょうか?
「if the limit exists」などと書いてある理由が分かりません。
f(n) = ω(g(n))
⇔
lim f(n) / g(n) = ∞
ではないでしょうか?
「if the limit exists」などと書いてある理由が分かりません。
558デフォルトの名無しさん
2017/07/23(日) 15:51:14.63ID:G5QCCj7S アルゴリズムイントロダクションって結構いい加減ですよね。
やっぱりクヌースの本を読んだ方がいいのかもしれませんね。
やっぱりクヌースの本を読んだ方がいいのかもしれませんね。
559デフォルトの名無しさん
2017/07/23(日) 15:54:26.92ID:G5QCCj7S 漸近的に正である関数
漸近的に非負である関数
について説明がありますが、
なぜ、漸近的に正である関数だけを考えないのでしょうか?
漸近的に非負である関数などこの本で登場する機会はあるのでしょうか?
漸近的に非負である関数
について説明がありますが、
なぜ、漸近的に正である関数だけを考えないのでしょうか?
漸近的に非負である関数などこの本で登場する機会はあるのでしょうか?
560デフォルトの名無しさん
2017/07/23(日) 15:55:21.76ID:p86Uodim 松坂君の夏休みの糞日記
561デフォルトの名無しさん
2017/07/23(日) 16:03:03.18ID:I43wPtVl >>556-559
この基地外が人様を害さないことを祈るばかりだ。
この基地外が人様を害さないことを祈るばかりだ。
562デフォルトの名無しさん
2017/07/23(日) 16:05:04.45ID:7bD+iXj9563デフォルトの名無しさん
2017/07/23(日) 16:09:19.74ID:cZonGhlD 機械のパフォーマンスを追求するあまりに
人間時間のパフォーマンスを際限なく犠牲にする池沼
人間時間のパフォーマンスを際限なく犠牲にする池沼
564デフォルトの名無しさん
2017/07/23(日) 18:48:09.61ID:wW+3pobQ >>563
それはお前みたいな業務プログラマの視点
それはお前みたいな業務プログラマの視点
565デフォルトの名無しさん
2017/07/23(日) 19:06:54.73ID:cZonGhlD566デフォルトの名無しさん
2017/07/23(日) 20:44:29.00ID:Js688EZT >Javaとか連想配列使うだけでもいちいちnewとかキャストとか
>鬱陶しい。
笑
>鬱陶しい。
笑
567デフォルトの名無しさん
2017/07/23(日) 20:46:56.02ID:LRxsFVvF >>565
なんでそんなに必死なの?
なんでそんなに必死なの?
568デフォルトの名無しさん
2017/07/23(日) 21:10:16.48ID:7eA3s3Ch >>562
Youがライブラリ作ってもいいんだぞ
Youがライブラリ作ってもいいんだぞ
569デフォルトの名無しさん
2017/07/23(日) 23:45:48.25ID:G5QCCj7S アルゴリズムイントロダクションを読んでいます。
「関数 n^(1 + sin(n)) の指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとる」
などと書かれていますが、明らかに間違っていますよね。
sin(n) = 1/sqrt(2) となるような自然数 n は存在しません。
何を考えているのでしょうか?
「関数 n^(1 + sin(n)) の指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとる」
などと書かれていますが、明らかに間違っていますよね。
sin(n) = 1/sqrt(2) となるような自然数 n は存在しません。
何を考えているのでしょうか?
570デフォルトの名無しさん
2017/07/23(日) 23:54:11.92ID:G5QCCj7S n と書いておきながら n が R を動くと仮定しているとかそんなことはないですよね?
571デフォルトの名無しさん
2017/07/24(月) 00:08:11.63ID:1mGhcU0l 原文なの? IT関係の翻訳は誤訳だらけだよ。
572デフォルトの名無しさん
2017/07/24(月) 00:10:01.69ID:dw4Kx5PQ オリジナルのほうにも、
p.52
the value of the exponent in n^(1 + sin(n)) oscillates between 0 and 2, taking on all values in between
と書いてあります。
p.52
the value of the exponent in n^(1 + sin(n)) oscillates between 0 and 2, taking on all values in between
と書いてあります。
573デフォルトの名無しさん
2017/07/24(月) 00:21:28.79ID:BT4s6Lxv >557
0<=c g(n) < f(n)
って書いてあるのだから、(0 < c g(n) でなく、0 <= c g(n) であることに注意)
g(n) = 0, if n > 3
1, if n <= 3
とかなら、
f(n)/g(n) の極限は存在しないよ。
だから、もし極限が存在すれば、という限定をつけたのだと思うよ。
0<=c g(n) < f(n)
って書いてあるのだから、(0 < c g(n) でなく、0 <= c g(n) であることに注意)
g(n) = 0, if n > 3
1, if n <= 3
とかなら、
f(n)/g(n) の極限は存在しないよ。
だから、もし極限が存在すれば、という限定をつけたのだと思うよ。
574デフォルトの名無しさん
2017/07/24(月) 00:25:53.48ID:dw4Kx5PQ >>573
それだと、
極限が存在するかしないか以前に、
f(n) / g(n) は n ≦ 3 に対してしか定義されませんよね。
lim f(n) / g(n) と書いた以上は
∃n0 s.t. n ≧ n0 ⇒ g(n) ≠ 0
でないといけないと思います。
それだと、
極限が存在するかしないか以前に、
f(n) / g(n) は n ≦ 3 に対してしか定義されませんよね。
lim f(n) / g(n) と書いた以上は
∃n0 s.t. n ≧ n0 ⇒ g(n) ≠ 0
でないといけないと思います。
575デフォルトの名無しさん
2017/07/24(月) 00:27:22.94ID:dw4Kx5PQ たとえば、
関数 h(n) の定義域が {0, 1, 2, 3} のときに、
lim h(n) などそもそも考えられないわけです。
関数 h(n) の定義域が {0, 1, 2, 3} のときに、
lim h(n) などそもそも考えられないわけです。
576デフォルトの名無しさん
2017/07/24(月) 00:31:02.81ID:dw4Kx5PQ577デフォルトの名無しさん
2017/07/24(月) 00:32:17.21ID:dw4Kx5PQ このあたりのところを4人の著者のうち誰が書いたのか知りませんが、
非常に出来が悪いですね。
世界標準とはとてもいえないと思います。
非常に出来が悪いですね。
世界標準とはとてもいえないと思います。
578デフォルトの名無しさん
2017/07/24(月) 00:33:52.43ID:1mGhcU0l 書いてあるとおりにしか取れない。キミの解釈がむしろ分らない。
the value of the exponent って(1 + sin(n)) だよな。それは between 0 and 2で、taking on all values in betweenだよな。
nが自然数なのかは知らんけど、sin(n) = 1/sqrt(2) という解釈はどこから?
the value of the exponent って(1 + sin(n)) だよな。それは between 0 and 2で、taking on all values in betweenだよな。
nが自然数なのかは知らんけど、sin(n) = 1/sqrt(2) という解釈はどこから?
579デフォルトの名無しさん
2017/07/24(月) 00:36:55.54ID:dw4Kx5PQ 「if the limit exists」と書いてある理由について考えられる唯一の可能性があります。
それは以下の可能性です。
f(n) = ω(g(n)) の定義では、 n は N を動くと考えている。
一方、
lim f(n) / g(n) = ∞
という式の n は R を動くと考えている。
それは以下の可能性です。
f(n) = ω(g(n)) の定義では、 n は N を動くと考えている。
一方、
lim f(n) / g(n) = ∞
という式の n は R を動くと考えている。
580デフォルトの名無しさん
2017/07/24(月) 00:41:44.60ID:dw4Kx5PQ >>578
例としてそのような値を考えたということです。
0 < 1 + 1/sqrt(2) < 2
ですが、
1 + sin(n) = 1 + 1/sqrt(2) となるような n ∈ N は明らかに存在しません。
1 + sin(n) = 0
1 + sin(n) = 2
となるような n ∈ N も明らかに存在しませんが、 in between というのが
0 と 2 を含まない可能性を考えて、↑のような例にしました。
例としてそのような値を考えたということです。
0 < 1 + 1/sqrt(2) < 2
ですが、
1 + sin(n) = 1 + 1/sqrt(2) となるような n ∈ N は明らかに存在しません。
1 + sin(n) = 0
1 + sin(n) = 2
となるような n ∈ N も明らかに存在しませんが、 in between というのが
0 と 2 を含まない可能性を考えて、↑のような例にしました。
581デフォルトの名無しさん
2017/07/24(月) 00:51:03.16ID:dw4Kx5PQ やっぱりクヌースの本の完成度は群を抜いていますね。
582デフォルトの名無しさん
2017/07/24(月) 01:21:19.59ID:1mGhcU0l > the value of the exponent in n^(1 + sin(n)) oscillates between 0 and 2, taking on all values in between
書いてあるそのままの意味で、これは数学的に真で、
1 + sin(n) = 1 + 1/sqrt(2) を満たす自然数nが存在するなんてどこにも書いてないし、言ってない。
直前にnは自然数と定義してるならそれも引用してもらわないと判断のしようがない。おそらくnumberの略だろう。変数n。
書いてあるそのままの意味で、これは数学的に真で、
1 + sin(n) = 1 + 1/sqrt(2) を満たす自然数nが存在するなんてどこにも書いてないし、言ってない。
直前にnは自然数と定義してるならそれも引用してもらわないと判断のしようがない。おそらくnumberの略だろう。変数n。
583デフォルトの名無しさん
2017/07/24(月) 01:46:14.40ID:1mGhcU0l もっと本質的な勘違いか。
AならばBはA=Bではないし、AならばBは、BならばAでもないぞ。
言ってるのはthe value, taking on all values in between だけだからな。
AならばBはA=Bではないし、AならばBは、BならばAでもないぞ。
言ってるのはthe value, taking on all values in between だけだからな。
584デフォルトの名無しさん
2017/07/24(月) 03:48:35.95ID:qy6/mYOI >>582
n については何も記述がありません。
そもそも、普通なら関数について書くときには、定義域を書くはずですが、
書いてありません。
習慣として、 n と書けば自然数の集合を動く変数ということになりますので、
そう解釈するのが妥当です。
1 + sin(n) が 0 と 2 の間のすべての値をとるのであれば、当然、
0 < 1 + 1/sqrt(2) < 2 ですので、値 1 + 1/sqrt(2) もとります。
n については何も記述がありません。
そもそも、普通なら関数について書くときには、定義域を書くはずですが、
書いてありません。
習慣として、 n と書けば自然数の集合を動く変数ということになりますので、
そう解釈するのが妥当です。
1 + sin(n) が 0 と 2 の間のすべての値をとるのであれば、当然、
0 < 1 + 1/sqrt(2) < 2 ですので、値 1 + 1/sqrt(2) もとります。
585デフォルトの名無しさん
2017/07/24(月) 03:58:43.71ID:qy6/mYOI 念のため、公式ページの正誤表を見てみましたが、書いてありませんでした。
かなり売れている本だと思いますが、飛ばし読みしている人ばかりなのでしょうか?
かなり売れている本だと思いますが、飛ばし読みしている人ばかりなのでしょうか?
586デフォルトの名無しさん
2017/07/24(月) 04:32:03.26ID:1mGhcU0l 数学の世界ならそうだろうが、数学本じゃなくてプログラミングの本なんだろ?
sin(n) と書いてあればプログラマはたいてい n をfloat型かdouble型の変数だと解釈する。
= 一つとっても大抵のプログラミング言語は等式ではなく、代入演算子と定義している。
分野が違うのだから論理的におかしいと思ったらまずは定義を疑う。数学だってブール代数で1+1=1って書く場合もあるだろう。
今のプログラミング言語は+や-の演算子すら再定義できるのだ。
仮に自然数だとしても、次に本質的な論理問題。>>583 これ。
> 0 と 2 の間のすべての値をとる
これも怪しい。take on All Value なので、on 〜の上にという意味で、日本語にするならば結果がその範囲内に収まるだろう。
All values in between take the valueではないのだ。AはBのとき、BはAか?もちろん偽。
つまり1 + sin(n) = 1 + 1/sqrt(2)を保証する記述ではない。
sin(n) と書いてあればプログラマはたいてい n をfloat型かdouble型の変数だと解釈する。
= 一つとっても大抵のプログラミング言語は等式ではなく、代入演算子と定義している。
分野が違うのだから論理的におかしいと思ったらまずは定義を疑う。数学だってブール代数で1+1=1って書く場合もあるだろう。
今のプログラミング言語は+や-の演算子すら再定義できるのだ。
仮に自然数だとしても、次に本質的な論理問題。>>583 これ。
> 0 と 2 の間のすべての値をとる
これも怪しい。take on All Value なので、on 〜の上にという意味で、日本語にするならば結果がその範囲内に収まるだろう。
All values in between take the valueではないのだ。AはBのとき、BはAか?もちろん偽。
つまり1 + sin(n) = 1 + 1/sqrt(2)を保証する記述ではない。
587デフォルトの名無しさん
2017/07/24(月) 09:36:19.03ID:yBhCO73J 馬鹿のアスペにかまうな
588デフォルトの名無しさん
2017/07/24(月) 15:13:09.34ID:BdqEvISL >>569
>「関数 n^(1 + sin(n)) の指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとる」
指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとるんじゃね?
>「関数 n^(1 + sin(n)) の指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとる」
指数部の値は 0 と 2 の間で振動し、その中間にあるすべての値をとるんじゃね?
589デフォルトの名無しさん
2017/07/25(火) 00:02:25.50ID:6PSqyxlH nが自然数か何かも書いてないのに勝手に自然数だと勘違いして発狂するとか何考えてんでしょうね
590デフォルトの名無しさん
2017/07/25(火) 08:35:49.61ID:drKlbZNX sin(n) = 1/sqrt(2) のとき n = 約0.785。 degだと45度。
って、そういう話じゃなくて?
って、そういう話じゃなくて?
591デフォルトの名無しさん
2017/07/25(火) 16:29:58.97ID:GyEh+ENJ nが自然数でも問題ない
592デフォルトの名無しさん
2017/07/25(火) 16:30:50.54ID:GyEh+ENJ そもそも指数部(1 + sin(n))の話しかしてないんだから
593デフォルトの名無しさん
2017/07/26(水) 01:18:42.44ID:lXGGezLP え?
594デフォルトの名無しさん
2017/07/26(水) 09:54:26.90ID:xcmFWevw お
595デフォルトの名無しさん
2017/07/28(金) 14:53:29.74ID:+gMyuDZP 凄いことにきずいたぜ!
「ポリモーフィズム」と「ラッパー」は反対の関係にあるんだ。
これによって「メソッド名」と「中身」が 多対多の関係にできるってことだぜ。
「ポリモーフィズム」と「ラッパー」は反対の関係にあるんだ。
これによって「メソッド名」と「中身」が 多対多の関係にできるってことだぜ。
596デフォルトの名無しさん
2017/07/29(土) 09:28:33.20ID:eHtT0zBv ライブラリってログを吐いてもいいの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★5 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 貧民アニオタ向けdアニメ、値上げへ [175344491]
- 【高市変質者】 お尻を出している 小太りTシャツの自転車乗りが発生 😱 [485983549]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 高市早苗ショック直撃のホテルホテル業界 次のホ◯ショックは何だ? [695089791]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
