タグ付けされた質問 「divide-by-zero」

4
(テストだけでなく)例外であるように派手な警告をどのようにキャッチしますか?
私がやっているプロジェクトのためにPythonでラグランジュ多項式を作らなければなりません。ニュートンの分割された差分スタイルのスタイルではなく、明示的なforループの使用を避けるために、重心スタイルのスタイルを実行しています。私が抱えている問題は、ゼロによる除算をキャッチする必要があるということですが、Python(または多分numpy)は、通常の例外ではなく警告を生成するだけです。 ですから、この警告を例外であるかのようにキャッチする方法を知る必要があります。私がこのサイトで見つけたこれに関連する質問は、私が必要とする方法ではなく答えられました。これが私のコードです: import numpy as np import matplotlib.pyplot as plt import warnings class Lagrange: def __init__(self, xPts, yPts): self.xPts = np.array(xPts) self.yPts = np.array(yPts) self.degree = len(xPts)-1 self.weights = np.array([np.product([x_j - x_i for x_j in xPts if x_j != x_i]) for x_i in xPts]) def __call__(self, x): warnings.filterwarnings("error") try: bigNumerator …

4
結果が何であれ、ゼロによる除算をサポートする最も速い整数除算は何ですか?
概要: 計算する最速の方法を探しています (int) x / (int) y の例外を得ることなくy==0。代わりに、任意の結果が必要です。 バックグラウンド: 画像処理アルゴリズムをコーディングするとき、私はしばしば(累積された)アルファ値で除算する必要があります。最も単純なバリアントは、整数演算を行うプレーンCコードです。私の問題は、通常、を使用した結果ピクセルに対してゼロ除算エラーが発生することalpha==0です。ただし、これは正確に結果がまったく問題にならないピクセルalpha==0です。のピクセルのカラー値は気にしません。 詳細: 私は次のようなものを探しています: result = (y==0)? 0 : x/y; または result = x / MAX( y, 1 ); xとyは正の整数です。コードはネストされたループで膨大な回数実行されるため、条件付き分岐を取り除く方法を探しています。 yがバイト範囲を超えない場合、私は解決策に満足しています unsigned char kill_zero_table[256] = { 1, 1, 2, 3, 4, 5, 6, 7, [...] 255 }; [...] result = x / …

8
ゼロ除算で0を返す方法
私はpythonで要素ごとの除算を実行しようとしていますが、ゼロが検出された場合は、商をゼロにする必要があります。 例えば: array1 = np.array([0, 1, 2]) array2 = np.array([0, 1, 1]) array1 / array2 # should be np.array([0, 1, 2]) データを常にforループで使用することもできますが、numpyの最適化を実際に使用するには、エラーを無視するのではなく、ゼロエラーで除算するとゼロを返す除算関数が必要です。 私が何かを見逃していない限り、numpy.seterr()はエラー時に値を返すことができないようです。エラー処理で自分の除算を設定しているときに、私がいかにnumpyを最大限に活用できるかについて他の提案がありますか?

7
C ++警告:ゼロによるdoubleの除算
ケース1: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0.0)<<std::endl; } 警告なしでコンパイルして出力しinfます。OK、C ++はゼロによる除算を処理できます(ライブでご覧ください)。 だが、 ケース2: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0)<<std::endl; } コンパイラーは次の警告を出します(ライブで確認してください): warning: division by zero [-Wdiv-by-zero] std::cout<<(d/0)<<std::endl; 2番目のケースでコンパイラが警告を出すのはなぜですか? ですか0 != 0.0? 編集: #include <iostream> int main() { if(0 == 0.0) std::cout<<"Same"<<std::endl; else std::cout<<"Not …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.