Atividade 13
Leia com atenção as instruções abaixo.
Valor: 2,0 pontos na 3ª Nota.
Data da Entrega Limite: 16/07/2022
Formato de Entrega:
- Um arquivo chamado atv13_monte_carlo.c ou atv12_monte_carlo.c.
A entrega deve ser feita via chat privado no Slack.
A atividade é individual.
Questão 01 - 2,0 Pontos
Nesta atividade, devemos calcular uma aproximação do número \(\pi\) usando métodos de monte carlo.

Considere a figura acima e a descrição do método. De forma resumida, se você inscrever uma circunferência dentro de um quadrado e gerar pontos aleatórios dentro do quadrado, o valor de \(\pi\) pode ser aproximado dividindo o número de pontos que faz parte da circunferência sobre o total de pontos gerados, vezes a área do quadrado. No link acima temos exemplos de pseucódigo e códigos para o algoritmo que realiza esse cálculo.
Você deve fazer um programa MPI que:
- Apenas o processo 0 lê dos parâmetros um número inteiro \(N\) que representa o total de pontos que deve ser gerados.
- O processo 0 distribui esse valor para todos os outros processos.
- Cada processo deve gerar \(N / numP\) pontos, em que \(N\) é o total de pontos e \(numP\) o número de processos, e contabilizar quantos caem dentro do círculo.
- A soma de todos os acertos de todos os processos deve ser feita e consolidade no processo 0.
- O processo 0 deve fazer as operações finais e exibir o valor aproximado de \(\pi\).
O uso de operações coletivas facilita bastante a resolução desta ativdade.