fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. #include <iostream> // Cargo librerías (colecciones de funciones ya hechas que hacen cositas): "iostream" me permite sacar texto
  13. #include <cmath> // y números por el terminal, para que puedas ver el valor de pi, y "cmath" es una colección de funciones
  14. #include <fstream> // matemáticas que necesito, como elevar al cuadrado y hacer la raiz cuadrada.
  15.  
  16. using namespace std; // A efectos práticos, esto es para no tener que poner "std" todo el rato.
  17.  
  18. int main(){ // ¡Comenzamos!
  19.  
  20. // Imprimimos en el terminal... la bienvenida ;)
  21.  
  22. cout<<endl<<endl;
  23. cout<<" ╔═╗ ┬ ┬┌─┐┌┐┌┌┬┐┬ ┬┌┬┐ ╔═╗┬─┐┌─┐┌─┐┌┬┐┬ ┬┬─┐┌─┐"<<endl;
  24. cout<<" ║═╬╗│ │├─┤│││ │ │ ││││ ╠╣ ├┬┘├─┤│ │ │ │├┬┘├┤"<<endl;
  25. cout<<" ╚═╝╚└─┘┴ ┴┘└┘ ┴ └─┘┴ ┴ ╚ ┴└─┴ ┴└─┘ ┴ └─┘┴└─└─┘"<<endl;
  26. cout<<" ______________________________________________________________________ "<<endl<<endl;
  27. cout<<" PRESENTA... "<<endl;
  28. cout<<endl;
  29. cout<<"╔═╗┌─┐┬ ┌─┐┬ ┬┬ ┌─┐ ┌┬┐┌─┐ ╔═╗┬ ╔╦╗┌─┐┌┬┐┌─┐┌┬┐┌─┐ ┌┬┐┌─┐ ╔╦╗┌─┐┌┐┌┌┬┐┌─┐┌─┐┌─┐┬─┐┬ ┌─┐"<<endl;
  30. cout<<"║ ├─┤│ │ │ ││ │ │ ││├┤ ╠═╝│ ─── ║║║├┤ │ │ │ │││ │ ││├┤ ║║║│ ││││ │ ├┤ │ ├─┤├┬┘│ │ │"<<endl;
  31. cout<<"╚═╝┴ ┴┴─┘└─┘└─┘┴─┘└─┘ ─┴┘└─┘ ╩ ┴ ╩ ╩└─┘ ┴ └─┘─┴┘└─┘ ─┴┘└─┘ ╩ ╩└─┘┘└┘ ┴ └─┘└─┘┴ ┴┴└─┴─┘└─┘"<<endl;
  32.  
  33. cout<<endl<<" ¡Con todos los números aleatorios que quieras! ¡Garantizado! ;)"<<endl<<endl;
  34.  
  35. cout<<"_____________________________________________________________________________________________"<<endl<<endl;
  36. cout<<" ADVERTENCIA "<<endl;
  37. cout<<"Si está usando este código en un compilador online, puede ser que utilizar un número excesivo"<<endl;
  38. cout<<" de dardos haga que el cálculo necesite tanto tiempo para ser computado que el compilador lo"<<endl;
  39. cout<<" aborte automáticamente. En ese caso, pruebe un número menor."<<endl;
  40.  
  41. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  42. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  43. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  44.  
  45. double N = 12345; // NÚMERO DE PUNTOS ALEATORIOS A LANZAR. ¡CAMBIAD ESTO!
  46.  
  47. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  48. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  49. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  50.  
  51. // Se expulsa tal número por terminal:
  52.  
  53. cout<<endl<<" ╔════════════════════════════════════════════════════════════════════════════════════════╗";
  54. cout<<endl<<" ║ Número de 'dardos' a lanzar : "<<N;
  55. cout<<endl<<" ╚════════════════════════════════════════════════════════════════════════════════════════╝";
  56.  
  57. double r=1; // RADIO DEL CÍRCULO: Puedes cambiar este número si lo deseas; el tamaño de la circunferencia no afecta a pi.
  58.  
  59. srand((unsigned)time(0)); // Para que el ordenador nos genere los números aleatorios, hay que darle una semilla. Normalmente
  60. // suele cogerse el tiempo del reloj del ordenador en ese momento.
  61.  
  62. double x; // Defino las coordenadas de cada punto aleatorio. No queremos almacenarlas; reescribiremos estas variable.
  63. double y;
  64.  
  65. double c=0; // Defino el número de puntos dentro del círculo (de la porción). Partimos de 0.
  66.  
  67. //int m=1e7;
  68.  
  69. int cota=10; // COTA. NÚMERO DE REPETICIONES DEL MÉTODO. Puedes cambiar este número si lo deseas.
  70.  
  71. double pi_ar[cota]; // Defino el array que voy a llenar de los distintos pi's que obtenga.
  72.  
  73.  
  74. for (int j=0; j<cota; j++) { // Primer BUCLE. Repetirá Montecarlo "cota" veces.
  75.  
  76. for (int i=0; i<N; i++) { // Segundo BUCLE. En cada vuelta, lanza un dardo.
  77.  
  78. x=(double)rand()/(double)RAND_MAX; // Generamos dos números aleatorios desde 0 a 1. Nótese que en los siguientes
  79. y=(double)rand()/(double)RAND_MAX; // lanzamientos estos números serán reescritos.
  80.  
  81. x=x*r; // Dilato estos números hasta el radio. Ahora van de 0 a "r". Estas son las coordenadas
  82. y=y*r; // en las que ha caido un dardo.
  83.  
  84. if (x*x+y*y<r*r) { // Compruebo si el dardo está o no dentro del circulo. Si es así, c aumentará en uno.
  85. c++;
  86. }
  87. } // FIN Segundo BUCLE
  88.  
  89. pi_ar[j]=4*c/N; // Calculo el pi generado en esta tanda y lo almaceno.
  90. c=0; // Inicializo a cero para la siguiente tanda de disparos.
  91.  
  92. } // FIN Primer BUCLE
  93.  
  94. double pi=0; // Defino pi y el error de pi. Los inicializo a cero por el método para obtener la media y la SD.
  95. double err=0;
  96.  
  97. for (int j=0; j<cota; j++) {
  98. pi = pi_ar[j]/cota + pi; // Hago la media de todos los pi's calculados
  99. }
  100.  
  101. for (int j=0; j<cota; j++) {
  102. err = err + pow(pi-pi_ar[j],2)/cota; // Calculo la desviación estándar de los pi's calculados. Consulta su definición
  103. } // para más info, pero es sumar estos términos y...
  104.  
  105. err = sqrt(err); // ... hacer la raiz cuadrada de lo que te salga.
  106.  
  107.  
  108. cout.precision(15); // Estos son el número de digitos que quiero que se expulsen por pantalla. Puedes aumentarlo si quieres.
  109.  
  110. // Sacamos los resultados por pantalla para disfrute del usuario:
  111.  
  112. cout<<endl<<" ╔════════════════════════════════════════════════════════════════════════════════════════╗";
  113. cout<<endl<<" ║ "<<"Pi = "<<pi<<" +/- "<<err;
  114. cout<<endl<<" ║";
  115. cout<<endl<<" ║ "<<"o, dicho de otra manera, el valor de pi se encuentra entre";
  116. cout<<endl<<" ║ "<<pi+err<<" y "<<pi-err;
  117. cout<<endl<<" ╚════════════════════════════════════════════════════════════════════════════════════════╝"<<endl<<endl;
  118.  
  119.  
  120. return 0; // Y hemos terminado. Cerramos el chiringuito.
  121.  
  122. }
  123. // your code goes here
  124. }
  125. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:12: error: illegal character: '#'
	#include <iostream>  // Cargo librer?as (colecciones de funciones ya hechas que hacen cositas): "iostream" me permite sacar texto
	^
