2010-05-29 5 views
1

i ont la question comment le programme d'écriture qui calcule les procédures suivantesquestion sur tétration

http://en.wikipedia.org/wiki/Tetration

i have programme exponentielle qui retourne x^n voici le code

public class Exp{ 
public static long exp(long x,long n){ 
    long t=0; 
if (n==0){ 
    t= 1; 
} 
else{ 
     if (n %2==0){ 
    t= exp(x,n/2)* exp(x,n/2); 

} 
else{ 

t= x*exp(x,n-1); 
} 

} 
return t; 
} 


public static void main(String[]args){ 
long x=5L; 
long n=4L; 
System.out.println(exp(x,n)); 


} 
} 

mais comment Utilisez-le dans le programme de Tetration? S'il vous plaît aider

+0

Est-ce vos devoirs? – WhirlWind

+0

non je n'ai pas de devoirs jamais je me studie –

+0

davit-datuashvili juste assez. Amusez-vous, et +1 pour votre problème intéressant. – WhirlWind

Répondre

4

x tétration ↑ ↑ n can be defined recursively comme

x ↑↑ n = x^(x ↑↑ (n-1)) 

Vous pouvez écrire

long tetration(long x, long n) { 
    if (n == 0) 
    return 1; 
    else 
    return exp(x, tetration(x, n-1)); 
} 

Mais remarquez que le tétration pousse extrêmement rapide, un long est ne sera pas assez grand pour stocker encore 4 ↑↑ 3 (= 1,3). Peut-être avez-vous besoin d'un BigInteger.

(BTW, exp se réfère généralement à la fonction unaire e x, la fonction binaire x y est généralement appelé pow.)

+0

merci KennyTM merci beaucoup –