スレ立てるまでもない質問はここで 146匹目©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/02/23(木) 13:55:17.04ID:OAGoqT7f
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。

前スレ
スレ立てるまでもない質問はここで 145匹目
http://echo.2ch.net/test/read.cgi/tech/1483755167/
2017/08/30(水) 07:40:49.12ID:1xtdX2a2
>>121
片山博文MZのトリップも何度も流出してる。
123デフォルトの名無しさん
垢版 |
2017/08/30(水) 12:33:51.69ID:FcBhm7qE
>>122
そうなんですか。プロはやっぱり凄いですね。
しかし流出したトリップを使って、なりすます人って存在したのでしょうか?
過去に存在したとする一体どんな心境で、なりすますんでしょうね?
話がズレましたね。
ご返答ありがとうございました。
2017/08/30(水) 20:51:28.91ID:nbDkZ4Vq
関数の依存関係をグラフィカルに表示できるIDEはありませんか?
関数Aが関数Bと関数Cを呼び出して,関数Bが関数Dを呼び出して…というのを相関図みたいに表示出来るものはありますか?
125デフォルトの名無しさん
垢版 |
2017/08/30(水) 22:23:29.71ID:q4Wjjeh8
ありません
再帰関数とかどう表示したらいいの
2017/08/30(水) 22:29:24.71ID:lE/piHRT
ループ描けばいいんじゃね
2017/08/30(水) 22:34:02.84ID:AIW55pOF
>>124
IDE ではないけど。
https://www.gaio.co.jp/products/caseplayer2
2017/08/30(水) 22:42:03.31ID:AIW55pOF
こっちのほうがそれっぽいかな。使ったことないけど。
http://www.aicp.co.jp/products/codesonar.shtml
2017/08/30(水) 22:51:47.16ID:t1uAI5x9
解析ツールならそれなりにあるんじゃないの、understandとか
https://www.techmatrix.co.jp/product/understand/index.html
諸々の解析に役立つのは確かだけど、高いし個人で買おうとは思わないな
ソース読むだけなら、tagで十分
130デフォルトの名無しさん
垢版 |
2017/08/30(水) 23:05:37.38ID:GReeviPR
数学とか計算機科学に超詳しくなったら絶対に人生変わりますよね?
2017/08/30(水) 23:07:19.21ID:nUOql6bX
>>124
正しく設計しろ
2017/08/30(水) 23:12:45.76ID:nUOql6bX
>>130
そうだろうな
金運、子宝、交通安全、悪霊退散
本当に人生バラ色だよ

でも、そんな難しいことしなくても
簡単に人生を変えられる壺があるぞ
興味あるなら連絡くれ 紹介するぞ
133デフォルトの名無しさん
垢版 |
2017/08/30(水) 23:57:17.29ID:M+3IdRJz
>>130
金持ちになるかは別だけどね。
有名な数学者の一人は反戦して牢屋に入れられた時が一番数学に集中出来たとか言ってるし。
おいらも転職中は貯金切り崩してたから趣味が数学に偏った。
違う意味での豊かさ(心の豊かさ)は得られたかな。

一応言っておくとプログラミングには数学的センスは必要だけど、数学そのものは必須じゃないよ。
フーリエ変換覚えても、そもそもの変換するべきファイルのデータ構造知らんと何も出来ない。
逆にデータ構造さえ知ってれば、フーリエ変換知らなくても効率はともかく力押しで変換は出来る。

※フーリエ変換は大雑把に言えばアナログデータをデジタルデータに変換する。
2017/08/31(木) 00:40:36.76ID:J2aSRpVx
>>124
言語によってツールも違うよ
NDepend, JArchitect, Structure101, Doxygenなどなど
https://www.google.co.jp/search?q=doxygen+call+graph&;tbm=isch
2017/08/31(木) 04:42:13.97ID:1kAGjjBE
>>127
>>129
>>134
ありがとう
.値段やら対応OSやらいろいろとハードルが高いですね.
2017/08/31(木) 07:57:14.76ID:pAkIh2F5
>>124
QA Cに含まれてる
2017/08/31(木) 10:07:05.23ID:1kAGjjBE
>>136
ありがとう。