Main.java:13: error: illegal character: '#'
#include <cmath>     // y n?meros por el terminal, para que puedas ver el valor de pi, y "cmath" es una colecci?n de funciones
^
Main.java:12: error: not a statement
	#include <iostream>  // Cargo librer?as (colecciones de funciones ya hechas que hacen cositas): "iostream" me permite sacar texto
	         ^
Main.java:14: error: illegal character: '#'
#include <fstream>   // matem?ticas que necesito, como elevar al cuadrado y hacer la raiz cuadrada.
^
Main.java:13: error: not a statement
#include <cmath>     // y n?meros por el terminal, para que puedas ver el valor de pi, y "cmath" es una colecci?n de funciones
         ^
Main.java:16: error: ';' expected
using namespace std;  // A efectos pr?ticos, esto es para no tener que poner "std" todo el rato.
     ^
Main.java:18: error: ';' expected
int main(){           // ?Comenzamos!
        ^
Main.java:22: error: not a statement
    cout<<endl<<endl;
              ^
Main.java:23: error: not a statement
    cout<<"                       ??? ? ??????????? ????  ???????????????? ???????"<<endl;
                                                                                   ^
Main.java:24: error: not a statement
    cout<<"                       ????? ??????? ? ? ????  ?? ???????   ? ? ??????"<<endl;
                                                                                  ^
Main.java:25: error: not a statement
    cout<<"                       ???????? ???? ? ???? ?  ?  ???? ???? ? ?????????"<<endl;
                                                                                   ^
Main.java:26: error: not a statement
    cout<<"            ______________________________________________________________________     "<<endl<<endl;
                                                                                                         ^
Main.java:27: error: not a statement
    cout<<"                                          PRESENTA...                                  "<<endl;
                                                                                                   ^
Main.java:28: error: not a statement
    cout<<endl;
        ^
Main.java:29: error: not a statement
    cout<<"???????  ???? ??  ???  ??????  ????       ??????????????????  ??????  ?????????????????????????  ???"<<endl;
                                                                                                                ^
Main.java:30: error: not a statement
    cout<<"?  ????  ?  ? ??  ? ?   ????   ????  ???  ?????  ? ? ? ??? ?   ????   ???? ???? ? ?? ?  ???????  ? ?"<<endl;
                                                                                                                ^
Main.java:31: error: not a statement
    cout<<"???? ????????????????  ??????  ?  ?       ? ???? ? ?????????  ??????  ? ??????? ? ??????? ??????????"<<endl;
                                                                                                                ^
Main.java:33: error: not a statement
    cout<<endl<<"                  ?Con todos los n?meros aleatorios que quieras! ?Garantizado! ;)"<<endl<<endl;
                                                                                                         ^
Main.java:35: error: not a statement
    cout<<"_____________________________________________________________________________________________"<<endl<<endl;
                                                                                                               ^
Main.java:36: error: not a statement
    cout<<"                                         ADVERTENCIA                                     "<<endl;
                                                                                                     ^
Main.java:37: error: not a statement
    cout<<"Si est? usando este c?digo en un compilador online, puede ser que utilizar un n?mero excesivo"<<endl;
                                                                                                         ^
Main.java:38: error: not a statement
    cout<<" de dardos haga que el c?lculo necesite tanto tiempo para ser computado que el compilador lo"<<endl;
                                                                                                        ^
Main.java:39: error: not a statement
    cout<<"               aborte autom?ticamente. En ese caso, pruebe un n?mero menor."<<endl;
                                                                                       ^
Main.java:53: error: not a statement
    cout<<endl<<"  ??????????????????????????????????????????????????????????????????????????????????????????";
              ^
Main.java:54: error: not a statement
    cout<<endl<<"  ?                         N?mero de 'dardos' a lanzar :   "<<N;
                                                                              ^
Main.java:55: error: not a statement
    cout<<endl<<"  ??????????????????????????????????????????????????????????????????????????????????????????";
              ^
Main.java:71: error: ']' expected
    double pi_ar[cota];        // Defino el array que voy a llenar de los distintos pi's que obtenga.
                 ^
Main.java:71: error: illegal start of expression
    double pi_ar[cota];        // Defino el array que voy a llenar de los distintos pi's que obtenga.
                     ^
Main.java:112: error: not a statement
    cout<<endl<<"  ??????????????????????????????????????????????????????????????????????????????????????????";
              ^
Main.java:113: error: not a statement
    cout<<endl<<"  ?                       "<<"Pi = "<<pi<<"  +/-  "<<err;
                                                                    ^
Main.java:114: error: not a statement
    cout<<endl<<"  ?";
              ^
Main.java:115: error: not a statement
    cout<<endl<<"  ?                "<<"o, dicho de otra manera, el valor de pi se encuentra entre";
                                     ^
Main.java:116: error: not a statement
    cout<<endl<<"  ?                       "<<pi+err<<"   y   "<<pi-err;
                                                               ^
Main.java:117: error: not a statement
    cout<<endl<<"  ??????????????????????????????????????????????????????????????????????????????????????????"<<endl<<endl;
                                                                                                                    ^
34 errors
stdout
Standard output is empty