タグ付けされた質問 「numbers」

7
いつフロートを使用し、いつダブルを使用しますか
多くの場合、プログラミングの経験では、実数にfloatを使用するかdoubleを使用するかを決定する必要があります。フロートに行くこともあれば、ダブルに行くこともありますが、実際にはもっと主観的に感じます。私が自分の決定を守るために直面​​するなら、おそらく正当な理由を述べないでしょう。 いつfloatを使用し、いつdoubleを使用しますか?常にメモリ制約が存在する場合にのみ、doubleを使用しますか?または、精度の要件でdoubleを使用する必要がない限り、常にfloatを使用しますか?floatとdoubleの間に基本的な数理計算の計算の複雑さに関して実質的な違いはありますか?floatまたはdoubleを使用することの長所と短所は何ですか?そして、ロングダブルを使用しましたか?
194 c++  c  floating-point  numbers 

6
代わりにdoubleが主に推奨されるのに、なぜfloatがJava言語の一部であるのはなぜですか?
私が見たすべての場所で、それはほぼすべての点doubleで優れていると言いfloatます。Javaでfloat廃止さdoubleれたのに、なぜまだ使用されているのですか? 私はLibgdxで多くのプログラムを作成しており、それらを使用することを強制していますfloat(deltaTimeなど)が、doubleストレージとメモリの点で作業する方が簡単だと思われます。 私はまた、いつfloatを使用し、doubleを使用するのかを読んでいますが、float本当に小数点以下の桁数が多い数値にのみ適している場合、なぜ多くのバリエーションの1つを使用できないのdoubleですか? もはや利点がなくなっても、人々がフロートを使用することを主張する理由はありますか?すべてを変更するのは大変な作業ですか?

11
無限リストから最高の100個を取得
私の友人の一人がこのインタビューの質問を受けました- 「ある一定の時点で上位100個の数字を返すようにデータ構造を維持する必要がある数字の無限リストからの数字の流れが絶え間なくあります。すべての数字は整数のみであると仮定します。」 これは簡単です。ソートされたリストを降順で保持し、そのリスト内の最小数を追跡する必要があります。取得した新しい数がその最小数よりも大きい場合、その最小数を削除し、必要に応じてソート済みリストに新しい数を挿入する必要があります。 その後、質問が延長されました- 「挿入の順序がO(1)であることを確認できますか?可能ですか?」 私が知っている限りでは、リストに新しい番号を追加し、並べ替えアルゴリズムを使用して再度並べ替えても、クイックソートのO(logn)が最適です(私は思う)。だから私の友人はそれは不可能だと言った。しかし、彼は納得しておらず、リストではなく他のデータ構造を維持するよう求めました。 私はバランスの取れた二分木を考えましたが、そこでも1の順序で挿入されません。だから私も同じ質問をしています。上記の問題に対して1の順序で挿入できるデータ構造があるか、まったく不可能であるかを知りたい。
53 numbers  big-o  puzzles 

3
なぜ2 ^ 16が「特別な」数字なのですか?[閉まっている]
OK、私はこれを尋ねるのは愚かだと思う-しかし、ジェフの記事で:インタビュー電話画面を正しく取得し、もともと5つの重要な電話画面の質問で述べた: 2 ^ 16 isで尋ねるとき、彼らはあなたを見つめているべきではありません。これは特別な番号です。彼らはそれを知っているべきです。 私は開発者\ソフトウェアエンジニア\コードモンキー\ whateverになりましたが、これに出くわしたことはないと思います。つまり、バイナリ値が基本的な操作を行うなど、確かにカウントできるなどです。しかし、この値の「特別な」ものはわかりません。
48 numbers  binary 

2
一部の言語が最も近いEVEN整数に丸められるのはなぜですか?
Scheme(R5RS)やPython(この質問を参照)などのプログラミング言語は、値が周囲の整数の間に正確に収まる場合、最も近い偶数の整数に向かって丸めます。 この背後にある理由は何ですか? 次の計算を推論しやすくする数学的なアイデアはありますか? (R5RSは、この動作のソースとしてIEEE浮動小数点標準を参照しています。)

3
10進数では表現できないが、2進数では表現できる数値はありますか?
C#基数10での正確な表現が必要な数値に使用されるdecimal型を持ちます。たとえば0.1、基数2(floatおよびなどdouble)で表現することはできず、これらの型の変数に格納されると常に近似値になります。 逆の事実も可能かどうか疑問に思っていました。10進数では表現できないが、2進数では表現できる数字がありますか(この場合float、decimalそれらを処理するためにaの代わりにa を使用します)。


4
リトルエンディアンは勝ちましたか?
最近ビッグエンディアンとリトルエンディアンの戦いについて教えているときに、学生はそれが解決したかどうかを尋ねましたが、私は知らないことに気付きました。ウィキペディアの記事を見ると、現在最も人気のあるOS /アーキテクチャペアはリトルエンディアンを使用しているようですが、インターネットプロトコルはパケットヘッダーの数値を転送するためにビッグエンディアンを指定しています。それは現在の状況の良い要約でしょうか?現在のネットワークカードまたはCPUは、バイトオーダーの切り替えをハードウェアでサポートしていますか?

5
数値範囲を保存する最も効率的な方法は何ですか?
この質問は、範囲を格納するために必要なビット数に関するものです。または、別の言い方をすれば、指定されたビット数に対して、保存できる最大範囲とその方法は何ですか? 0〜255の範囲内のサブ範囲を保存することを想像してください。 たとえば、45-74。 上記の例を2つの符号なしバイトとして保存できますが、そこには情報の冗長性が必要だと思います。2番目の値が最初の値よりも大きいことがわかっているため、最初の値が大きい場合は2番目の値に必要なビットが少なくなり、2番目の値が大きい場合は1番目の値に必要なビットが少なくなります。 どんな圧縮技術でも限界的な結果を生むと思うので、「1バイトに保存できる最大範囲はどれくらいですか?」と尋ねる方が良い質問かもしれません。これは、2つの数値を別々に保存することで達成可能な値よりも大きくする必要があります。 この種のことを行うための標準的なアルゴリズムはありますか?

