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

レス数が950を超えています。1000を超えると書き込みができなくなります。
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
853デフォルトの名無しさん
垢版 |
2018/07/23(月) 11:01:38.63ID:eU1p7hr8
>>842
自己紹介ですね
2018/07/23(月) 12:24:24.98ID:jaGQY9G3
>>851
> 要件がシンプルなら自作するのは効率が良いかもしれないね
それは正しくない。要件はシンプルでも実装が大変なことがある。
そもそも「ライブラリの一機能の独自実装」などという要件は
実際には発生しない。これらは単に道具

要件を実装するのに、道具を使うか使わないかの問題
シンプルな要件でも、道具は使ったほうが効率は良いよ

もちろん道具を使えない人であれば、道具を使えるようになるまで時間が
かかるけど、それは素人がプロに速度でかなわないという人間の問題にすぎない
そう道具を使えないなら素人なんだよ。
855デフォルトの名無しさん
垢版 |
2018/07/23(月) 12:29:27.63ID:aoV6LMU9
>>850
ヒント:バカは皆がオンリーワン
2018/07/23(月) 12:36:13.41ID:jaGQY9G3
>>850
同じことは言ってないな

>>844はよくわからないのはライブラリのせいだ
自分で作れば、そのライブラリよりもわかりやすくなるはずだ
って机上の空論を言ってるだけ
2018/07/23(月) 13:54:17.34ID:wSAPNw7p
PGの愚痴
2018/07/23(月) 15:02:52.51ID:EWSlu15m
りんごをむくのにピーラーを使うのもいいが、一度ナイフで剥くのを試すのも重要だし、かじってみるのもいい。
道具が解決する問題がなんなのか、体験することは、多くの人にとって有益だと思う(経験主義者)
2018/07/23(月) 15:32:18.18ID:1W7qAEKf
そこでピーラーを作るのは大変だとか見当違いの所に流れていくやつがいる。

ピーラー(ライブラリ)を使うか、ナイフを使うかだ

ライブラリ?中見たけどわけのわからないことをしてる
理解できない。ナイフのほうが単純だ。ナイフなら作れる。
なぜか作る話になってしまっている。
2018/07/23(月) 15:38:29.17ID:nk4BkCBO
例え話では本質から遠ざかるばかりよ
2018/07/23(月) 15:39:54.99ID:nk4BkCBO
例え話は物事を理解してなくてもそれらしく見せるから知ったか振りが捗りますなあ
2018/07/23(月) 15:41:15.55ID:nk4BkCBO
ワシも神エクセルとか言ってた
2018/07/24(火) 18:13:24.95ID:Ce588Hp1
全部やれ
864デフォルトの名無しさん
垢版 |
2018/07/24(火) 18:20:36.91ID:WBO96fmU
最後までやれ
2018/07/24(火) 20:40:39.40ID:6SRwrowy
例えがドラゴンボールではないからだろ
866デフォルトの名無しさん
垢版 |
2018/07/27(金) 22:10:24.05ID:jesqHVAc
MVC, DAO, O/Rマッピングの発展形として、
俺は「R/Rマッピング(リクエスト/リレーショナルマッピング)」を
提唱したい。
そもそもDB上のカラムと本当に対応付けたいのは画面上のname属性
なんだよなぁ。
オブジェクトを必ず介する必要はない。
(処理が込み入ってきたら定義してもいい程度。)
まず前提として、DBのカラム名とHTML上のname属性を
必ず同じキーにすることを前提とする。(HTML上に関係ない
キーがあっても問題はない。)
その前提の上でDBのカラム名一覧を先に取得しておき、
カラム名リストと、受信したname属性のキーをマッチングして、
マッチングした時にそのキーから取得した値をSQLに突っ込んで
クエリを行う。
こうすることによって、プログラミング言語処理の中で
具体的な「項目名」をほとんど登場させずに処理することができる。
自分でやったらすごく便利だった。
こうなるとそもそもモデルとかDAOとかいらなくね?
ってなって来たよ。
項目数がどんなに二十, 三十と並んでいようがダラダラと羅列しない。
特別な処理を入れたいときだけその項目のカラム名を使って
ifで分岐して日付変換とかをおこなう。
その特別な処理も日付,範囲系、選択肢系などパターンを押さえれば、
めちゃめちゃ簡素化できる。
2018/07/27(金) 22:35:03.11ID:d6sXPNYF
あ、はい、4行ぐらいしか読んでないけど、
そのリクエストに含まれる名前 = オブジェクトのフィールド名なんだから
あんたが言ってるリクエスト = オブジェクトってこと