いろいろとハードルが高いですね。当方は自営業のシステムを自分で管理している程度なので、なかなか決断できませんね。
お金が余ったらunderstandを買ってみたいですね。
とりあえず手始めにhttp://www.vector.co.jp/soft/win95/prog/se308859.htmlを買ってみます。
2017/08/31(木) 11:15:32.78ID:PxNjJG10
>>137
たまにしか使わないなら
そういうソフト持ってる会社に外注すれば安いんじゃね
成果物にその図を入れて
ついでにどういうとこ直したらいいかアドバイス貰ったりして
2017/08/31(木) 12:54:48.58ID:1kAGjjBE
>>138
なるほど。いい手を教えていただきありがとうございます。

それにしても、understandが手元にあればオープンソースのコードを片端から解析して楽しいだろうな、と思いますね。
その後はリバースエンジニアリングに手を出していろいろ遊べそうと夢想してしまいます。
140デフォルトの名無しさん
垢版 |
2017/08/31(木) 16:59:53.90ID:j9odL7Qq
オブジェクト指向での設計についてなんですが
たとえばWebスクレイピングで画像をダウンロードするアプリの場合なのですが
「リスト一覧ページ」、「画像リストページ」、「画像ファイル」とありまして
まずリスト一覧ページのDOMを取得し、それから画像リストページのURLを抽出します
それから画像リストページをDOMを取得し、各画像ファイルのURLを取得します
そして各画像ファイルのDOMを取得し、画像ファイルのURLを取得し画像をダウンロードするんですが、クラス分けとしては

・リスト一覧ページからWebスクレイピングするクラス
・画像リストページからWebスクレイピングするクラス
・画像をダウンロードするクラス

こういう感じにわけるのでしょうか?細かく分ける理由がわからないのですが教えてください
141デフォルトの名無しさん
垢版 |
2017/08/31(木) 17:44:45.63ID:Vr+Gp9oD
担当を分けて保守しやすくするってだけじゃだめなのか?
会社やクライアントの要求でもないのなら好きにしろよ
2017/08/31(木) 18:31:34.76ID:J2aSRpVx
>>140
Webスクレイピングの場合は各ページを抽象化したクラスを1つずつ用意して
実際にスクレイピングする部分は別クラスでやるのが常套手段

ページごとにクラスを用意するのはPageObjectパターンつって
スクレイピング対象のページの構造が変わっても、スクレイピングする処理部分のコードを変更しなくてもいいようにするため

細かく分けるのはある仕様変更に対して、コードの変更を一箇所にするため
便利さが分からないうちは分けなくてもいいと思う
2017/09/01(金) 04:31:50.75ID:rLv0uJJn
>>140
WebPage
-------------
URL
HttpClient
-------------
getDOM
scrape

ListPage->WebPage
--------------
getList

ContentPage->WebPage
--------------
getImage

例えばこうすれば、
ListPageとContentPageはビジネスロジックの記述に集中できる
新しいPageが増えても記述が少ない
httpについて知らない人でも書ける
http周りでバグがあってもWebPageだけ直せばいい

どこまでを専用のクラス、ライブラリなどの既存クラスにするかは設計次第
2017/09/01(金) 04:34:50.31ID:rLv0uJJn
DOMでパースできるようなページなら
専用のクラスでなくてxpathで指定してスクレイピングするだけていいかも知れないし
2017/09/01(金) 06:54:39.17ID:RTadbuNn
curl, wget コマンドで、ダウンロードできる。
特に、wgetでは再帰的なダウンロードができる

wget を、高機能にしたのは、Ruby の、Anemone。
どのページを巡回するかなど、フィルターが充実している。
より高機能なのは、Selenuim か、PhantomJS を使った、Poltergeist

だから、この部分までが、1つのクラス

次のクラスは、XML/HTML の解析部分。
ここでは、Ruby, Groovy, jQuery(JavaScript) など、
各言語を切り替えられるようにしておく

