浮動小数点演算の落とし穴: 克服する方法
Python などのプログラミング言語で一般的に使用される 10 進数ベースの浮動小数点演算は、近似的な性質のため、微妙な誤差が生じます。これらの誤差を理解することは、正確な計算を行うために非常に重要です。
問題
浮動小数点加算を使用して平方根を推定する次の Python 関数を考えてみましょう。
<code class="python">def sqrt(num): root = 0.0 while root * root <p>しかし、この関数は不正確な結果を生成します:</p> <pre class="brush:php;toolbar:false"><code class="python">>>> sqrt(4) 2.0000000000000013 >>> sqrt(9) 3.00999999999998</code>
浮動小数点の問題
問題は、Python の浮動小数点値がは 10 進数の正確な表現ではありません。代わりに、バイナリ表現が使用されるため、バイナリ形式で正確に表現できない数値を扱う場合、不正確さが生じる可能性があります。
関数例では、0.01 の加算は、次の理由により 1/100 の加算と同等ではありません。このおおよその表現。実際に追加される値は 1/100 よりわずかに大きく、若干過大評価されます。
浮動小数点エラーの克服
これらのエラーを回避するには、次の戦略を検討してください。
- Use Decimal モジュール:
Python の 10 進数モジュールは、10 進数に基づく固定小数点表現を使用する代替型 Decimal を提供します。これにより、変更された関数に見られるように、より正確な計算が可能になります:
<code class="python">from decimal import Decimal as D def sqrt(num): root = D(0) while root * root <ul><li><strong>バイナリ表現可能な値を使用:</strong></li></ul> <p>浮動小数点に固執0.125 (1/8) や 0.0625 (1/16) など、正確な 2 進分数を表す加算。これにより、丸め誤差が発生することなく加算が正確になることが保証されます。</p> <p>浮動小数点誤差を理解し、克服することは、正確な数値計算に不可欠です。適切な戦略を採用することで、開発者はこれらのエラーを最小限に抑え、より正確な結果を達成できます。</p></code>
以上が浮動小数点演算の落とし穴を克服して正確な計算を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

正規表現を使用して、最初の閉じたタグと停止に一致する方法は? HTMLまたは他のマークアップ言語を扱う場合、しばしば正規表現が必要です...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

メモ帳++7.3.1
使いやすく無料のコードエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック



