Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA] Come si calcola il numero dei record di attivazione?

    Buonasera!
    Qualcuno può gentilmente spiegarmi come si calcola il numero dei record di attivazione?

    Ho capito che quando si chiama una funzione si crea un record di attivazione nel punto più basso dello stack e che esso contiene i parametri formali e le sue variabili locali e che quando la funzione termina il record è cancellato dallo stack, ma in un esercizio del genere

    codice:
    int x =16;
    int y = f (x);
    System.out.println (y);
    ….
    Dove il metodo f corrisponde a:     public static int f(int n) {
                                         if (n = = 1) return 1;
                                         else return n + f (n/2);
                                        }
    come si calcola questo record di attivazione??
    Grazie per la pazienza

  2. #2
    In teoria lo stack si riempe man mano che la funzione ricorsiva viene svolta.
    Non appena arriva a 1 esce e libera dallo stack tutte le ricorsioni fatte.

    Indi questo record di attivazione (che personalmente disconosco nella maniera più assoluta) per logica avrà i valori ad ogni interazione della ricorsione, ma non ti posso dare la certezza non mai saputo ne studiato di questo record di attivazione.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Grazie per la spiegazione, ma praticamente che calcoli dovrei eseguire?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.