最後に、データの保存では、ファイル、SQLite3, Mongo, MySQL など、
ファイル/DB を切り替えられるように、別のクラスにしておく
146デフォルトの名無しさん
垢版 |
2017/09/02(土) 12:25:08.34ID:qzG0zbyB
初心者なんですが、PHPを利用するにあたって仮想サーバーをたてるのにlocalhostを使いたいのですが表示されません。どなたか詳しくおしえてもらえないでしょうか?
2017/09/02(土) 14:32:09.73ID:3rQ39W6S
>>146
目的のものが書かれてある本を探して
正確に写経
わからないところは分かるまで調べ尽くす。
2017/09/02(土) 14:33:58.08ID:x3xo3AHA
謝辞から奥付までな!
2017/09/02(土) 14:38:54.71ID:bEjlZdoB
>>146
httpサーバーが起動しているか確かめる。
Windows Defenderなどのセキュリティソフトのブロックを解除する。
2017/09/02(土) 16:48:11.33ID:CJZVlBwp
よくこんな>>146みたいな文章で何やってるかわかるな
2017/09/02(土) 17:02:57.47ID:bEjlZdoB
ローカルサーバーに困ったらXAMPPにおまかせ。
152デフォルトの名無しさん
垢版 |
2017/09/02(土) 17:41:09.43ID:zcwYWazW
命名ルールについて質問です
変数・メソッドの命名で言葉の区切りを大文字で表す・アンダースコア "_"で区切るというのがありますが、
その区切りの程度、どこまでを一語としていいか迷っています

例が乏しいですが、javaのapiを見たところ必ずしもルールに沿ってるとは言い難い気がします
filename 一語としていいような気がするけど、厳格にルールを適用するなら二語じゃないの?
fileSystem 二語でいいような気がするが、なぜ一語ではないのか?
arraycopy getenv これは絶対二語であるべきだと思う

他にも仮にPlayStationなんて語で命名しようとした場合、
ルール的にもsonyの表記的にもPlayStation
商品名として一つのものだからPlaystation

どうすればいいかわかりません

なにか判断基準があれば教えてください
153デフォルトの名無しさん
垢版 |
2017/09/02(土) 17:41:58.98ID:FxmYDPin
>>130
見晴らしは良くなる

山(人生)に迷ったときに
川筋谷底にいるよりも尾根にいる方が有利なのと一緒
2017/09/02(土) 18:12:22.34ID:Ti9M8tGK
>>152
filenameもfilesystemも2語だと思うけど、1語として扱われることが
多いのならどっちも正解ってことなのでは?
商標は正しい表記をSONYが決めている(登録している)はず

https://google.github.io/styleguide/javaguide.html#s5.3-camel-case

Note: Some words are ambiguously hyphenated in the English language: for
example "nonempty" and "non-empty" are both correct, so the method names
checkNonempty and checkNonEmpty are likewise both correct.
2017/09/02(土) 22:55:25.31ID:9PaYDv7F
>>152
arraycopyやgetenvは古くて今の命名規約には従ってない
今から新しく追加するならarrayCopy, getEnvになるはず

filenameはfile nameよりも
file systemはfilesystemよりも一般的に使われてるからだろうね
ググって件数比較してみるといい

ただ完璧なルールなんてないから
ある程度は自分で決めていくしかない
fileSizeなのかfilesizeなのかfile.sizeなのか
2017/09/03(日) 01:54:20.12ID:Jl5mn7um
>>154>>155
>>arraycopyやgetenvは古くて今の命名規約には従ってない
そうだったのですか、てっきりその辺のルールは昔から揺ぎ無く定められているものだと思っていました

天下のgoogle様ならその点ばしっと切り分けてくれると思いきや
"nonempty","non-empty"どっちも正しい、とかまた迷わせてくれる…
正直その自由がめんどくさい


なので私は表記的に不恰好かもだけど迷わなくて済む厳格なルール
fileName fileSystem arrayCopy getEnv fileSize
でやっていこうと思います

ありがとうございました
157デフォルトの名無しさん
垢版 |
2017/09/03(日) 07:16:55.75ID:e9mk7X/B
Camel case
getEnv : 先頭が小文字のものは、メソッド名などに使う。
FileSystem : 先頭が大文字のものは、クラス名などに使う

