X



データ構造,アルゴリズム,デザインパターン総合スレ 3©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん 転載ダメ©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
0851デフォルトの名無しさん
垢版 |
2018/07/23(月) 07:32:08.19ID:LtlhEJ9n
jQueryはブラウザの差異を吸収するからね
同等のもの作ろうとしたら大変だよ

自前のコードを実装するのが汎用ライブラリを使うよりも早いとするなら
自前のコードは汎用ライブラリよりも機能が少ないものになる

要件がシンプルなら自作するのは効率が良いかもしれないね

システムをユーザのニーズに合わせてたら要件が複雑になり自作するメリットが得られない
ユーザがシステムの都合を忖度するならうまくいく
開発者にとっては桃源郷

開発者の幸せか、ユーザの幸せか
ぼくらはその選択を迫られてるんだ
0852デフォルトの名無しさん
垢版 |
2018/07/23(月) 09:47:19.69ID:nk4BkCBO
役所が作る神エクセルなんてのはユーザがシステムの都合に合わせてる典型例じゃないか、自作コードに拘るのは神エクセルを作るのと変わらぬよ
0853デフォルトの名無しさん
垢版 |
2018/07/23(月) 11:01:38.63ID:eU1p7hr8
>>842
自己紹介ですね
0854デフォルトの名無しさん
垢版 |
2018/07/23(月) 12:24:24.98ID:jaGQY9G3
>>851
> 要件がシンプルなら自作するのは効率が良いかもしれないね
それは正しくない。要件はシンプルでも実装が大変なことがある。
そもそも「ライブラリの一機能の独自実装」などという要件は
実際には発生しない。これらは単に道具

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

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

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

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

ライブラリ?中見たけどわけのわからないことをしてる
理解できない。ナイフのほうが単純だ。ナイフなら作れる。
なぜか作る話になってしまっている。
0861デフォルトの名無しさん
垢版 |
2018/07/23(月) 15:39:54.99ID:nk4BkCBO
例え話は物事を理解してなくてもそれらしく見せるから知ったか振りが捗りますなあ
0864デフォルトの名無しさん
垢版 |
2018/07/24(火) 18:20:36.91ID:WBO96fmU
最後までやれ
0866デフォルトの名無しさん
垢版 |
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で分岐して日付変換とかをおこなう。
その特別な処理も日付,範囲系、選択肢系などパターンを押さえれば、
めちゃめちゃ簡素化できる。
0867デフォルトの名無しさん
垢版 |
2018/07/27(金) 22:35:03.11ID:d6sXPNYF
あ、はい、4行ぐらいしか読んでないけど、
そのリクエストに含まれる名前 = オブジェクトのフィールド名なんだから
あんたが言ってるリクエスト = オブジェクトってこと

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

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

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

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

DB の表の構造が定義された、メタテーブルを参照して、
表の列名なども自動的に取得する
0877デフォルトの名無しさん
垢版 |
2018/07/28(土) 07:06:05.64ID:rUA3L/4N
>>870
それでずらずら並んで嫌だというなら、おまえのやり方だと画面定義もずらずらならぶし、テーブル定義やSQLがずらずら並んで更にわけわからなくなるだろ
0884デフォルトの名無しさん
垢版 |
2018/08/16(木) 01:50:12.60ID:c6C4Pdqe
最も重要ななのはアルゴリズムとデータ構造
次にI/O
つぎに無名関数やハンドラ、イベント駆動
つぎに並列、非同期処理
その次は画像処理とか3Dとか
ディジタル信号処理またいな各ドメインの専門
技術。
オブジェクトやクラスなんてこれらを達成する
上での手段でしかない。
それ以上のオブジェクト指向の設計思想は
もはや宗教。
唯一絶対に正しいわけでもないし
概念を余計に複雑にするだけ。
SQLやHTML XMLやJavaScript シェルスクリプト
URLなんかが絡んでくるとグダグダに崩壊
するものばかり。
そして現代のアプリケーションはこれら無しで
作るのは無理だからオブジェクト指向の高度な
技法はほどんど不要。
0885デフォルトの名無しさん
垢版 |
2018/08/16(木) 10:35:20.66ID:wiNukf+g
NoSQLω
0886デフォルトの名無しさん
垢版 |
2018/08/16(木) 14:12:13.61ID:sOMWRYDA
NoSQL db って、Redis以外はわりと滅びた感じ。
RDBでもスキーマレスなデータ扱えるようになったし、
トランザクションあった方が便利なことやっぱり多いし、
SQLってなんだかんだ言って表現力高いし。
0887デフォルトの名無しさん
垢版 |
2018/08/16(木) 21:39:02.86ID:xTRm/dST
pythonスレにも書いたのですが、pandasのMultiIndexにしたデータのままで、データを追加したり、値を更新したり、csvに入出力する方法をご存知の方はいませんか?
0896デフォルトの名無しさん
垢版 |
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) としている (できる) 理由が分からない。


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

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

