migliorabile ha scritto:
@+m+ non capisco da dove venga questa tua sicurezza sul fatto che TUTTI i docenti universitari (vabbe', riduciamoci alle materia relative alla Computer Scienze) siano degli incompetenti!
Dove avrei affermato ciò?
La domanda sorge spontanea: sei un laureato? Ed in quale facolta'?
Sì, in scienza del tortellino in quel di Bologna
La traccia da abbastanza informazioni per permettere una implementazione, ed e' sufficentemente incompleta da da forzare lo studente a ragionare!
Tu dici? E' una opinione che non condivido affatto.
Se non sai che cosa e' una metrica (in questo caso distanza di Levenshtein), e' un tuo problema!
In effetti è un concetto estramamente difficile, di cui non ho mai letto nelle ricette per stendere la sfoglia. Immagino si riferisca allo spessore dello strato di farina prima di impastare le uova
@pceweb: parti sempre dalla soluzione piu' semplice (banale ricerca sequenziale), anche perche' non dovrai gestire 1.000.000.000 di parole, ma al piu' 10, o 100, e scandire 10/100 parole e' questione di microsecondi
Interessante: un esercizio che involve una tabella hash e un albero binario (tra l'altro del tipo piuttosto rognoso da bilanciare, senza fare il copia-incolla di uno snippet, ovviamente), per gestire 10 o 100 parole.
In tal caso, visto che la traccia è (a tuo parere) del tutto irrilevante, e lo studente può cambiarla come vuole, un normalissimo array a dimensione fissa.
Un'alternativa, e' quella di mantenere delle strutture dati di servizio che tengono, per ogni parola, l'elenco delle parole piu' somiglianti, entro una distanza prefissata.
Interessate come suggerimento, in effetti sarei curioso di sapere quale sia questa distanza "prefissata". Penso bisognerebbe fare delle simulazioni con l'angolo massimo che un cono di farina riesce a fare sul tagliere.
Penso, vaghe reminiscenze, che esistano metodi geologici per valutare questa circostanza
Ovviamente, la soluzione al dubbio su quale distanza usare di @+m+, e' banale: un parametro aggiuntivo nella funzione/metodo di ricerca, utile per indicare quale distanza massima usare!
Davvero un'ottima idea! Certo però... cosa ci metti?
Regola fondamentale: se c'e' un dubbio su una possibile implementazione, allora aggiungere un parametro o una chiave di configurazione per poter fare la scelta .
Caspita. Pensavo invece che la regola fosse: chiedi al docente di specificare per bene cosa vuole, altrimenti bisogna fondare un Comitato per la Standardizzazione tra gli studenti che completi le porzioni di specifiche tralasciate.
Bon, fuori dalle facezie, evidentemente il docente non ha voluto, o potuto, specificare esattamente i termini dell'esercizio.
D'altronde è del tutto irrilevante, immagino che voglia vedere come lo studente
- fa il copia-incolla da qualche parte dell'algoritmino, magari senza spiegargli il perchè e il percome si usa, o non si usa, per certe lingue (esempio: italiano)
- fare una tabellina hash, giusto perchè una volta nella vita possa vederlo
- fare il copia-incolla di un albero binario, sempre perchè nella vita si convinca di essere in grado di scrivere un programmello siffatto.
Direi che di "applicativo", cioè qualcosa di effettivamente utilizzabile in concreto nel futuro, tanto da dover "addirittura" prevedere parametri che lo rendano flessibili, non c'è nulla, è un esercizietto didattico al 100% (almeno per quanto mi riguarda, ma non mi intendo tanto di queste cose).
Nulla di male, ma almeno avere un'aderenza vagamente realistica al "mondo reale" io (sottolineo io, non certo un professore universitario, ammesso che ci sia differenza) l'avrei fatto.