6

私はいくつかの人口モデリングを行っています (楽しみのために、主に収容力と物流機能の概念で遊ぶためです)。このモデルは、複数の惑星 (現在、約 100,000 個) で動作します。人口が 1 つの惑星の収容能力に達すると、住民は近くの惑星に分岐し始めます。

問題: 100,000 以上の惑星には多くの人々が住むことができます。C# でDecimal処理できる以上のもの。これらの数値を使用して平均やその他の処理を行っているため、浮動小数点を処理する機能が必要です (または BigInt ライブラリを使用するだけです)。

私が使用できる BigFloatingPoint クラス (または何でも) を知っている人はいますか? 今日、Google は非常に役立たずです。おそらく十分に機能するクラスを作成することもできますが、そのようなものが存在する場合は、既存のものを使用したいと思います。

4

3 に答える 3

12

メガピープルの単位を使用して、より多くのヘッドルームを実現します。

また、私の計算が正しければ、Decimal を使用すると、地球の人口の 100000000000000 倍の惑星を 100,000 個持つことができます。それだけでは十分ではありませんか?

于 2009-01-07T19:29:50.093 に答える
2

各惑星に 1000 億人がいるとしても、合計は 1E16 にすぎません。これは、符号付き 64 ビット整数 (2^63 は 9,223,372,036,854,775,807 になり、ほぼ 1E19 になります...) の制限内に収まっています。

限界に近づく前に、100000 惑星で、1 惑星あたり 100 万人で行くことができます...

分数や平均などについて、そのような計算を行うときに Float や double に変換できませんか?

于 2009-01-07T19:32:38.030 に答える
1

本当に 28 桁の精度が必要ですか? いくつかの計算に浮動小数点を使用できますか?

(正確には double: ±5.0e−324 ~ ±1.7e308)

于 2009-01-07T19:10:16.233 に答える