Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-08-2010, 01:52   #21
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da malocchio Guarda i messaggi
Concettualmente un albero è definito induttivamente, quale struttura migliore per esercitarsi nella scrittura di funzioni ricorsive?
non é solo un esercizio di stile, é anche questione di semplicitá del codice.



Quote:
Comunque la vedo ostica trasformare una DFS da ricorsiva a iterativa
molto piu semplice di quanto pensi (vedi post di DanieleC88), anche se comunque piu complicato di un algoritmo ricorsivo.



Quote:
Inoltre, statisticamente parlando penso possiamo dire che la profondità di un albero cresce logaritmicamente rispetto al numero dei nodi...
"statisticamente" non vuol dire niente: l'altezza di un albero é logaritmica nel numero di nodi se l'albero gode di una certa proprietá di bilanciamento come quella degli alberi AVL o quella degli alberi RB.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2010, 08:34   #22
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da fero86 Guarda i messaggi
1) no se il linguaggio é tail-call optimized
2) early optimization is the root of all evil
1) Ok, ma il titolo del thread riporta [JAVA] e, a meno che non mi sia perso per strada qualcosa, questa ottimizzazione in Java non c'è.

2) Su questo sono d'accordo anche io, ma non intendevo sottointendere che è sempre meglio implementare i metodi di tree traversal in modo iterativo che ricorsivo, anche perchè non lo penso.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2010, 12:09   #23
oNaSsIs
Member
 
L'Avatar di oNaSsIs
 
Iscritto dal: Apr 2007
Messaggi: 182
In generale si parla di ricorsione in coda (o tail recursive) quando una funzione f chiama al suo interno una funzione g (la quale può anche essere f stessa, come nel nostro caso) e il valore che restituisce è proprio quello restituito dalla funzione g, senza alcuna ulteriore computazione. Non è necessario quindi utilizzare un nuovo Record di Attivazione per g dato che f non deve mantenere alcun risultato intermedio, di conseguenza viene proprio utilizzato l'RdA di f per g. Quindi lo spazio utilizzato sullo stack è costante.

Ultima modifica di oNaSsIs : 06-08-2010 alle 12:11.
oNaSsIs è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2010, 12:26   #24
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da oNaSsIs Guarda i messaggi
In generale si parla di ricorsione in coda (o tail recursive) quando una funzione f chiama al suo interno una funzione g (la quale può anche essere f stessa, come nel nostro caso) e il valore che restituisce è proprio quello restituito dalla funzione g, senza alcuna ulteriore computazione. Non è necessario quindi utilizzare un nuovo Record di Attivazione per g dato che f non deve mantenere alcun risultato intermedio, di conseguenza viene proprio utilizzato l'RdA di f per g. Quindi lo spazio utilizzato sullo stack è costante.
Grazie delle spiegazioni.
In ogni caso, qui si sta parlando di Java, e bisogna tenere in considerazione le implementazioni esistenti delle specifiche della Java Virtual Machine e del Bytecode.

Una cosa del genere:
Codice:
public class TailCall
{
    private static int tailCallRecursion (int i, int times) {
        if (times <= 0) return i;
        return tailCallRecursion(i, times-1);
    }

    public static void main (String... argv) {
        int result = tailCallRecursion(0, 10000);
        System.out.println(result);
    }
}
se compilata e mandata in esecuzione provoca una java.lang.StackOverflowError.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 06-08-2010 alle 12:29.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2010, 12:31   #25
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
1) Ok, ma il titolo del thread riporta [JAVA] e, a meno che non mi sia perso per strada qualcosa, questa ottimizzazione in Java non c'è.
be', il discorso stava prendendo un respiro piu generale.