あとはストレージをなんにするかの話。
ODBMS(オブジェクトデータベース)を使えばそのまま読み書きできる
だけど、なんやかんやでリレーショナルデータベースを使わないといかんから
O/Rマッピングが必要になる
2018/07/27(金) 22:38:45.06ID:d6sXPNYF
>>886
あとRailsでも勉強しようね
普通は画面のname属性 = データーベースのフィールド名になってるから
(もちろん必要なら対応してないものも作れるけど)
2018/07/27(金) 22:58:52.80ID:HpMLTKup
二層CRUDオモチャ
昔から誰もが一回は考えるアイデアだよ

画面起点だとどうしてもアプリケーションロジックの居場所がないから簡単に作れてもアプリとしての価値が無い
DB起点だとSQLにアプリケーションロジックを埋め込んんで最低限のアプリの体裁は保てるけど保守性が最悪で使い物にならない
という理由から廃れた

なので今はオブジェクト指向の言語でモデルを書いてモデルから画面やDBを生成して微調整しようってのがスタンダード
これなら労力をかけずに豊かな振る舞いを持つアプリケーションを作れるしロジックがモデルに集まるから保守性も高い
870デフォルトの名無しさん
垢版 |
2018/07/27(金) 23:43:33.59ID:jesqHVAc
>>869
モデルを作るとしても処理が複雑になる部分だけ
部分的でいいんじゃないか?
全ての要素に対して網羅的にモデルつくって
セッター/ゲッター定義して...ってのは肥大化して馬鹿げてる
気がするんだが。
なにせ機能を複製する時にこれらのずらずら並んだモデルオブジェクト名や
キーの名前をを置換しなけりゃならない。
ならない。
2018/07/27(金) 23:51:45.25ID:d6sXPNYF
> セッター/ゲッター定義して...ってのは肥大化して馬鹿げてる
それはJavaだけ
Javaが馬鹿げているだけ
2018/07/27(金) 23:52:00.90ID:d6sXPNYF
だからいい加減Railsとかを勉強しろと
2018/07/27(金) 23:55:06.84ID:h+bQHJad
.NET Coreにしとけ
874デフォルトの名無しさん
垢版 |
2018/07/28(土) 02:15:45.58ID:kGN2HSKI
>>859
さてリンゴをむくか、
ピーラーがないと剥けないから探すか、
あれ、どこにしまったかな?
この引き出しにもこの棚にもない。
道具だらけで見つからない。
店に買いに行こう、たくさんのピーラーが並
んでいてどれを選ぼうか?
ようやく買ってきて構築しているけど、
どうや刃が付け替え式で色々な刃が付け替えられる
ようだ。
刃を買い忘れたからまた買いに行くか…
はぁはぁ…すごい刃を買ったぞ!今構築中だ。
おや?この刃はリンゴを剥く用途には対応して
ないようだ。もう疲れたしこれ無理だろ。
ピーラーが無いから俺にはリンゴを剥くのは
無理だ。前は引き出しにあったからむけたけど
今はできなくなった。

一方、いつも愛用のナイフで剥いてるならそう
はならない。
いつもポッケに入れているからなくさないし、
最悪自作で調達できる。
使い慣れてるからピーラー使うやつと遜色ないスピードで剥けるし形も綺麗に剥ける。
2018/07/28(土) 02:38:56.80ID:Wq9fNSFf
Rails なんか、全自動!