Snake case
file_size : 変数名に使う
FILE_SIZE : 定数に使う
2017/09/03(日) 07:40:43.90ID:ne8qPBqk
>>156
他の古い言語にもあるようなものだと、特例的にその言語のルールより優先するかもね
fileameとかと同じく慣習
指で覚えてると混乱するじゃない
159デフォルトの名無しさん
垢版 |
2017/09/03(日) 09:56:57.49ID:iWD2f3RZ
超天才数学者と超天才建築学者はどっちの方が知能が高いのでしょうか?
2017/09/03(日) 11:01:09.93ID:DIhXI1rF
知能が高い=金が稼げる と考えるならば
建築家の方では?
161デフォルトの名無しさん
垢版 |
2017/09/03(日) 11:49:31.26ID:uAsVKsme
映像編集に関して教えてほしいのですが、
例えば、スターウォーズみたいな、巨額の資金を投入して作られる映画の
映像編集ってどんなものなのでしょうか?技術的にはどんなものが使われるのでしょうか?また、そういった映像編集のプロの人がいるのでしょうか?いるとしたら、その人の映像編集のスキルとか、どんな技術を使っているのかなどが知りたいです。
そもそもそういう映画の編集とかって難しいものなのでしょうか?
撮影や編集の機材に関してもいろいろ知りたいです。
カメラは当然超高性能のデカイのを使っているのでしょうが。
スタジオとかも当然あるんですよね?
アメリカ映画を製作する時に使われる撮影や編集機材は、YouTuberが使用している撮影や編集機材などと比べると、使いこなすのに相当勉強したりしないと無理ですか?
あと、機能的にはどうでしょうか?
やっぱりYouTuberが使用しているような撮影や編集機材に比べれば比較にならないほど高性能なのでしょうか?
いろいろ教えてください。
162デフォルトの名無しさん
垢版 |
2017/09/03(日) 11:51:16.79ID:3IeB+7r0
>>161
板違い
DTV
http://echo.2ch.net/avi/
2017/09/03(日) 13:26:23.87ID:n/pG+QVM
構うな
164デフォルトの名無しさん
垢版 |
2017/09/03(日) 18:10:16.82ID:skndupQG
Chinema4D
165デフォルトの名無しさん
垢版 |
2017/09/03(日) 20:22:12.21ID:xf4c8ggn
言語始めるとしたら、
Apple=Swift、Microsoft=C#、Google=Python
なイメージでいいの?
2017/09/03(日) 22:27:38.63ID:qkpMKllN
就活対策?
2017/09/03(日) 23:13:19.11ID:LluVimQv
>>165
Google: C++ >>> Java/Go/JavaScript >>>>>>>>>> Python

PythonはGoogleで使われてる言語なんだぜ!
みたいな人がたまにいるけどメイン言語としては使われてないからね
168デフォルトの名無しさん
垢版 |
2017/09/04(月) 03:01:58.47ID:jZ4EJkqS
自分は生まれつきもの凄く頭が悪いのですが、東京大学理学部数学科に入って数学を学びたいという目標があります。
生まれつきもの凄く頭が悪い人でも、人並み外れた努力を積み重ねれば、その目標を実現することはできると思いますか?
どうでしょうか?
2017/09/04(月) 03:45:51.07ID:KUepcu9z
生まれつきなら無理だろ
2017/09/04(月) 05:36:00.01ID:7T+ccfEh
失礼します。
今まで使えていたwriteprocessmemory 等を用いてプロセスアタッチを行なっていたのですが急に動作が不安定になり10回中2回ほどしか成功しません。

別PC(ネットカフェ)環境からだと問題なく動作します。
PC自体に負荷をかけるようなことを行なっていたためパーツ側に何か問題があると見ていまして、このような症状をご存知の方教えて下さい。
2017/09/04(月) 13:08:49.43ID:Dvco0PWY
マルチーズ
172デフォルトの名無しさん
垢版 |
2017/09/06(水) 15:04:34.36ID:p7vL1/ES
ミスしたプログラマは5億支払うんですか?
http://www3.nhk.or.jp/news/html/20170905/k10011128071000.html
2017/09/06(水) 19:38:46.70ID:5aagc8fK
そらそうだ
174デフォルトの名無しさん
垢版 |
2017/09/06(水) 21:08:43.29ID:sZnGJ0d2
pythonってなんか変な哲学(zen?)を押し付けてくるイメージがあり嫌いでした。
今学期から新たにpythonの授業が始まるのですが、実際は作者のこだわりの強い押し付けがましい言語なのですか?
2017/09/06(水) 21:32:32.17ID:tZ2T0w/m
>>174
The Zen of Python自体は特に押し付けがましいものじゃないよ
それにその哲学が実際に機能してない部分も多々ある

ただ、
swtich/caseできないの?
三項演算子もないの?
正規表現リテラルないの
なんでself毎回書かないといけないの?

みたいな文句を言うと
なにかとZen of Pythonを言い訳として引用するPython信者が多いから印象は悪い

グイドも押し付けがましいというより独善的という印象
対応しないことに対する言い訳が多め