Quote:
Originariamente inviato da oNaSsIs Guarda i messaggi
In generale si parla di ricorsione in coda (o tail recursive) quando una funzione f chiama al suo interno una funzione g (la quale può anche essere f stessa, come nel nostro caso) e il valore che restituisce è proprio quello restituito dalla funzione g, senza alcuna ulteriore computazione. Non è necessario quindi utilizzare un nuovo Record di Attivazione per g dato che f non deve mantenere alcun risultato intermedio, di conseguenza viene proprio utilizzato l'RdA di f per g. Quindi lo spazio utilizzato sullo stack è costante.
grazie per le delucidazioni
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2010, 01:17   #26
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Quote:
Originariamente inviato da malocchio Guarda i messaggi
Concettualmente un albero è definito induttivamente, quale struttura migliore per esercitarsi nella scrittura di funzioni ricorsive?
Comunque la vedo ostica trasformare una DFS da ricorsiva a iterativa
Inoltre, statisticamente parlando penso possiamo dire che la profondità di un albero cresce logaritmicamente rispetto al numero dei nodi...
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Basta appoggiarsi alla struttura dati più appropriata: nel caso di una DFS (visita in-order, nel caso degli alberi) basta usare uno stack. Anzi, concettualmente bastano anche un paio di puntatori (però è macchinoso ).
Vedo più problematica la BFS (visita per livelli, nel caso degli alberi), ma anche là non è difficilissimo: basta usare una coda invece di uno stack.
Quote:
Originariamente inviato da fero86 Guarda i messaggi
non é solo un esercizio di stile, é anche questione di semplicitá del codice.
molto piu semplice di quanto pensi (vedi post di DanieleC88), anche se comunque piu complicato di un algoritmo ricorsivo.
"statisticamente" non vuol dire niente: l'altezza di un albero é logaritmica nel numero di nodi se l'albero gode di una certa proprietá di bilanciamento come quella degli alberi AVL o quella degli alberi RB.
Da quello che ho capito l'autore del post si sta esercitando a lavorare su alberi con la ricorsione...

"statisticamente"... ho usato la parola sbagliata!
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2010, 10:43   #27
oNaSsIs
Member
 
L'Avatar di oNaSsIs
 
Iscritto dal: Apr 2007
Messaggi: 182
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
In ogni caso, qui si sta parlando di Java, e bisogna tenere in considerazione le implementazioni esistenti delle specifiche della Java Virtual Machine e del Bytecode.
Hai ragione, il codice da te scritto rispetta la definizione ma restituisce un eccezione di tipo stack overflow. Questa cosa incuriosisce anche me, non ho mai usato la ricorsione in coda con Java e mi sembra una grossa pecca la sua mancata implementazione. Cercherò di documentarmi, per ora ho trovato questo.
oNaSsIs è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2010, 12:30   #28
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da oNaSsIs Guarda i messaggi
Hai ragione, il codice da te scritto rispetta la definizione ma restituisce un eccezione di tipo stack overflow.
la solleva, non la restituisce, ed inoltre é un errore, non un'eccezione.


Quote:
Questa cosa incuriosisce anche me, non ho mai usato la ricorsione in coda con Java e mi sembra una grossa pecca la sua mancata implementazione. Cercherò di documentarmi, per ora ho trovato questo.
piu che una grossa pecca é un trend: solitamente solo i linguaggi funzionali implementano questa ottimizzazione.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2010, 12:42   #29
oNaSsIs
Member
 
L'Avatar di oNaSsIs
 
Iscritto dal: Apr 2007
Messaggi: 182
Chiedo venia per il mio linguaggio inappropriato...
oNaSsIs è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2010, 18:40   #30
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Quote:
Originariamente inviato da fero86 Guarda i messaggi
la solleva, non la restituisce, ed inoltre é un errore, non un'eccezione.
Come siamo pignoli!
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2010, 17:21   #31
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da fero86 Guarda i messaggi
la solleva, non la restituisce, ed inoltre é un errore, non un'eccezione.
.
In Java le eccezioni non si "sollevano" (raise) ma si... lanciano! (throw)

Quote:
Originariamente inviato da malocchio
Come siamo pignoli!
Non "pignoli", ma precisi.
E con questa ho vinto il premio rompicoglioni della domanica
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2010, 18:15   #32
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
[...] della domanica
Si dice domenica.
Fregato il premio!
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2010, 18:23   #33
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Si dice domenica.
Fregato il premio!

...
Ma lol
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2010, 20:22   #34
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
D'OH
fero86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Torna il super doppio sconto sulle e-bik...
Offerte Amazon componenti PC: RTX 5060 T...
Crucial Pro DDR5 da 32GB a 389,99€: perc...
Fable 5, il modello più potente d...
PC all-in-one Lenovo super elegante, per...
Lo Smart TV più venduto su Amazon...
Periferiche gaming in offerta su Amazon:...
L'IA non è una bolla, ma pu&ograv...
Il cinema in salotto: oggi TV Xiaomi QLE...
Passa a ho. Mobile, fino a fine agosto c...
Ai Giochi di Pechino i robot prendono fu...
Arianespace Ariane 6: lanciato il satell...
Starship: la nave Forte ha caricato Ship...
ROCm 10 punta sull'AI agentica: AMD auto...
Meta cambia la privacy degli AI Glasses:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v