#5 menos por menos es más, aquí o en el estado de Washington, con números enteros, racionales, reales o complejos. Así que, otra vez más, y contando, Microsoft la caga y echa balones fuera.
#7 Esa definición de "x multiplicado por si mismo y veces" es válida para enteros, pero no sirve en números reales. ¿Como haces para calcular bajo esa definición -1pi?
Si ambos valores fuesen integer, habría devuelto 1, pero entonces la expresión debería indicarlo añadiendo el sufijo L a los valores numéricos para que entienda que estamos hablando de valores integer.
Por defecto los tomará como double, es decir, como valores numérico no enteros. Aunque en este caso los decimales sean 0, considerará que los argumentos no son valores enteros, sino valores reales cuya aproximación en el rango de error del tipo double arroja el… » ver todo el comentario
#1 No
Los valores bajo math los toma como funciones matemáticas, no como double, aun Cuando fuese 1 + 1.Esto sirve para no tener que hacer eso que dices tu, que sería el especificar cada valor o símbolo.
Osease, el valor funcional de -1 está mal en alguna parte, puede ser como parte lógica o de memoria, perdiendo en algún punto información de esta variable.
#4Los valores bajo math los toma como funciones matemáticas, no como double
Eso es irrelevante. Las funciones también tienen definido un tipo de salida. (x) => 4 no es la misma función si la salida se considera como integer que si la salida se considera como double. Al final lo que tienes es una pipe de datos y lo que importa es como considera los valores de entrada.
Y la función xy no es igual en números enteros que en numeros reales.
En números enteros, -12 es igual a 1.
En números reales, -12 no está definido.
• Si x > 0, puedes calcular x^y para cualquier y.
• Si x < 0 y y es irracional, no está definido en |R
• Si x < 0 y y es fracción con denominador impar → sí está definido.
• Si y tiene denominador par → no está definido (a menos que pases a números complejos).
Así que -1^2 tienes x<1 y la potencia es una fracción con denominador impar (1, de 2/1), estando definido. .
#6 El problema es que en computación no puedes saber si un número es irracional, fracción con denominador par o fracción con denominador impar, ya que solo puedes acceder a un número reducido de valores decimales y solo con esa información podría ser cualquiera de los tres casos. Es decir, siempre habría de considerarse como no definido (para x<0).
#9 Por supuesto que lo sabes, ya que los lenguajes especifican el tipo de sus variables y valores. En lenguajes no tipados, se especifica como se almacenan los mismos.
#9 Estás muy valiente haciendo según qué afirmaciones:
- Los números cuya fracción en denominador es una potencia de 2 tienen representación exacta en coma flotante.
- Los que tienen factores primos distintos de 2 (como 5, 3, 7…) tienen representación periódica infinita en binario.
Llevas bastantes afirmaciones que no compruebas.
Edit:
int es_fraccion_binaria(double numero) {
const int max_iteraciones = 60; // Límite razonable por precisión
double parte_entera;
double fracc =… » ver todo el comentario
#12 El exponente también es double, es deci, que lo único que sabes es que es un valor cuya aproximación en precisión double es 2.
Es decir, el cálculo podría ser -12.0000000000000000005 (truncado a la precisión de los tipos), Y devolver el valor 1 para esa operación sería incorrecto.
Cuando devuelves un valor de un cálculo numérico, tienes que deolver un valor razonable para los valores dentro del rango de error del tipo de entrada.
No me queda claro si ha hecho el juego de palabras aposta o le ha salido natural.
Que ocurre si hace lo mismo en Java ?
Pero voy a hacer lo mismo que ese "otros", poner un enlace que no me he leído www.uv.es/gomezb/4Lajustificaciondeladeregla.pdf
Si ambos valores fuesen integer, habría devuelto 1, pero entonces la expresión debería indicarlo añadiendo el sufijo L a los valores numéricos para que entienda que estamos hablando de valores integer.
Por defecto los tomará como double, es decir, como valores numérico no enteros. Aunque en este caso los decimales sean 0, considerará que los argumentos no son valores enteros, sino valores reales cuya aproximación en el rango de error del tipo double arroja el… » ver todo el comentario
Los valores bajo math los toma como funciones matemáticas, no como double, aun Cuando fuese 1 + 1.Esto sirve para no tener que hacer eso que dices tu, que sería el especificar cada valor o símbolo.
Osease, el valor funcional de -1 está mal en alguna parte, puede ser como parte lógica o de memoria, perdiendo en algún punto información de esta variable.
Eso es irrelevante. Las funciones también tienen definido un tipo de salida. (x) => 4 no es la misma función si la salida se considera como integer que si la salida se considera como double. Al final lo que tienes es una pipe de datos y lo que importa es como considera los valores de entrada.
Y la función xy no es igual en números enteros que en numeros reales.
En números enteros, -12 es igual a 1.
En números reales, -12 no está definido.
Para x^y en |R:
• Si x > 0, puedes calcular x^y para cualquier y.
• Si x < 0 y y es irracional, no está definido en |R
• Si x < 0 y y es fracción con denominador impar → sí está definido.
• Si y tiene denominador par → no está definido (a menos que pases a números complejos).
Así que -1^2 tienes x<1 y la potencia es una fracción con denominador impar (1, de 2/1), estando definido. .
Es una cagada se mire como se mire
- Los números cuya fracción en denominador es una potencia de 2 tienen representación exacta en coma flotante.
- Los que tienen factores primos distintos de 2 (como 5, 3, 7…) tienen representación periódica infinita en binario.
Llevas bastantes afirmaciones que no compruebas.
Edit:
int es_fraccion_binaria(double numero) {
const int max_iteraciones = 60; // Límite razonable por precisión
double parte_entera;
double fracc =… » ver todo el comentario
Es decir, el cálculo podría ser -12.0000000000000000005 (truncado a la precisión de los tipos), Y devolver el valor 1 para esa operación sería incorrecto.
Cuando devuelves un valor de un cálculo numérico, tienes que deolver un valor razonable para los valores dentro del rango de error del tipo de entrada.