Pregunta

Estoy haciendo algunos modelos de población (por diversión, principalmente para jugar con los conceptos de capacidad de carga y la función de logística). El modelo funciona con múltiples planetas (unos 100.000 de ellos, en este momento). Cuando la población alcanza una capacidad de carga en un planeta, los habitantes comienzan a ramificarse hacia planetas cercanos, y así sucesivamente.

Problema: más de 100,000 planetas pueden albergar MUCHAS personas. Más de un C # Decimal puede manejar. Dado que estoy haciendo promedios y otras cosas con estos números, necesito la capacidad de trabajar con puntos flotantes (o simplemente uso una biblioteca BigInt).

¿Alguien sabe de una clase BigFloatingPoint (o lo que sea) que pueda usar? Google está siendo muy inútil hoy. Probablemente podría escribir una clase que funcione lo suficientemente bien, pero prefiero usar algo preexistente, si tal cosa existe.

¿Fue útil?

Solución

Usa las unidades de megapeople para lograr más espacio para la cabeza.

Además, Decimal le permite tener 100,000 planetas cada uno con 100000000000000 veces la población de la Tierra, si mi aritmética es correcta. ¿Estás seguro de que eso no es suficiente?

Otros consejos

Incluso si cada planeta tiene 100 mil millones de personas, el total sigue siendo solo 1E16. Esto está dentro del límite de un entero de 64 bits con signo (2 ^ 63 va a 9.223.372.036.854.775.807, que es casi 1E19 ...

Podrías ir con un millón de millones de personas por planeta, con 100000 planetas antes de que te acercaras al límite ...

En cuanto a fracciones y promedios y demás, ¿no puedes convertir a Float o doble cuando haces tales cálculos?

¿Realmente necesitas una precisión de 28 dígitos? ¿Podrías usar el punto flotante para algunos cálculos?

(doble para ser exactos: ± 5.0e - 324 a ± 1.7e308)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top