単純に論理的思考力を上げよ、と言っているなら会話になっていないのでこれ以上は結構
0900デフォルトの名無しさん
垢版 |
2018/08/30(木) 18:00:22.07ID:RB/Vojpj
うむ
0903デフォルトの名無しさん
垢版 |
2018/08/30(木) 19:55:53.34ID:dq2VmAiX
>>901
最適性の証明のことを言ってるの?
いずれにせよこの問題に限った話じゃないよね?
別に動的計画法が上手くいく理由が分からないと言っているのではなく、>>896の解法が分からないのだが。



>>902
違わない
算術、代数、幾何、解析だ全て
0904デフォルトの名無しさん
垢版 |
2018/08/30(木) 19:59:32.89ID:rxoSSaq5
例えば、バブルソートには
数学の、えっと、幾何?の知識が必要だろ?
え?
0905デフォルトの名無しさん
垢版 |
2018/08/30(木) 20:02:00.51ID:JJE0QqNc
フローチャートでも書けよバカ。
0909デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:05:25.02ID:fZXCQKMc
>>906
分からんと思っているだけでは進まない。

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

と言うことを、私は数学で学んだ。
0913デフォルトの名無しさん
垢版 |
2018/08/31(金) 00:57:19.27ID:1Yp+WIrl
まあゲームじゃない限り物理なんて使わないよね
本格的な物理系シミュレーションとかだと
専門家が担当するだろうし
0914デフォルトの名無しさん
垢版 |
2018/08/31(金) 01:02:18.59ID:avsEGe4h
この程度の問題で数学数学言ってるアホ多過ぎて呆れる

多分>>910みたいな感じで高校の算数基準で話してるんだろうな
0915デフォルトの名無しさん
垢版 |
2018/08/31(金) 01:09:41.75ID:6Alav1/S
そんなに言うのなら、具体的に数学のどの分野なのか
それが具体的に何と同じなのか言えって。
どうせ論理的思考力がーみたいな精神論しか言えないんだろ
0917デフォルトの名無しさん
垢版 |
2018/08/31(金) 07:23:04.73ID:KNbvu5CI
どうしてこうなった
0921デフォルトの名無しさん
垢版 |
2018/08/31(金) 12:44:50.11ID:DXKxWv2O
>>920
数学の問題をコンピュータで解決するってのはわかる、
だが数学・物理特有の問題以外をコンピュータで解決するのに
数学はいらねーだろって話
0923デフォルトの名無しさん
垢版 |
2018/08/31(金) 14:39:40.99ID:DXKxWv2O
信号処理なんて、誰がやっても同じなんだから
一度ライブラリ作って、他の人はそれ使うだけだろ・・・
0925デフォルトの名無しさん
垢版 |
2018/08/31(金) 18:49:37.43ID:DXKxWv2O
>>924
だからそういうのは専門家に任せたほうが良くね?

音声合成をやる人は、そういう専門家に任せて
他の人は便利なインターフェースを作るとかさ、
なんでも1人でやるもんじゃないよ?
0926デフォルトの名無しさん
垢版 |
2018/08/31(金) 19:18:52.92ID:5OSgw2nY
別にそういう原理を知りたくないんなら勉強しなくて良いんじゃない
表面的なものしか作りたくないなら勉強しないことをおすすめします
0929デフォルトの名無しさん
垢版 |
2018/08/31(金) 20:05:55.05ID:OUCwI4mz
>>928
その理屈で言えば、君がそういう層になりたいだけでは?

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

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

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

付け焼き刃は事故の元。
大きな仕事になればなるほど役割や責任が細分化される。
0933デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:24:44.93ID:rDlJp/s7
ぼやっとして結局何を言いたいのか良くわからんが
何か良い事を言いってみたい必死さは伝わった
0936デフォルトの名無しさん
垢版 |
2018/09/01(土) 13:13:44.90ID:mPcVbgud
言ってることがわからんから、言ってるほうが馬鹿だと思ってるだけじゃないの?
俺に言わせれば、馬鹿だから言ってることがわからないんだと思うが?
0941デフォルトの名無しさん
垢版 |
2018/09/04(火) 02:27:34.18ID:Tt3u8CpR
アルゴリズム辞典みたいなものを手元に置いときたいんだが、最も支持されてるのってどれ?


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

Amazonレビューかよテメェは
0945デフォルトの名無しさん
垢版 |
2018/09/04(火) 08:37:54.35ID:HF+7qfHp
より網羅的な対案示してからでないと批判にならないよ。

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

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

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

この保証がないのなら十分長く波形をとってFFTしてピークを探す。
0951デフォルトの名無しさん
垢版 |
2018/09/11(火) 22:09:31.90ID:i7axZbyN
♀だったらセクロス教えてやる
レス数が950を超えています。1000を超えると書き込みができなくなります。

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