Programación II
  • Java 53%
  • Makefile 47%
Find a file
2025-03-08 00:38:35 +01:00
docs feat: add documentation 2025-03-08 00:36:25 +01:00
src feat: add documentation 2025-03-08 00:36:25 +01:00
.gitignore feat: initial commit 2025-03-07 19:03:24 +01:00
LICENSE feat: initial commit 2025-03-07 19:03:24 +01:00
Makefile feat: initial commit 2025-03-07 19:03:24 +01:00
README.md fix(docs): update diagram link in README 2025-03-08 00:38:35 +01:00

Practica 3 - Programación 2

Esta práctica es la misma que las practicas 1 y 2, pero haciendo uso de streams y expresiones lambda.

En este fichero se encuentra una pequeña demonstración de los puntos que generamos mediante el stream.

Explicación / Teoría

El método usado para obtener la aproximación del numero PI, es el método Monte-Carlo.

Estos son los pasos que usamos para generar el una aproximación del número PI de manera iterativa:

  • Se genera un punto aleatorio en un cuadrado de lado 1 (con Math.random).
  • Verificamos si el punto esta dentro de un círculo de radio 1 (situado en parte dentro del cuadrado)
  • Contamos los puntos que caen dentro del círculo.
  • Usamos la proporción de puntos dentro del círculo respecto al total para aproximar PI.

La formula usada para la generación del numero PI es la siguiente:

PI ≈ 4 * (puntos dentro del círculo) / (total puntos generados)

Esto tambien significa que cuanto mas puntos (parametro "pasos") generamos, mas nos aproximaremos al numero PI.

Uso

Primero compile el programa con el comando :

make

Lance el programa :

./a.out <numeroDePasos>

Output

// Input : 1000000000

El número PI es 3.141641064

Nota: Con numeros grandes, la ejecución puede tardar un poco mas en finalizar, ya que el numero de iteraciones es mayor.

Tiempo de ejecución

Para medir el tiempo de ejecución, se puede usar el comando time de esta manera : time ./a.out <numeroDePasos>. Por ejemplo, para el resultado anterior, en un Macbook M1 Pro tomó un total de 31,31s (varía según el hardware entre otros factores).

image

Diagrama UML


Class Diagram