DB の表の構造が定義された、メタテーブルを参照して、
表の列名なども自動的に取得する
2018/07/28(土) 03:14:15.05ID:AqK1vkX7
>>873
Windows 上で構築できますか?
2018/07/28(土) 07:06:05.64ID:rUA3L/4N
>>870
それでずらずら並んで嫌だというなら、おまえのやり方だと画面定義もずらずらならぶし、テーブル定義やSQLがずらずら並んで更にわけわからなくなるだろ
2018/07/28(土) 09:41:18.41ID:Z4XsBwkZ
>>876
できる
2018/08/11(土) 11:14:19.06ID:vW2Ha+vq
>>878
やりかたは?
2018/08/11(土) 11:16:30.51ID:CORkkjHt
>>879
住民税納めてる?
2018/08/11(土) 11:20:01.67ID:mZzpchFU
>>879
https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial
2018/08/11(土) 11:23:26.77ID:vW2Ha+vq
>>880
固定資産税なら5月に収めました
2018/08/11(土) 13:12:12.75ID:eIyvbe4d
>>882
固定資産もってるんだスゲー(笑)
884デフォルトの名無しさん
垢版 |
2018/08/16(木) 01:50:12.60ID:c6C4Pdqe
最も重要ななのはアルゴリズムとデータ構造
次にI/O
つぎに無名関数やハンドラ、イベント駆動
つぎに並列、非同期処理
その次は画像処理とか3Dとか
ディジタル信号処理またいな各ドメインの専門
技術。
オブジェクトやクラスなんてこれらを達成する
上での手段でしかない。
それ以上のオブジェクト指向の設計思想は
もはや宗教。
唯一絶対に正しいわけでもないし
概念を余計に複雑にするだけ。
SQLやHTML XMLやJavaScript シェルスクリプト
URLなんかが絡んでくるとグダグダに崩壊
するものばかり。
そして現代のアプリケーションはこれら無しで
作るのは無理だからオブジェクト指向の高度な
技法はほどんど不要。
885デフォルトの名無しさん
垢版 |
2018/08/16(木) 10:35:20.66ID:wiNukf+g
NoSQLω
2018/08/16(木) 14:12:13.61ID:sOMWRYDA
NoSQL db って、Redis以外はわりと滅びた感じ。
RDBでもスキーマレスなデータ扱えるようになったし、
トランザクションあった方が便利なことやっぱり多いし、
SQLってなんだかんだ言って表現力高いし。
887デフォルトの名無しさん
垢版 |
2018/08/16(木) 21:39:02.86ID:xTRm/dST
pythonスレにも書いたのですが、pandasのMultiIndexにしたデータのままで、データを追加したり、値を更新したり、csvに入出力する方法をご存知の方はいませんか?
2018/08/17(金) 05:33:12.57ID:kMdEBKXA
マルチ
2018/08/18(土) 16:47:45.36ID:Misswrnn
マルチインデックスだけに
2018/08/22(水) 13:56:25.55ID:Opme7aq9
>>886
その辺はクラウドに吸収されたよ
2018/08/22(水) 14:04:12.93ID:85QcXChJ
クラウドだけに雲散霧消
2018/08/26(日) 08:51:55.17ID:rDVjwTPV
クラウドってなんだっけ?
2018/08/26(日) 11:43:20.70ID:oFGqb4Dq
興味ないね
2018/08/26(日) 12:02:43.50ID:Ecv/l33V
雲の中にトレーラーがいっぱいあること
2018/08/29(水) 11:59:51.59ID:t35BnR1i
>>893
チリチリしてろ
2018/08/30(木) 11:36:30.01ID:jf9m7XuW
AOJ の「DPL_1_I: Knapsack Problem with Limitations II」が分からん。

個数制限付きナップサック問題の
・ある品物の重さと個数制限
・ナップサック容量
が極めて大きいバージョン。


