Za pomocą metody Monte Carlo wyznacz stosunek pola koła wpisanego w kwadrat do pola tego kwadratu. Użyj n losowych punktów. Przetestuj działanie programu dla n = 10000.
Specyfikacja problemu:
Dane:
n – liczba naturalna
Wynik:
stosunek pola koła wpisanego w kwadrat do pola tego kwadratu
RDoVVawc2A7Ta
Przykładowe rozwiazanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny cstdlib zamknij nawias ostrokątny.
Linia 4. using namespace std średnik.
Linia 6. double wyznacz podkreślnik stosunek otwórz nawias okrągły int liczba podkreślnik losowan zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. int liczba podkreślnik trafien znak równości 0 średnik.
Linia 9. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny liczba podkreślnik losowan średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. prawy ukośnik prawy ukośnik losowe liczby z przedziału otwórz nawias ostrokątny minus 1 przecinek 1 zamknij nawias ostrokątny.
Linia 11. double x znak równości 2 asterysk double otwórz nawias okrągły rand otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik RAND podkreślnik MAX minus 1 średnik.
Linia 12. double y znak równości 2 asterysk double otwórz nawias okrągły rand otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik RAND podkreślnik MAX minus 1 średnik.
Linia 14. if otwórz nawias okrągły x asterysk x plus y asterysk y otwórz nawias ostrokątny znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. plus plus liczba podkreślnik trafien średnik.
Linia 16. zamknij nawias klamrowy.
Linia 17. zamknij nawias klamrowy.
Linia 19. return double otwórz nawias okrągły liczba podkreślnik trafien zamknij nawias okrągły prawy ukośnik liczba podkreślnik losowan średnik.
Linia 20. zamknij nawias klamrowy.
Linia 22. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 23. int n znak równości 10000 średnik.
Linia 24. cout otwórz nawias ostrokątny otwórz nawias ostrokątny wyznacz podkreślnik stosunek otwórz nawias okrągły n zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 26. return 0 średnik.
Linia 27. zamknij nawias klamrowy.
211
Ćwiczenie 2
Za pomocą metody Monte Carlo wyznacz stosunek objętości kuli wpisanej w sześcian do objętości tego sześcianu. Użyj n losowych punktów. Wykorzystaj równanie kuli o środku w punkcie :
Przetestuj działanie programu dla n = 10000.
Specyfikacja problemu:
Dane:
n – liczba naturalna
Wynik:
stosunek objętości kuli wpisanej w sześcian do objętości tego sześcianu
Rd4hcKos3XH8p
Przykładowe rozwiazanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny cstdlib zamknij nawias ostrokątny.
Linia 4. using namespace std średnik.
Linia 6. double wyznacz podkreślnik stosunek otwórz nawias okrągły int liczba podkreślnik losowan zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. int liczba podkreślnik trafien znak równości 0 średnik.
Linia 9. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny liczba podkreślnik losowan średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. prawy ukośnik prawy ukośnik losowe liczby z przedziału otwórz nawias ostrokątny minus 1 przecinek 1 zamknij nawias ostrokątny.
Linia 11. double x znak równości 2 asterysk double otwórz nawias okrągły rand otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik RAND podkreślnik MAX minus 1 średnik.
Linia 12. double y znak równości 2 asterysk double otwórz nawias okrągły rand otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik RAND podkreślnik MAX minus 1 średnik.
Linia 13. double z znak równości 2 asterysk double otwórz nawias okrągły rand otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik RAND podkreślnik MAX minus 1 średnik.
Linia 15. if otwórz nawias okrągły x asterysk x plus y asterysk y plus z asterysk z otwórz nawias ostrokątny znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. plus plus liczba podkreślnik trafien średnik.
Linia 17. zamknij nawias klamrowy.
Linia 18. zamknij nawias klamrowy.
Linia 20. return double otwórz nawias okrągły liczba podkreślnik trafien zamknij nawias okrągły prawy ukośnik liczba podkreślnik losowan średnik.
Linia 21. zamknij nawias klamrowy.
Linia 23. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 24. int n znak równości 10000 średnik.
Linia 25. cout otwórz nawias ostrokątny otwórz nawias ostrokątny wyznacz podkreślnik stosunek otwórz nawias okrągły n zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 27. return 0 średnik.
Linia 28. zamknij nawias klamrowy.
21
Ćwiczenie 3
Napisz program, który za pomocą metody Monte Carlo obliczy pole koła. Przetestuj swój program dla koła o promieniu Wynik wypisz z dokładnością do trzech miejsc po przecinku (nie zaokrąglaj).
Specyfikacja:
Dane:
r - promień koła, którego pole należy obliczyć; liczba rzeczywista
Wynik:
pole koła o promieniu r
R1ZVvvsBqxNt8
Przykładowe rozwiazanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny cstdlib zamknij nawias ostrokątny.
Linia 4. using namespace std średnik.
Linia 6. double wyznaczPoleKola otwórz nawias okrągły double promien przecinek int liczba podkreślnik losowan zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. int liczba podkreślnik trafien znak równości 0 średnik.
Linia 9. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny liczba podkreślnik losowan średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. prawy ukośnik prawy ukośnik losowe liczby z przedziału otwórz nawias ostrokątny minus promien przecinek promien zamknij nawias okrągły.
Linia 11. double x znak równości 2 asterysk promien asterysk otwórz nawias okrągły rand otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik RAND podkreślnik MAX minus promien średnik.
Linia 12. double y znak równości 2 asterysk promien asterysk otwórz nawias okrągły rand otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik RAND podkreślnik MAX minus promien średnik.
Linia 14. if otwórz nawias okrągły x asterysk x plus y asterysk y otwórz nawias ostrokątny znak równości promien asterysk promien zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. plus plus liczba podkreślnik trafien średnik.
Linia 16. zamknij nawias klamrowy.
Linia 17. zamknij nawias klamrowy.
Linia 19. return 4 asterysk promien asterysk promien asterysk liczba podkreślnik trafien prawy ukośnik liczba podkreślnik losowan średnik.
Linia 20. zamknij nawias klamrowy.
Linia 22. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 23. double r znak równości 2 średnik.
Linia 24. double wynik znak równości wyznaczPoleKola otwórz nawias okrągły r przecinek 10000000 zamknij nawias okrągły średnik.
Linia 25. cout otwórz nawias ostrokątny otwórz nawias ostrokątny wynik otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 27. return 0 średnik.
Linia 28. zamknij nawias klamrowy.