6
コンピューターが10進数を2番目の整数として保存しないのはなぜですか?
分母が2 ^ xの解以外のものである場合、コンピューターは小数の保存に問題があります。これは、小数の後の最初の桁が1/2の価値があり、2番目の1/4が1/4(または1 /(2 ^ 1)と1 /(2 ^ 2))などの価値があるためです。 コンピューターが数の小数部分を別の整数として格納できたのに、なぜあらゆる種類の丸めエラーに対処するのか(したがって正確ですか?) 私が考えることができる唯一のことは、小数の繰り返し(10を基数とする)を扱うことですが、それに対するエッジソリューションが存在する可能性があります(現在の無限大のように)。

6
乱数ジェネレーターはどのように機能しますか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 私はちょうどphp rand()関数について熟考し、それをどのようにリメイクできるかを考えていたところ、完全にばかげて思いつきました。 乱数ジェネレーターはどのように機能しますか?
23 random  numbers 

3
ユニットテストで同等の二重値を適切に比較するにはどうすればよいですか?
私は最近、時系列が本質的にある時系列モジュールを設計しましたSortedDictionnary<DateTime, double>。 次に、このモジュールが常に機能し、期待どおりの結果が得られることを確認するための単体テストを作成します。 一般的な操作は、時系列のポイント間のパフォーマンスを計算することです。 したがって、私が行うことは、たとえば{1.0、2.0、4.0}(いくつかの日付)で時系列を作成することであり、結果は{100%、100%}になると予想しています。 問題は、値{1.0、1.0}を使用して時系列を手動で作成し、(各ポイントを比較することにより)等しいかどうかを確認すると、実数のバイナリ表現で作業するときは常に不正確になるため、テストは合格しません数字。 したがって、次の関数を作成することにしました。 private static bool isCloseEnough(double expected, double actual, double tolerance=0.002) { return squaredDifference(expected, actual) < Math.Pow(tolerance,2); } そのような場合に対処する別の一般的な方法はありますか?

7
Javaに異なるサイズの数値のプリミティブがあるのはなぜですか?
Javaではプリミティブ型がありbyte、short、intとlongとのために同じものfloatとdouble。プリミティブ値に使用するバイト数を設定する必要があるのはなぜですか?渡される数値の大きさに応じて、サイズを動的に決定することはできませんでしたか? 私が考えることができる2つの理由があります: データのサイズを動的に設定することは、動的に変更できる必要があることを意味します。これにより、パフォーマンスの問題が発生する可能性がありますか? おそらくプログラマーは、誰かが特定のサイズよりも大きな数を使用できるようにしたくないでしょう。これにより、制限することができます。 私はまだ、シングルintとfloatタイプを使用するシンプルな方法で多くのことが得られたと思いますが、Javaがこの方法を採用しないことに決めた特別な理由はありましたか?

4
不安定な浮動小数点計算を識別する方法は?
数値では、不安定なスキームを識別し、その安定性を改善できることが非常に重要です。不安定な浮動小数点計算を識別する方法は? 私は多くの数値スキームが連携する非常に複雑なシミュレーションに取り組んでおり、その弱点を特定するための方法論を探しています。私は微分方程式を含む物理モデルに取り組んでいます。プロセス全体の概観は次のとおりです。 (準備手順)物理的観測Pを収集します。 シミュレーションの初期パラメーターを決定します。この用途我々は、パラメータのパラメータ空間ルックで歩く最適化アルゴリズム、Cは、いくつかの誤差関数ように、E(F(C)、P)が最小化され、Fは、パラメータの一部由来の量です。 シミュレーションエンジンのプラグC。これはEDPのオイラースキームであるため、各タイムステップで、動的を駆動する項を計算し(それぞれが複雑な関数であり、不安定になる可能性があります)、次を計算するためにこれらの動的項をオイラースキームに供給します状態。これは数千の時点で続きます。 シミュレーションの最後に、最終状態Sの関数Proof(S)を計算し、観測量から推定されるいくつかの量Require(P)と比較します。これは、結果の正式な証拠ではなく、妥当性チェックです。 また、複雑な操作の塔(オイラースキーム内、Proof内の動的な用語の計算)を見ています。そして、「不良部品」を認識して修正したいと思います。 精度が低下した浮動小数点数のソフトウェア実装を使用すると、数値スキームの不安定性が拡大し、異なる実装間の比較が容易になると推測します。これは、この質問を調査する一般的な手法ですか?Bochsとして仮想マシンを使用して、プログラムを変更せずにこれを達成することは可能ですか? 安定性の問題に適切に対処するために、数値手順の一般的な入力を対象とすることが許容される場合があります。そのため、その入力でうまく機能するように調整できます。典型的な入力のサンプルが与えられると、いくつかの中間結果をスヌーピングし、それらの統計プロファイルを準備することが可能です。繰り返しますが、これは安定性の問題を研究する一般的な手法ですか?これには仮想マシンが便利ですか?

8
数字のリストで「穴」を見つける
並べ替えられていない整数のリストに存在しない(リストの最小値より大きい)最初の(最小の)整数を見つける最も速い方法は何ですか? 私の基本的なアプローチは、それらをソートしてリストをステップすることです、より良い方法はありますか?

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