¿Hay alguna manera de escribir una función recursiva como potencias de 10, por ejemplo, ((((8)!)!) !?

Nota: Yo uso el signo ^ entre números para representar la “x a la potencia de y” como parte de la notación matemática – ^ suele ser un XOR bit a bit no relacionado para muchos lenguajes de programación.

TL; DR: su rango de números siempre es demasiado grande, incluso las computadoras luchan con las matemáticas.

Es, tu 10 ^ 10 ^ 10 ^ 5.225…. resultado, sucede porque la respuesta es tan grande que el poder de la representación 10 tiene límites (específicamente 10) mientras que el tamaño posible de su resultado no, el rango posible de números abarca desde 0 hasta (+) infinito.

Desglosándolo para el resultado de su prueba:

8! = 40,320 entonces:

(8!) == 40,320! lo que equivale a … un desbordamiento para la calculadora de Windows 10, así que la próxima calculadora:

SO 40,320! es aproximadamente igual a: 3.43 … * 10 ^ 168186

Aunque corté alrededor de 60 dígitos decimales para que sea legible, probablemente puedas decir que es un número horriblemente largo. Una vez más, la pobre calculadora Win10 no tiene ninguna posibilidad y ni siquiera puede completar la operación, en cambio dice una entrada no válida.

¿Porque es esto importante?

porque para el tercer factorial, has roto la calculadora de todos debido a lo que se conoce como un desbordamiento de enteros: en resumen, tu número es mayor que el espacio de memoria que ocupa antes de completar el cálculo:

Arriba: un ejemplo de uno de los resultados de un desbordamiento de enteros de una pequeña versión iterativa que escribí en C # al intentar acortar esta respuesta. Paré el programa después del error.

¡Pero espera! mi programa no devuelve cero.

Su programa continúa ejecutándose, probablemente hasta que el resultado devuelva cero (su función recursiva finaliza cuando el resultado devuelve un% b == 0 o algo así), por lo que los datos más altos de “10 a la potencia de” antes de que se devuelva el desbordamiento, de ahí por qué 8 !!! aparentemente es igual a 8 !!!!.

Hay una manera de escribir cualquier número como una potencia de 10. Bueno, no cualquier número. Cualquier número mayor que, pero sin incluir, 0 (dominio de log (x)). Sospecho que Wolfram | Alpha está haciendo esto: cuando tomas el factorial de algo por encima de diez, va a terminar en un cero (bueno, hay dos porque. Si tomas el factorial de algo por encima de 100, habrá veinticuatro ceros (dos por cien, uno por diez y 21 por todas las diferentes combinaciones que se multiplican por un múltiplo de diez). Wolfram | Alpha probablemente tiene una fórmula, pero desafortunadamente no lo sé.

Espero que ayude.

More Interesting

¿Algo viene después del cubo (como en 3 cubos = 9) en matemáticas?

¿Cuál es la diferencia entre la respuesta escalonada y la respuesta impulsiva en la teoría de sistemas?

¿Cuál es el significado de dessin d'enfants?

¿Cuál es el nivel de investigación matemática teórica en Finlandia?

¿Cuál es un buen problema que alguien que está entrando en matemáticas debería intentar probar?

Si 1 + 1 = 3, ¿cuál sería entonces 3 + 1?

¿Cómo se usa un ábaco para los cálculos matemáticos?

En aritmética, ¿cuál es el propósito detrás del orden de las operaciones?

Soy una persona joven y soy muy incompetente con la tecnología y las matemáticas. ¿Seré incapaz de sobrevivir en la sociedad moderna?

¿Por qué la gente odia las matemáticas? Hay pocas personas en el mundo que parecen apreciar la belleza de las matemáticas. Las matemáticas se han asociado con las palabras "geek y sofisticado" en lugar de "creativo y artístico", incluso entre los científicos.

Si [matemática] x + y = 1 [/ matemática] y [matemática] 0.7x + 0.23y = 0.51 [/ matemática], ¿cuáles son los valores de [matemática] x [/ matemática] y [matemática] y [/ matemática ]?

¿Qué hace que un problema difícil en un curso de matemáticas de posgrado sea difícil?

A a I son nueve enteros del 1 al 9 sin clasificación. Si A + B + C + D = 20, B + C + D + E + F = 20, D + E + F + G + H = 20, F + G + H + I = 20, ¿cuáles son los valores de A a I?

La suma de los primeros términos [matemáticos] m [/ matemáticos] de una serie aritmética es [matemática] n [/ matemática] y la suma de los primeros términos [matemáticos] n [/ matemáticos] es [matemática] m [/ matemática ] ¿Cuál es la suma de los primeros términos [matemáticos] m + n [/ matemáticos]?

Cómo factorizar binomios en una calculadora gráfica