2009-08-19 17 views
5

Estoy tratando de resolver lo que parece ser un problema matemático simple. Puedo escribir el problema como un bucle for, pero no estoy seguro de cómo traducirlo en una ecuación. ¿Alguien puede ayudar?¿Cómo se traduce esto para el bucle en las matemáticas

x = 10; 
for(int i=0; i<3000; i++) 
{ 
    x = x^2 
} 
+1

Disculpa, debería haber especificado, lo anterior es psuedocode. Esto no es por un problema de programación, así que no estoy preocupado por los desbordamientos :) En realidad estoy tratando de resolver un problema matemático a mano. Sé cómo expresar el problema en código pero no en matemáticas. Gracias por la ayuda de todos – user113164

Respuesta

10

x^(2^3000), donde^significa que el poder de

+1

O en este caso, 10^(2^3000) –

+3

Todas las respuestas x^6000 son incorrectas. Es verdad que (x^2)^3000 == x^6000. Sin embargo, eso no es lo que dice el ciclo. Estoy sorprendido (y bastante decepcionado) de que seas una minoría al leerlo correctamente. –

-3

Dado que es una constante, ¿qué hay de justo

x = 10000000... (etc.) 

Pero sospecho quieres algo un poco más intensional :

x = 10^6000 

O aún más:

x = (10^2)^3000 

O (si se permite que la notación ligeramente más flojo):

x = (10^2) ... ^2 

con una horizontal "} 3000" en el "...".

0

Algo (valor original de 10 en su caso) se cuadrará 3000 veces.

6

Usted proporcionó el código, y nos pide que proporcionemos el equivalente matemático, así que voy a tomar su código literalmente, y asumir que es un lenguaje similar a C.

En ese entorno,^es el operador XOR bit a bit. Entonces, después del bucle x = 10, dado que fue XOR-ed con una constante 2 (alternar el bit próximo al LSB) un número par de veces.

¿O era simplemente un seudocódigo? ¿De verdad se refería a la exponenciación?

+0

P.S. ¿Fui el único en compilar esto y ver qué hizo? –

+2

Creo que mereces una cierta cantidad de accesorios por mencionar que^no es una exponenciación en C. Creo que la mayoría de los codificadores C no habrían tenido que compilarlo para resolverlo. ;) Además, declararé para el registro que usted respondió antes de que el OP aclarara que estaba usando un pseudocódigo. También declararé para el registro que el uso de C para bucle y llaves no es la mejor opción para PSEUDOcode, lo que hace que su confusión sea más comprensible. –

+0

Me siento mejor ahora, gracias. :-) –

4
for(int i=0; i<n; i++) 
    x = x^p 

es equivalente a:

x = x^(p^n) 
4

El nombre matemática para la clase de problema que he dado es recurrence relation. Una relación de recurrencia define una secuencia A n en términos de los términos anteriores A n-1, A n-2, etc. En su caso,

A n = A n -1

Como otros han mostrado respuestas, creando un closed-form solution para su ejemplo dado es sencillo.Solución de una relación de recurrencia puede convertirse rápidamente en mucho más difícil con cambios aparentemente simples a la relación:

A n = A n-1 + c

una recurrencia Tal no lineal relación puede incluso no tener una solución cerrada, según el valor de c. (Por cierto, cuando se usa con números complejos, la relación de recurrencia anterior está en el corazón del Mandelbrot set.)

Cuestiones relacionadas