elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Mills' constant
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mills' constant  (Leído 1,820 veces)
GGZ

Desconectado Desconectado

Mensajes: 144



Ver Perfil
Mills' constant
« en: 10 Septiembre 2015, 21:46 pm »

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?

Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main (void){
  5.    int n;
  6.    int exponent;
  7.    double mills=1.30637788386308069046861449260260571291678458515671364436805375996643405376682659;
  8.  
  9.    for (n=1; n<10; n++){
  10.            exponent=pow(3,n);
  11.            printf ("%f\n", pow(mills,exponent)  );
  12.    }
  13.  
  14. return 0;}
  15.  


A lo último me tira:
Código:
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!


« Última modificación: 10 Septiembre 2015, 21:50 pm por nisteeklod » En línea

LET'S DO STUFF!!
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Mills' constant
« Respuesta #1 en: 10 Septiembre 2015, 22:09 pm »

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.

Código
  1. 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.


En línea

GGZ

Desconectado Desconectado

Mensajes: 144



Ver Perfil
Re: Mills' constant
« Respuesta #2 en: 10 Septiembre 2015, 22:24 pm »

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!
« Última modificación: 10 Septiembre 2015, 22:25 pm por nisteeklod » En línea

LET'S DO STUFF!!
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Mills' constant
« Respuesta #3 en: 10 Septiembre 2015, 22:41 pm »

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
En línea

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

Desconectado Desconectado

Mensajes: 144



Ver Perfil
Re: Mills' constant
« Respuesta #4 en: 10 Septiembre 2015, 23:32 pm »

Buenisimo!, eso era lo que buscaba!

Saludos!  ;D
En línea

LET'S DO STUFF!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como pasar una cadena char a hexadecimal por argumento a un constant char?
Programación C/C++
ahaugas 3 5,631 Último mensaje 13 Enero 2013, 14:09 pm
por ahaugas
AYUDA Error: [Warning] multi-character character constant [-Wmultichar]
Programación C/C++
M-Stewart612 3 3,813 Último mensaje 5 Octubre 2018, 07:20 am
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines