Mills' constant

Iniciado por GGZ, 10 Septiembre 2015, 21:46 PM

0 Miembros y 1 Visitante están viendo este tema.

GGZ

Buenas!

Defición - Wikipedia:
In number theory, Mills' constant is defined as the smallest positive real number A such that the floor of the double exponential function is a prime number, for all positive integers n.

¿Cómo hago para que no desborde el tipo, cómo debo definirla?

#include <stdio.h>
#include <math.h>

int main (void){
   int n;
   int exponent;
   double mills=1.30637788386308069046861449260260571291678458515671364436805375996643405376682659;

   for (n=1; n<10; n++){
           exponent=pow(3,n);
           printf ("%f\n", pow(mills,exponent)  );
   }

return 0;}



A lo último me tira:
1.#INF00
1.#INF00


Usé la funcion floor pero el tema es que redondea mal y me tira números que no son primos.

Saludos!
LET'S DO STUFF!!

ivancea96

floor() no redondea, simplemente saca el numero entero más cercano inferior (le quita los decimales).
ceil() hace al revés, coge el siguiente numero entero.
round() redondea.

double mills=1.30637788386308069046861449260260571291678458515671364436805375996643405376682659;

Puedes poner ese número si quieres, pero como el 80% de las cifras no las va a coger, tenlo en cuenta.

GGZ

#2
Bueno, está bien entonces porque necesito aplicar la función "piso" (por eso esta notación matemática ) que es justamente floor, en teoría. Ceil sería la función "techo"

Pero mi pregunta es como hago para que calcule más números?

Podría transformarlo a un string y trabajarlo allí, es el mismo problema que cuando tenés que calcular la factorial de un número.

Esa es mi pregunta, ¿qué tipo debería usar ?

Saludos!
LET'S DO STUFF!!

engel lex

lo que buscas es hacer "calculos de precisión arbitraria", haciendola con string puede ser muy lento... es preferible que uses GMP

yo hice un post donde podía calcular pi a X cantidad de decimales (10mil decimales en 1 segundo)

http://foro.elhacker.net/buscador-t412338.0.html

entre las primeras lineas está el link al otro post donde medio explico como montar GMP
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

GGZ

Buenisimo!, eso era lo que buscaba!

Saludos!  ;D
LET'S DO STUFF!!