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