Le prove valgono lo sforzo?

7

Ho acquistato il libro di fatto per l'apprendimento di strutture e algoritmi di dati ( CLRS ). Il libro è comunque abbastanza buono ma la singolarità è nelle prove. Il libro è pieno di Lemmi, teoremi, simboli peculiari e relazioni di ricorrenza inimmaginabili che sono molto difficili da comprendere. Sono in grado di ottenere in qualche modo gli algoritmi ma la matematica discreta non fa per me.

Quindi dovrei lasciarli fuori e concentrarmi solo sugli algoritmi?

    
posta Shashank Jain 02.07.2012 - 17:30
fonte

5 risposte

12

Solitamente guardando attraverso la dimostrazione aiuta a capire meglio l'algoritmo. Mostra perché l'algoritmo funziona e su che cosa si basa. A volte aiuta anche a vedere a cosa sta pensando l'autore, o dà un'idea di come modificare e / o ottimizzare l'algoritmo per esigenze particolari.

Se in seguito avrai bisogno di creare il tuo algoritmo, queste dimostrazioni ti saranno di grande aiuto. D'altra parte, se hai solo bisogno di usare alcuni algoritmi famosi, va bene perdere le prove. Ma ti consiglio comunque di dare un'occhiata a loro. Anche se non capisci tutto nei dettagli, cerca almeno di prendere il tuo tempo e cogliere l'idea generale.

    
risposta data 02.07.2012 - 17:36
fonte
3

Per giudicare se "vale la pena" è necessario considerare il valore a te di ciò che ottieni per il tuo impegno. In questo caso, imparare a comprendere le dimostrazioni significherebbe, beh, che capisci le prove. Non possiamo decidere per te quanto ritieni tale valore.

Se sei felice di cercare un elenco di algoritmi e costi, allora fallo con tutti i mezzi.

Intendiamoci, c'è la fastidiosa preoccupazione che se tu fai salti le bozze, se ti trovi in una situazione in cui ti imbatti in un metodo (o persino pensi a te stesso) < em> non puoi trovare documenti ovunque, non saprai cosa fare ...

    
risposta data 02.07.2012 - 17:54
fonte
3

Se cerchi practical way per capire e / o implementare gli algoritmi, ti suggerirei un libro diverso - Pratico Algoritmi per programmatori .

Tuttavia, se guardi parte accademica e teoria per costruire il tuo algoritmo personalizzato e basarlo su altri esistenti una volta, potresti probabilmente continuare con quello che hai.

    
risposta data 02.07.2012 - 17:36
fonte
2

A mio parere, le dimostrazioni non sono davvero straordinariamente utili, a meno che tu non stia inventando l'algoritmo in questione o cerchi di lavorare in CS teorico. Se stai semplicemente implementando l'algoritmo, l'importante è che tu possa comprendere la descrizione e che tu sappia che è stato dimostrato che sia corretto.

    
risposta data 02.07.2012 - 18:18
fonte
1

Ecco un ottimo esempio del perché le dimostrazioni sono necessarie e perché dovresti essere in grado di capirle e inventarle: link

Molte volte durante la programmazione, dovrai elaborare i tuoi algoritmi ad hoc. O forse hai bisogno di fare un'ottimizzazione su un algoritmo esistente. In questi casi, è meglio essere in grado di eseguire il backup dell'algoritmo / ottimizzazione con una dimostrazione del motivo per cui funziona.

    
risposta data 04.07.2012 - 01:58
fonte

Leggi altre domande sui tag