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