例えば解法
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2856557#1
を見ると、品物の価値の総和が i であるときの最大容量を記録した動的計画法テーブルを作った後に貪欲法で答えを出してるんだが
・なぜこの方法で上手くいくのか
・前半の動的計画法で、品物の個数を min(m[i], MAX_V) としている (できる) 理由が分からない。


誰か知恵を貸してください。
僕としてはこの解法が理解できれば満足です。
2018/08/30(木) 16:30:03.75ID:OpvYfh8N
>>896
数学からやり直したほうがいい
2018/08/30(木) 16:38:34.35ID:AAPeDezt
>>897
どういう意味?
「このアルゴリズムを理解するのに必要な数学の分野」というものがあるならそれを参照するが、そんなものはない (挙げられないでしょ?)

俺個人の専門は物理で、「数学の勉強」というものも一応してきたが、このごく具体的な問の一解法を理解することと「数学の勉強」は関係がない

単純に論理的思考力を上げよ、と言っているなら会話になっていないのでこれ以上は結構
2018/08/30(木) 16:59:47.21ID:rxoSSaq5
論理的思考力を上げるために将棋をしなさい。数学など不要です。
900デフォルトの名無しさん
垢版 |
2018/08/30(木) 18:00:22.07ID:RB/Vojpj
うむ
2018/08/30(木) 18:13:22.55ID:OpvYfh8N
>>898
DPは数学的に求まるよ
2018/08/30(木) 18:43:47.20ID:nhWZJRvT
>>898
数学科の数学と物理科の数学とコンピュータの数学は違う(笑)
2018/08/30(木) 19:55:53.34ID:dq2VmAiX
>>901
最適性の証明のことを言ってるの?
いずれにせよこの問題に限った話じゃないよね?
別に動的計画法が上手くいく理由が分からないと言っているのではなく、>>896の解法が分からないのだが。



>>902
違わない
算術、代数、幾何、解析だ全て
2018/08/30(木) 19:59:32.89ID:rxoSSaq5
例えば、バブルソートには
数学の、えっと、幾何?の知識が必要だろ?
え?
905デフォルトの名無しさん
垢版 |
2018/08/30(木) 20:02:00.51ID:JJE0QqNc
フローチャートでも書けよバカ。
2018/08/30(木) 20:07:14.70ID:dq2VmAiX
>>905
無論書いたが分からん
2018/08/30(木) 20:55:16.95ID:LfSXnVaM
>>903
やったことないだろ(笑)
2018/08/30(木) 20:58:00.20ID:LfSXnVaM
単に頭が悪い見栄っ張り
2018/08/30(木) 21:05:25.02ID:fZXCQKMc
>>906
分からんと思っているだけでは進まない。

なにを目的にして、どのようなフローチャートを描いて、
その結果なにが理解できていて、なにがまだ理解できていないのか、
可能な限り事細かに洗い出して、自分の理解の最前線を特定してみるといい。

と言うことを、私は数学で学んだ。
2018/08/30(木) 21:18:12.57ID:51/MDOyO
数I?数II?
2018/08/30(木) 21:43:49.44ID:HM7SCTN2
>>909
だからそれは>>896の時点で書いてるんだが
関係ないことしか言えないならレス不要です


>>907
何を?
2018/08/31(金) 00:40:53.58ID:/Xr6ByPq
俺の周りで物理やってる人はとんでもなく数学ができる人ばかりなのに
2018/08/31(金) 00:57:19.27ID:1Yp+WIrl
まあゲームじゃない限り物理なんて使わないよね
本格的な物理系シミュレーションとかだと
専門家が担当するだろうし
2018/08/31(金) 01:02:18.59ID:avsEGe4h
この程度の問題で数学数学言ってるアホ多過ぎて呆れる

