do-while: lo que es la arrogancia! XD al final si era el factorial el error! XD (eso creo)
XD pero ahorita está más feo aún pero funciona! y es increiblemente eficiente!
de ahora en adelante publicaré el codigo en el post inicial... no lo publicaré como un gran bloque sino, cada sección... olvidense de imprimir en archivo y de la modularidad! XD eso aún lo postergo
Gh057: lo había visto! XD pero me tomará otro dia adaptarlo, aunque como tiene similaridad con Ramanujan no se me debría ser tan difícil...
alguna vez vi algo de comentario de código cómicos... este merece uno que vi
aqui la correccion de Ramanujan
si no fuera tan flojo (y estuviera claro en el tema), intentara hacer operator overload para usar los operadores normales! D:
a partir de ahora modifico el post principal
XD pero ahorita está más feo aún pero funciona! y es increiblemente eficiente!
de ahora en adelante publicaré el codigo en el post inicial... no lo publicaré como un gran bloque sino, cada sección... olvidense de imprimir en archivo y de la modularidad! XD eso aún lo postergo
Gh057: lo había visto! XD pero me tomará otro dia adaptarlo, aunque como tiene similaridad con Ramanujan no se me debría ser tan difícil...
alguna vez vi algo de comentario de código cómicos... este merece uno que vi
Código
//cuando empeze a hacer esto solo dios y yo sabiamos lo que hacia, en este momento solo dios lo sabe
aqui la correccion de Ramanujan
Código
string metodo_ramanujan(unsigned long int digitos, long &exponente) { digitos/=8; digitos*=1.01; unsigned long int i, j; mpf_t sumatoria, buff_sumatoria, buff_ciclo_superior, buff_ciclo_inferior, primera_parte, buff_ciclo_inferior2, factorial_superior, factorial_inferior; mpf_init_set_ui(sumatoria, 1103); //sumatoria=0 mpf_init_set_ui(buff_sumatoria, 0); //buff_sumatoria=0 mpf_init_set_ui(buff_ciclo_superior, 0); //buff_ciclo_superior=0 mpf_init_set_ui(buff_ciclo_inferior, 0); //buff_ciclo_inferior=0 mpf_init_set_ui(primera_parte, 0); //primera_parte=0 mpf_init_set_ui(buff_ciclo_inferior2, 0); //buff_ciclo_inferior2=0 mpf_init_set_ui(factorial_superior, 1); //factorial_superior=1 mpf_init_set_ui(factorial_inferior, 1); //factorial_inferior=1 mpf_sqrt_ui(primera_parte, 2); //primera_parte=sqrt(2) mpf_mul_ui(primera_parte, primera_parte, 2); //primera_parte*=2 mpf_div_ui(primera_parte, primera_parte, 9801); //primera_parte/=9801 for (i = 1; i <= digitos; i++) { for (j = (i - 1)*4 + 1; j <= i * 4; j++) { mpf_mul_ui(factorial_superior, factorial_superior, j); } mpf_set_ui(buff_ciclo_superior, 26390); mpf_mul_ui(buff_ciclo_superior, buff_ciclo_superior, i); mpf_add_ui(buff_ciclo_superior, buff_ciclo_superior, 1103); mpf_mul(buff_ciclo_superior, buff_ciclo_superior, factorial_superior); mpf_mul_ui(factorial_inferior, factorial_inferior, i); mpf_pow_ui(buff_ciclo_inferior, factorial_inferior, 4); mpf_set_ui(buff_ciclo_inferior2, 396); mpf_pow_ui(buff_ciclo_inferior2, buff_ciclo_inferior2, 4 * i); mpf_mul(buff_ciclo_inferior, buff_ciclo_inferior, buff_ciclo_inferior2); mpf_div(buff_sumatoria, buff_ciclo_superior, buff_ciclo_inferior); mpf_add(sumatoria, sumatoria, buff_sumatoria); } mpf_mul(sumatoria, sumatoria, primera_parte); mpf_ui_div(sumatoria, 1, sumatoria); return mpf_get_str(NULL, &exponente, 10, 0, sumatoria); }
si no fuera tan flojo (y estuviera claro en el tema), intentara hacer operator overload para usar los operadores normales! D:
a partir de ahora modifico el post principal
Disculpa por revivir el post. Muy buen post, en definitiva Pi tiene muchos decimales, que en calculos escolares me basta con 3.1416 xD, Pero jamás entendí la ecuacuón de Ramanujan.
Me volví loco y opté por enender otras, ¿me la puedes explicar con peras y manzanas?
Un Cordial Saludo