言語としてそんな悪いわけじゃないから一旦学んで
メインで使っていくかどうか自分で決めればいいよ
機械学習・自然言語処理・統計みたいなのをやるつもりなら
言語が嫌いでもPythonは必須
2017/09/07(木) 00:45:05.55ID:OOPim2+O
理屈は正しくてもPythonというコードのせいでその正しさが歪められることが有るからね

例えばこれ(この例を考えた人が誰かは知らんけど)

http://qiita.com/IshitaTakeshi/items/e4145921c8dbf7ba57ef#sparse-is-better-than-dense

> if i>0: return sqrt(i)
> elif i==0: return 0
> else: return 1j * sqrt(-i)
>
> if i > 0:
>  return sqrt(i)
> elif i == 0:
>  return 0
> else:
>  return 1j * sqrt(-i)
>
> 上のコードと下のコード、どちらのほうが読みやすいだろうか。
2017/09/07(木) 00:47:12.12ID:OOPim2+O
おれは空白がなくてもこっちのほうがよくね?って思うわけだ

if i > 0: return sqrt(i)
if i < 0: return 1j * sqrt(-i)
return 0

そしてもしreturnを省略できて、三項演算子が使えたらもっと良くなるだろう

i > 0 ? sqrt(i) :
i < 0 ? 1j * sqrt(-i) :
0

ruby風にcase whenが使えたら、こうもかける。

case i
when i > 0 then sqrt(i)
when i < 0 then 1j * sqrt(-i)
else 0
end

Pythonの哲学はPythonという言語で実現はできない
っていうのが現実だろうね。
2017/09/07(木) 01:20:11.47ID:EkI2HYTy
>>176
これは歪んでるわ
そしてこのQiitaのLike数に震える

ついでに負数はともかく0を特別扱いする意味がわからんが
2017/09/07(木) 07:05:23.25ID:iSu3unJA
>>177
負数の平方根で虚数を返さないsqrtはおかしいよな。
MatlabやWolfram言語、Juliaあたりは普通に扱えるのに。
2017/09/07(木) 07:15:08.46ID:MB/dyp5b
returnが複数あったり途中にあったりするのは苦手
後でいじるときに既存部分も書き直さなければいけないことが増えるから
でバグ作る
2017/09/07(木) 07:29:58.30ID:sTZGXhdy
JavaScript, Python, PHP には、偽が一杯ある

一方、Ruby では、nil, false だけ。
やっぱり、Rubyがすごい
182デフォルトの名無しさん
垢版 |
2017/09/07(木) 08:16:30.82ID:AFVFsrIl
数学者とプログラマーはどっちの方が頭が良いのでしょうか?
2017/09/07(木) 08:38:34.12ID:iSu3unJA
もう、言語仕様で関数はキャメルケースでなければならないとか、ハンガリアン記法を強要するとか、綴りが間違ってるとエラーとかすればいいのに。
2017/09/07(木) 09:28:32.72ID:9krprfDJ
そんなエディタを作ればよい
2017/09/07(木) 09:35:12.70ID:Omz9mDs1
>>172
損失は310億円以上
賠償はたったの5億円
どうみてもNECの勝ち
2017/09/07(木) 09:38:41.84ID:nzkvp6mm
>>184
誰が書いても同じにしたいって思想らしいからさ。
エディタが賢くなれば、「この変数名は意味わからないですよ」とかなるかもね。
AIがやってくれるか。
2017/09/07(木) 09:45:28.31ID:dkrfuUTt
> 176
return sqrt(i) if i>0 else 1j*sqrt(-i) if i<0 else 0
188デフォルトの名無しさん
垢版 |
2017/09/07(木) 12:42:23.53ID:qwqm4Dyg
>>176
これ以上ネスト深くなったり、長くなったりした時とか、
もしくは、変更がかかった後にdiff見る時のこととか考えてる?

そこまで考えられないの?
そえとも、考えたうえで
>>177
>おれは空白がなくてもこっちのほうがよくね?って思うわけだ
こう思ってるの?
2017/09/07(木) 12:59:44.57ID:SWYVBVQN
計算機科学を究めれば神と会話ができるようになりますか?
2017/09/07(木) 13:04:06.99ID:SWYVBVQN
量子コンピュータと人工知能はどっちの方が凄いですか?
2017/09/07(木) 16:14:41.57ID:EkI2HYTy
>>180
>後でいじるときに既存部分も書き直さなければいけないことが増えるから

