スレを勃てるまでもないC/C++の質問はここで 25
[隔離病棟]
©2ch.net (467レス)
スレを勃てるまでもないC/C++の質問はここで 25
[隔離病棟]
©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1471100645/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
274: デフォルトの名無しさん [sage] 2018/01/27(土) 11:42:00.24 ID:2gTl4aTp 定数何個かなら事前に計算していれておけば良いけど http://mevius.5ch.net/test/read.cgi/tech/1471100645/274
276: デフォルトの名無しさん [sage] 2018/01/27(土) 11:53:27.06 ID:EckHRazm 言葉足らずでしたが、標準やその他ライブラリの数学関数の結果として求めたいのではなく 数値リテラルとして初期化する場合に限ってもらっても結構です 閾値として使うのに、切り上げか切り下げかわかっていないと間違った結果が出て後で困ることになります たとえば単純に閾値未満と以上のデータを別の用紙に印刷するプログラムを以下のように書いた場合 double result = calculation(); double threshold = √3 if (result < threshold) fail_list.add(result); else pass_list.add(result);` print_to_paper(fail_list); print_to_paper(pass_list); 計算精度に限界がある以上(閾値付近での)比較での細かい誤差は気にするなという人もいるでしょうが それ以上に実際に紙面に載る値が要件に反する事態になってしまうと後々困ったことになるのです... >>274 次善の策でそのことも考えますが、要件が変わった場合などに脆さが残りませんか? http://mevius.5ch.net/test/read.cgi/tech/1471100645/276
279: デフォルトの名無しさん [sage] 2018/01/27(土) 14:20:38.41 ID:EckHRazm 説明のために>>276のプログラムをfloatに戻したものを考えると (result < 1.732050776f)という比較ではresultが1.732050776fだった場合に 1.732050776は√3未満であるのに合格リストの方に載ってしまうということです 計算上の誤差があるとかdoubleの有効桁数が多いとかでなく プログラム内の数値の取り扱いに関係なく、実際の紙の上では間違いが起こってほしくないということです うまく説明できてるかどうかわかりませんが、実行時どの程度誤差を許容できるかは問題ではないんです 結果を見せた時に、どうしてこの値がこっちのリストに載っているわけ? 直しておいてくれる? と言われれば、どうせ境界値付近の値なんてどちらのリストに載っていようと計算誤差もあるしいずれにしても正確とは言えないんですよ では通じないんです... ≒をどちらに組み込むかを決めておくというのも、結局は事前に求めておく>>274の手法と同じ手間がかかりませんか 要件の数値(実数)が変われば、切り上げか切り下げのどちらであるかも変わってしまいますから どちらになっているかを確かめなくてはいけないですよね http://mevius.5ch.net/test/read.cgi/tech/1471100645/279
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s