7.11 Tarea

  1. Definir, diseñar e implementar la clase o las clases necesarias para el objeto/entidad/concepto: número complejo.

  2. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: vector en \(\mathbb{R}^3\).

  3. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: círculo, y con las clases derivadas para los conceptos: esfera y cilindro.

  4. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: generador de valores seudoaleatorios “igualmente probables”.

  5. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución Bernoulli.

  6. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución binomial.

  7. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución Poisson.

  8. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución uniforme continua.

  9. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución logística.

  10. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución normal.

  11. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución exponencial (parametrizada con parámetro de escala, en vez de parámetro de tasa).

  12. Definir, diseñar e implementar la clase o las clases necesarias para el concepto: (variable aleatoria con) distribución Erlang (parametrizada con parámetro de escala, en vez de parámetro de tasa).

Para todas las clases tenga en cuenta que:

  • La clase debe tener un método constructor y el método que da el texto para el print.
  • La clase debe tener el debido encapsulamiento de sus atributos (utilice la manera en que esto se puede realizar a partir de Python 2.4, es decir con los decorators respectivos). Además, todos los atributos se deben considerar protegidos y de lectura-escritura.
  • La clase puede que no requiera almacenar datos (atributos), y por lo tanto, puede que tenga únicamente funcionalidades (métodos).
  • Una clase hija debe aprovechar todos los métodos que pueda de la clase padre.
  • EN CLASE, ENTRE TODOS, DECIDIREMOS Y DEFINIREMOS MÁS DETALLES ACERCA DE LAS CONDICIONES QUE DEBE CUMPLIR CADA CLASE.

Para las clases asociadas a distribuciones de probabilidad tenga en cuenta que:

  • La clase debe tener métodos para: la función de masa de probabilidad o la función de densidad (debe tener un parámetro real \(x\)), la función de distribución acumulativa (debe tener un parámetro real \(x\)), la función cuantil (debe tener un parámetro real \(0 < p < 1\)), el cálculo de una probabilidad entre dos valores dados (incluyendo los dos valores dados, es decir obtener o calcular \(\mathrm{P}\left[x_1 \leq X \leq x_2\right]\). Debe tener dos parámetros reales \(x_1\) y \(x_2\)), la media, la varianza, la desviación estandar, el coeficiente de asimetría, el coeficiente de curtosis (Excess Kurtosis / Fisher’s Kurtosis), la moda, la mediana, el rango intercuartílico y la generación de un valor seudoaleatorio de la respectiva distribución (debe tener un parámetro de la clase asociada al concepto: generador de valores seudoaleatorios “igualmente probables”). Todos estos métodos harán los cálculos correspondientes para la instancia respectiva de la clase (es decir, para la respectiva variable aleatoria / distribución que representa dicha instancia).
  • Para las distribuciones discretas, se deben tener atributos adicionales para almacenar las probabilidades de los dos primeros valores que puede tomar la respectiva variable aleatoria. Dichas probabilidades deben ser calculadas y almacenadas en los correspondientes atributos en el momento en que se crea una instancia de la clase.

A continuación encontrarán algunas de las distribuciones más conocidas y utilizadas, junto con las relaciones que hay entre ellas ([http://www.math.wm.edu/~leemis/chart/UDR/UDR.html](http://www.math.wm.edu/~leemis/chart/UDR/UDR.html)):

También para una consulta (rápida pero precavida) pueden ir a: https://en.wikipedia.org/wiki/List_of_probability_distributions.