returnするための値を一時的に持ちながら最後にreturnする場合でもそれは同じじゃないの?
returnの仕方に対称性や規則性がないと読みにくいのは確かだけどそれはそういうコードを書くやつが悪いと思う

自分の経験では最後にreturnしようとする人のほうが早期returnを当たり前に使う人に比べて
メソッドを長々と書いたり安易に条件文のネストを深くしていく人が多い
昔からの慣習だからなのかな?
2017/09/07(木) 16:26:51.37ID:EkI2HYTy
>>188
>これ以上ネスト深くなったり、長くなったりした時とか、

176とは別人だけど
ネストを深くせざるをえない状況にもよるから具体例がないと比較するの難しいかもね
ただどちらのケースもcase文や後置ifが使えないPythonは不利だよね
それがあるから歪んだZenの理解が広まるのかもしれないが
193デフォルトの名無しさん
垢版 |
2017/09/07(木) 17:29:51.42ID:1NUQmKHv
Qある決まった大きさ(X)の箱に小箱(A〜E)を詰め込んでいく
 箱(X)の価値を高くするには?
 
 箱A 大きさ3    箱B 大きさ4   箱C 大きさ5
    価値2        価値4      価値7

 箱D 大きさ8    箱E 大きさ12
    価値10       価値14


下のような結果を出力するためのアルゴリズムをおしえてください。


   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ←(番目)
A :0 0 2 2 2 4 4 4 6 6 6 8 8 8 10 10 10 12 12 12
AB :0 0 2 4 4 4 6 8 8 8 10 12 12 12 14 16 16 16 18 20
ABC :0 0 2 4 7 7 7 9 11 14 14 14 16 18 21 21 21 23 25 28
ABCD :0 0 2 4 7 7 7 10 11 14 14 14 17 18 21 21 21 24 25 28
ABCDE :0 0 2 4 7 7 7 10 11 14 14 14 17 18 21 21 21 24 25 28
↑(使う箱の種類)
194デフォルトの名無しさん
垢版 |
2017/09/07(木) 17:30:53.92ID:1NUQmKHv
>>193
おしえてくださいお願いします。
2017/09/07(木) 17:46:39.42ID:K5Q2sK+z
ずれててみにくい
196デフォルトの名無しさん
垢版 |
2017/09/07(木) 18:01:40.72ID:1NUQmKHv
お願いします   
   1  2  3  4  5  6  7  8 9 10 11 12 13 14 15 16 17 18 19 20 ←(番目)
    A :0  0  2  2  2  4  4  4 6 6 6 8 8 8 10 10 10 12 12 12
   AB :0  0  2  4  4  4  6  8 8 8 10 12 12 12 14 16 16 16 18 20
  ABC :0  0  2  4  7  7  7  9 11 14 14 14 16 18 21 21 21 23 25 28
 ABCD :0  0  2  4  7  7  7 10 11 14 14 14 17 18 21 21 21 24 25 28
ABCDE :0  0  2  4  7  7  7 10 11 14 14 14 17 18 21 21 21 24 25 28
↑(使う箱の種類)
197デフォルトの名無しさん
垢版 |
2017/09/07(木) 18:03:29.90ID:1NUQmKHv
めっちゃずれてる...
2017/09/07(木) 18:15:23.21ID:9LLfLktS
問題文からなぜその一覧を必要とするかが読みとれないな
199デフォルトの名無しさん
垢版 |
2017/09/07(木) 18:22:31.38ID:1NUQmKHv
>>193
いろいろ抜けてました。
出力結果のようになるフローチャートを書いてくるのが
課題です。
2017/09/07(木) 19:42:19.95ID:sTZGXhdy
「ナップサック問題」で検索!

アルゴリズムの基本
2017/09/07(木) 21:07:10.71ID:sTZGXhdy
価値 / 大きさ = 大きさ当たりの価値
A 2/3 = 0.67
B 4/4 = 1
C 7/5 = 1.4
D 10/8 = 1.25
E 14/12 = 1.17

つまり、C を詰められるだけ詰めて、
余った所に、D, E, B, A の順に詰めていく
202201
垢版 |
2017/09/07(木) 21:10:44.45ID:sTZGXhdy
自己レス
>つまり、C を詰められるだけ詰めて、
>余った所に、D, E, B, A の順に詰めていく

この方法はどん欲法だけど、やっぱり、この方法ではダメだ

