[過去ログ] 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
769
(1): デフォルトの名無しさん [sage] 2017/07/02(日) 15:42:45.32 ID:1Me6IR2g(1/16) AAS
4倍精度でも8倍精度でも多倍長でも整数でも有理数でも、使い方を間違えば誤差が問題になる

安直な処理で一番問題が発生しやすいのが整数丸めと比較
ごくごく微妙な誤差は何時でも含んでいると思うと良い
770
(1): デフォルトの名無しさん [sage] 2017/07/02(日) 15:45:50.50 ID:1Me6IR2g(2/16) AAS
>>768
768(2): デフォルトの名無しさん [sage] 2017/07/02(日) 14:24:20.03 ID:O/UEQvVu(1/2) AAS
精度保証付きの演算ライブラリ使えば?
大抵の演算ライブラリや演算器は精度の保証がある
772: デフォルトの名無しさん [sage] 2017/07/02(日) 16:12:27.01 ID:1Me6IR2g(3/16) AAS
>>771
771(1): デフォルトの名無しさん [sage] 2017/07/02(日) 16:02:14.06 ID:O/UEQvVu(2/2) AAS
>>770
いや、そうじゃなくて浮動小数点計算誤差由来の誤差を解決するための分野とライブラリがあるんだよ
解をレンジで持ち続けるみたいな感じ
Accuracy guaranteed numerical calculation でググるとたくさん出てくるよ
解をレンジで持ち続けて何か解決出来ると思うか?
>>765
765(3): デフォルトの名無しさん [sage] 2017/07/02(日) 10:29:07.80 ID:TVPISEnD(1) AAS
質問です
doubleの計算誤差ってちゃんと考慮必要でしょうか?
数桁の四則演算なら誤差なしと考えていいですか?
レベルの人が
774: デフォルトの名無しさん [sage] 2017/07/02(日) 16:15:08.10 ID:1Me6IR2g(4/16) AAS
有理数を有理数のまま保持している分には、四則演算では誤差が発生しない

もちろんオーバーフローしない条件で
775: デフォルトの名無しさん [sage] 2017/07/02(日) 16:16:17.16 ID:1Me6IR2g(5/16) AAS
>>773
773(1): デフォルトの名無しさん [] 2017/07/02(日) 16:13:48.15 ID:9wrwY3nx(1/4) AAS
mpir、gmpだろ。これ使えば円周率1万でも1億でも正確に計算できるはず
前提条件は数桁の四則演算
776: デフォルトの名無しさん [sage] 2017/07/02(日) 16:18:03.31 ID:1Me6IR2g(6/16) AAS
doubleで計算を前提とし、誤差が問題となりやすい場面だけ教えてあげれば十分
779: デフォルトの名無しさん [sage] 2017/07/02(日) 16:36:49.35 ID:1Me6IR2g(7/16) AAS
>>777
777(2): デフォルトの名無しさん [] 2017/07/02(日) 16:22:01.48 ID:9wrwY3nx(2/4) AAS
実際、浮動小数点型の誤差は無視できないぞ。
float型とか、容量が少ないほど。情報処理の入門書の最初から出てくる話題だろ。
無視できる場合もあるし出来ない場合もある
floatや半精度があるのはそれで十分な場合があるから
780: デフォルトの名無しさん [sage] 2017/07/02(日) 16:37:57.96 ID:1Me6IR2g(8/16) AAS
doubleより前に、整数演算の誤差を学ばなければならないレベルかも
781: デフォルトの名無しさん [sage] 2017/07/02(日) 16:42:50.35 ID:1Me6IR2g(9/16) AAS
>>765
>>768
>>777
まとめて
796: デフォルトの名無しさん [sage] 2017/07/02(日) 23:32:00.58 ID:1Me6IR2g(10/16) AAS
>>782
782(2): デフォルトの名無しさん [sage] 2017/07/02(日) 17:12:26.96 ID:ZK/8Emjh(1) AAS
コーディング規約で
float、doubleは使用禁止が正解
整数も除算に誤差があるから禁止
797
(1): デフォルトの名無しさん [sage] 2017/07/02(日) 23:32:37.56 ID:1Me6IR2g(11/16) AAS
>>783
783(1): デフォルトの名無しさん [sage] 2017/07/02(日) 18:20:54.13 ID:p749GQFM(1/3) AAS
1/3の結果に3を掛けても1にならないとか、
0.1を10回足し合わせても1と一致しないとか、
その辺りは分かっているのかな?
整数でも1/3*3は1にならない
798
(1): デフォルトの名無しさん [sage] 2017/07/02(日) 23:35:11.82 ID:1Me6IR2g(12/16) AAS
>>785
785(2): デフォルトの名無しさん [sage] 2017/07/02(日) 18:38:08.40 ID:FdY2ZCkQ(1) AAS
・同じ計算をするんでも
なるべく精度の高いアルゴリズムを選ぶ
・0との比較では、絶対値と計算機epsilonの比較を用いる

他にある?
コストも考えなさい

epsilonは>>786
786(1): デフォルトの名無しさん [sage] 2017/07/02(日) 18:50:30.43 ID:MoO3L/4V(1/2) AAS
>・0との比較では、絶対値と計算機epsilonの比較を用いる

何かとごっちゃになってる気がする。
計算の収束判定等で用いるのは機械イプシロンじゃない。
の通り
補足すると、
収束判定に限らず、普通はepsilonで判定しない
800: デフォルトの名無しさん [sage] 2017/07/02(日) 23:36:20.12 ID:1Me6IR2g(13/16) AAS
>>792
792(4): デフォルトの名無しさん [sage] 2017/07/02(日) 22:54:19.38 ID:ynDhLM7Z(1) AAS
情報処理資格に受かっていない人が、C/C++ をプログラミングするなど、10年早い

C/C++ は、直接デバイスを扱うから、自作パソコンを作れるぐらいに、
かなりパソコン内部の装置の仕組みを、知っていないと無理

さらに組み込みなら、高度情報処理のエンベッド資格も必要
情報処理資格www
なんの役にもたたない
804: デフォルトの名無しさん [sage] 2017/07/02(日) 23:53:35.08 ID:1Me6IR2g(14/16) AAS
いやいやそこじゃなくて
805
(1): デフォルトの名無しさん [sage] 2017/07/02(日) 23:55:20.40 ID:1Me6IR2g(15/16) AAS
1.0/3.0*3.0 が 1.0にならないことがある
1/3*3 が 1にならない

小数演算特有ではない
806: デフォルトの名無しさん [sage] 2017/07/02(日) 23:59:40.73 ID:1Me6IR2g(16/16) AAS
0.1を10回足しても1にならないことがあるって言うのも小数特有ではない

0.1は普通のfloatやdoubleでは表現できず、コンパイル時に近似値に変換する
この意味では以下と本質的には同じ

int a = 0.1;
int b = a * 10;
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.042s