多分>>910みたいな感じで高校の算数基準で話してるんだろうな
2018/08/31(金) 01:09:41.75ID:6Alav1/S
そんなに言うのなら、具体的に数学のどの分野なのか
それが具体的に何と同じなのか言えって。
どうせ論理的思考力がーみたいな精神論しか言えないんだろ
2018/08/31(金) 07:21:05.29ID:wT3DulcX
数列、非線形解析学
はい言いました
論理的思考力が無いのはあなたですね
917デフォルトの名無しさん
垢版 |
2018/08/31(金) 07:23:04.73ID:KNbvu5CI
どうしてこうなった
2018/08/31(金) 09:04:32.63ID:csqJsH/K
>>916
では、数列、非線形解析学を利用した
アルゴリズムを答えてください
2018/08/31(金) 09:05:36.36ID:csqJsH/K
ちなみに、数列は高校数学である
2018/08/31(金) 11:52:41.02ID:5OSgw2nY
>>918
>>896
2018/08/31(金) 12:44:50.11ID:DXKxWv2O
>>920
数学の問題をコンピュータで解決するってのはわかる、
だが数学・物理特有の問題以外をコンピュータで解決するのに
数学はいらねーだろって話
2018/08/31(金) 14:32:18.54ID:5OSgw2nY
>>921
微分積分も理解せずにコンピュータに信号処理をやらせるの?
そういうレベルの質問
2018/08/31(金) 14:39:40.99ID:DXKxWv2O
信号処理なんて、誰がやっても同じなんだから
一度ライブラリ作って、他の人はそれ使うだけだろ・・・
2018/08/31(金) 16:28:19.03ID:5OSgw2nY
>>923
それじゃあ初音ミクは生まれないね
こういうやつが技術を停滞させる
2018/08/31(金) 18:49:37.43ID:DXKxWv2O
>>924
だからそういうのは専門家に任せたほうが良くね?

音声合成をやる人は、そういう専門家に任せて
他の人は便利なインターフェースを作るとかさ、
なんでも1人でやるもんじゃないよ?
2018/08/31(金) 19:18:52.92ID:5OSgw2nY
別にそういう原理を知りたくないんなら勉強しなくて良いんじゃない
表面的なものしか作りたくないなら勉強しないことをおすすめします
2018/08/31(金) 19:24:24.23ID:DXKxWv2O
>>926
だから作る層が違うって言ってんの
水道局で働いてる人全員が
工事技師じゃないんだよ
2018/08/31(金) 19:27:43.29ID:5OSgw2nY
>>927
つまり君はそういう層にはなるのを拒む側ってだけだ
2018/08/31(金) 20:05:55.05ID:OUCwI4mz
>>928
その理屈で言えば、君がそういう層になりたいだけでは?

残念だけど、自分がやりたいことと、他人がやってもらいたいこと
っていうのは同じじゃないんだよね

そして給料っていうのは、他人がやって欲しいことをやった対価として
もらえるものなので、いくら自分がすごいことができるって言ったからって
給料は高くならないんだよね。
2018/09/01(土) 00:41:52.18ID:GjC7kJfb
>>929
作りたいものがあるから勉強する、それだけ
931デフォルトの名無しさん
垢版 |
2018/09/01(土) 09:56:42.06ID:pu0WuyWZ
うむ
932デフォルトの名無しさん
垢版 |
2018/09/01(土) 10:48:54.59ID:iQmzKze8
自分一人で作るような小さいアプリとかなら、
全部を知っておかなければいけない、って思いたくなるのもわかる。

が、通常は数学の専門家でも無い人間を数学で信用する事は無いし、
プログラムの専門家でも無い人間をプログラムで信用する事は無い。