「ナップサック問題」の解答の通りにやるべき
2017/09/07(木) 21:21:23.29ID:nzkvp6mm
1次元なら分かるが
3次元の箱にきっきり収まるのだろうか?
2017/09/07(木) 21:56:38.14ID:9LLfLktS
そんなこと言ったら形によって空き容量はあるのに入らないって場面はどーすんの?
プログラムとして考えるときには考慮する必要ないよ
205デフォルトの名無しさん
垢版 |
2017/09/07(木) 22:08:49.75ID:abyvl7Px
計算機科学の入門書って、中学数学や高校数学がほとんど理解できてない人でも読めますか?
2017/09/07(木) 22:20:15.74ID:nzkvp6mm
>>202
箱Eは大きさ12で価値14だから
12空いてたら箱Cを2個詰めたほうがマシ。
なので箱Eは使わない。

条件考えていったらもっと簡単になると思うよ。
2017/09/07(木) 22:44:56.89ID:BW/FZa1O
フロアレイアウトの問題はそこが肝心だったりする。
そういうのがあるからふつうのナップサック問題は重量を制約条件として出題される場合が多いと思う。
2017/09/08(金) 00:40:50.51ID:vWsWUiiy
>>188
> これ以上ネスト深くなったり、長くなったりした時とか、
> もしくは、変更がかかった後にdiff見る時のこととか考えてる?

それ、なんか違いあんの?

空白があってもなくても、違いはないことを、
さも空白がないときだけ問題が起きるようふうなことを
根拠なく言わないことだね。
2017/09/08(金) 00:48:22.81ID:vWsWUiiy
>>180
> returnが複数あったり途中にあったりするのは苦手
> 後でいじるときに既存部分も書き直さなければいけないことが増えるから
> でバグ作る
returnが複数あったり途中にある場合かつ
後った時に既存部分を書き直さなければいけない 例を書いて

その逆でreturnが複数ない方が既存部分を
書き直さなくていい例を書いてあげよう

def hello(name)
 return if name.nil?
 return if name == ''
 return if name == 'nanashi' # ← 追加しても既存部分は変えなくて良い
 puts name
end

def hello(name)
 if !name.nil?
  if name != ''
   if name != 'nanashi' # ← 追加したのでインデントが増えた
    puts name
   end
  end
 end
end

def hello(name)
 if !name.nil? && name != '' && name != 'nanashi' # ← 追加したので既存部分を書き換えた
  puts name
 end
end
2017/09/08(金) 00:49:31.06ID:vWsWUiiy
訂正

その逆でreturnが複数ある方が既存部分を
書き直さなくていい例を書いてあげよう
2017/09/08(金) 07:35:49.36ID:UV7+A1Tq
後のこと考えてるのにそんな書き方しないだろ
2017/09/08(金) 07:59:24.78ID:UV7+A1Tq
>>191
そういうことなら、
経験上returnを途中で書く人の方がメソッドを長々と書いたり安易に条件文のネストを深くしていく人が多い
と意味のないことを言っておこう
2017/09/08(金) 08:30:04.77ID:idaiwuG/
>>212
俺もできるだけ入口と出口は1個づつにしたい
でもパラメータが想定外な場合に限り非常口として即returnしてる
2017/09/08(金) 09:22:42.41ID:QaKanL5Y
全体をブロックにしてbreakで抜け、最後にreturnひとつにしてはどうだろう?
2017/09/08(金) 09:51:13.10ID:idaiwuG/
そのネストを排除したいのよ
2017/09/08(金) 11:09:11.49ID:UV7+A1Tq
>>213
途中じゃなくて最初はやる
複数にはなってしまうけど
異常で例外使える場合は例外投げるけど
217デフォルトの名無しさん
垢版 |
2017/09/08(金) 11:14:31.29ID:igjEawnU
数学の全ての分野を究めたい。
218デフォルトの名無しさん
垢版 |
2017/09/08(金) 11:44:17.98ID:zjVEM0GH
統計はつまらん
2017/09/08(金) 11:47:55.39ID:idaiwuG/
>>216
例外の扱いも個性でるよなぁ
予想できる例外と予想できない例外はどう区別するの?とか
2017/09/08(金) 12:47:15.39ID:uECMqc9H
>>215
MISRA-C とかの話じゃないのか。
2017/09/08(金) 13:50:07.15ID:UV7+A1Tq
>>219
主設計者のポリシーに従って統一されてればいいよ
私はユーザーの誤操作も例外扱い
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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