問題タブ [sqrt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ピタゴラス SQRT() の最適化
いくつかのレイテンシ測定テストの後、かなり遅い FPU を搭載した組み込み CPU で実行されるピタゴラスの三角形の計算を最適化する必要があることがわかりました。
問題は、これらの計算が発生した場合、それらが数値になり、タイミングが台無しになることです。計算の絶対数を減らすことはできません。しかし、どういうわけか、それらはより速くなる必要があります...少なくとも5倍。:-/
個別の値の入力範囲が何らかの形で約 300 ~ 500 の順列に制限されており、2 つのテーブル エントリ間の補間で十分であるため、現在、これらの計算を前処理することを考えています。しかし、問題にいくつかの条件を使用すると、このコードも高速化できるのではないかと考えていました。
これはまだ使用していません:
- 結果dの精度は、小数点以下 3 桁が必要なため、非常に制限されます。
- 三角形の脚 (h,v) は常に 4:3 または 16:9 の縦横比です。
整数の固定小数点計算が平方根で利用できるかどうか、または関数を精度の低いものに置き換えることができるかどうか、または何らかの方法でアスペクト比を使用できるかどうかはわかりません。
何か案は?
ありがとうございました!
java - ラボ 9.3 の問題 (はい、9.1 の問題点がわかりました)
9.1 と 9.2 を完了しました。さて、答えはそう単純なものではないと思います。手順は次のとおりです。
一連の数値の標準偏差は、それらの値の広がりの尺度です。これは、各数値と平均値の差の 2 乗の平均の平方根として定義されます。データに格納されている数値の標準偏差を計算するには:
数値の平均を計算します。
各数値について、平均からそれを引き、結果を二乗します。
手順 2 で計算した数値の平均を求めます。
ステップ 3 の結果の平方根を求めます。これが標準偏差です。データ内の数値の標準偏差を計算し、結果を double sd に格納するコードを記述します。
負でない double d の平方根を求めるには、次の式を使用します。
double s = Math.sqrt( d );
これが私のコードです:
何が間違っているのか本当にわかりません。どんなアドバイスも試されます。
c++ - C ++でのペンタゴンプロジェクト
そうです.. 私は自分の C++ クラス用に五角形のプロジェクトを書いています。そこで.. Pentagon クラスと Menu クラスを持つペンタゴン プログラムを作成する必要があります。Menu Class の作業は管理しましたが、Pentagon クラスの操作方法がわかりません。とにかく、私が現在必要としているのは、平方根で正しい方程式を作ることです。
五角形の面積を求める式は次のとおりです。
A = s^2 sqrt (of 25 + 10 sqrt (5) ) / (over) 4
では、どうすればいいですか?これは私が現在メニュークラスに持っているものです:
助けてください!
c++ - sqrt関数を使わずに平方根を求める?
sqrt関数を使わずに平方根を求めるアルゴリズムを探していて、プログラミングに入れてみました。私はC++でこの作業コードに行き着きます
ここで問題は、宣言の反復回数 nCount を初期化することです (ここでは 50 です)。たとえば、36 の平方根を見つけるには 22 回の反復が必要なので問題ありませんが、15625 の平方根を見つけるには 50 回以上の反復が必要です。したがって、50 回の反復後に temp の値が返されます。これに対する解決策を教えてください。
c++ - 非再帰的な sqrt 関数が再帰的であるのはなぜですか?
test.cpp という次の C++ テスト プログラムがあります。
これはかなり不自然なコードであり、ご想像のとおり、Stroustrup を使って演習を行おうとしています。彼は double sqrt(double) を宣言し、読者にそれを定義してもらいたいと考えています。
g++ 4.8 (Qt 5.1 の MINGW リリースから) を使用して上記のコードをコンパイルしました。
結果の実行可能ファイルを実行すると、Windows 7 で「test.exe が動作を停止しました」と表示されました。
何が問題なのかを確認するために、GNU デバッガーで test.exe を実行しました。デバッガーのコマンドと出力:
動作と警告から、std::sqrt はグローバル名前空間から sqrt を呼び出す必要があると推測します。これにより、関数が繰り返し呼び出されます。
sqrt 関数の名前を変更するか、名前空間内に配置することで、不要な再帰を回避するのは簡単です。しかし、std::sqrt が ::sqrt が呼び出されるような方法で実装されている理由を理解したいと思います。std 名前空間の要点は、ユーザー コード内の修飾されていない名前との名前の衝突を防ぐことだと思いました。
<cmath> の GNU 実装のソース コードをのぞいてみました。ただし、チェーンのいくつかの #include をたどった後、トレイルを失いました。多分あなたはそれをもっと理解できるでしょう:
ちなみに、これは単なる GNU パズルではありません。g++ の代わりに Visual C++ コンパイラでコンパイルすると、次の警告が表示されます。
これは、StackOverflow で尋ねるのにふさわしい質問だと思います。:)
結果の実行可能ファイルを実行すると、期待どおりの結果が得られます: 「test.exe が動作を停止しました」。