付け焼き刃は事故の元。
大きな仕事になればなるほど役割や責任が細分化される。
933デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:24:44.93ID:rDlJp/s7
ぼやっとして結局何を言いたいのか良くわからんが
何か良い事を言いってみたい必死さは伝わった
2018/09/01(土) 12:52:20.45ID:mPcVbgud
え?言いたいことがわからんの?
2018/09/01(土) 13:01:11.42ID:8oBLXasx
そりゃあ馬鹿の言ってることは分からんだろ
2018/09/01(土) 13:13:44.90ID:mPcVbgud
言ってることがわからんから、言ってるほうが馬鹿だと思ってるだけじゃないの?
俺に言わせれば、馬鹿だから言ってることがわからないんだと思うが?
2018/09/01(土) 13:42:02.18ID:8oBLXasx
俺に言わせれば世界はお前を中心に回ってないってこと
2018/09/01(土) 13:47:09.53ID:mPcVbgud
>>937
お前を中心に回ってるといいたいのかな?
2018/09/01(土) 14:37:08.16ID:8oBLXasx
>>938
>>936
2018/09/01(土) 14:47:05.92ID:mPcVbgud
>>939
俺のレスがどうした?
2018/09/04(火) 02:27:34.18ID:Tt3u8CpR
アルゴリズム辞典みたいなものを手元に置いときたいんだが、最も支持されてるのってどれ?


・網羅性が高い
・支持されている(売れている)
・日本語版がある
・コード例はあってもなくても良くて、あるとしたら C/C++ か擬似コードで
という条件で
テーマ別に「どれとどれとどれを持っとけばまず問題ない」という言い方でもありがたい
とにかく網羅性を重視してる
2018/09/04(火) 07:04:17.98ID:OlESf3Ok
英語は知らんけど、日本語なら
[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)
奥村 晴彦
http://amzn.asia/d/bAqY5Be
が網羅性は随一じゃないかな。
改訂だけど初版が1991年で、収録アルゴリズムは増えてないらしいので、
機械学習とかここ25年の新分野は当然入っていない。
2018/09/04(火) 07:32:26.75ID:/VBaeORw
機械学習の何をアルゴリズム辞典に入れるべきだというのか

Amazonレビューかよテメェは
2018/09/04(火) 07:36:36.34ID:5tN3iveh
>>942
この本はBoyer-Moore法が簡易版しか載っていないし、Aho-Corasick法も載ってないから弱い
2018/09/04(火) 08:37:54.35ID:HF+7qfHp
より網羅的な対案示してからでないと批判にならないよ。

共立のアルゴリズム辞典が現存すればこっちも挙げてたかもしれん。
BM法に関してはコード例は簡略版のみだが。

個別のアルゴリズムについてどこまで踏み込むかは、
辞典の物理的な性質上取捨があるのはしかたないでしょ。
946デフォルトの名無しさん
垢版 |
2018/09/04(火) 10:34:21.16ID:gEGTZvcA
>>943
+1
2018/09/04(火) 10:36:29.76ID:ROt4XEkp
名前がついていて解放も明らかになってるアルゴリズムに興味はない
そんなのいくらやっても新しいものは生み出されない
2018/09/04(火) 14:25:14.21ID:JAXadswE
>>947
先輩、かっけぇっす
949デフォルトの名無しさん
垢版 |
2018/09/11(火) 14:44:06.44ID:O54onciS
質問させてください。
マイコンからAD変換で入力したサイン波を配列に格納し、周波数を求めたいと思います。
ゼロクロスの位置を求めれば正確に周波数を求められそうですが、教えてください。
https://i.imgur.com/FC5XP0K.png
2018/09/11(火) 16:27:37.38ID:zEn+kcA0
質問が不完全だけど、そのためのアルゴリズムを教えてほしいということでよい?

前提として、各周期で確実に2回だけゼロクロスすると保証できるのなら、
前回の値を覚えておいて、今回との積が0以下になったらゼロクロス。

この保証がないのなら十分長く波形をとってFFTしてピークを探す。
951デフォルトの名無しさん
垢版 |
2018/09/11(火) 22:09:31.90ID:i7axZbyN
♀だったらセクロス教えてやる
952デフォルトの名無しさん
垢版 |
2018/09/11(火) 22:11:28.88ID:4O7I7zcY
え!?童貞なのにセクロスを!?
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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