Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Algoritmi e strutture dati > Filez
 
Progetto "Richiami"
Clicca QUI per vedere il messaggio nel forum
LjL
Ho scritto un programmino che genera casualmente input (corretti, si spera) per il progetto Richiami.

Anche se è codice e riguarda il progetto mi sembra più che lecito allegarlo qui, dato che neppure una riga potrebbe essere riutilizzata nel progetto vero e proprio... tutto quello che può fare questo programma è aiutare a testare il progetto senza doversi inventare manualmente decine o centinaia di input.

Invece di usare rand(), ci ho infilato dentro a mano un generatore di numeri casuali, in modo che il programma, se eseguito con gli stessi parametri, dia lo stesso output su qualsiasi computer.

In questo modo, chi vuole può postare input da confrontare senza postare effettivamente l'input, ma scrivendo solo il "codice" che va dato come parametro al programma.

Questo codice è composto da un numero minore di 32767 che va scelto casualmente, seguito opzionalmente da una o più delle seguenti (in ordine qualsiasi):
- la lettera minuscola 'd' seguita da un valore che indica le dimensioni massime del piano (se il numero è n, il piano va da -n a +n-1 in ascisse e ordinate)
- la lettera minuscola 'n' seguita da un valore che indica la lunghezza massima possibile per i nomi degli automi
- le lettere minuscole 'c', 'a', 'o', 's', 'p', 'e', 't' seguite da valori che indicano il numero dei corrispondenti comandi desiderati nell'output

Ad esempio, se si desidera che il piano disponibile vada da (-32767, -32767) a (32766, 32766), che i nomi degli automi siano lunghi al massimo 8 caratteri e che nell'output ci siano un comando 'c', 8 comandi 'a', 8 comandi 'o', 2 comandi 's', 8 comandi 'p', 8 comandi 'e' ed 8 comandi 't', si può dare come parametro questo codice:

2314d32767n8c1a8o8s2p8e8t8

I valori di questo esempio sono anche i valori di default del programma, quindi in realtà per generare lo stesso input, in questo caso, basterebbe il codice:

2314

Tenete conto dei seguenti mezzi bug:
- se il numero dei comandi da mandare in output non è uguale per tutti i comandi, la distribuzione dei comandi nell'output non sarà particolarmente uniforme (sarà perché non ho seguito Probabilità ;) )
- nei comandi che prendono come argomento un prefisso, viene semplicemente generata una stringa casuale di zeri e uni, senza controllare che siano stati effettivamente creati automi con quella stringa come prefisso. Questo è coerente con le specifiche del progetto, ma forse non è particolarmente comodo.

Spero che a qualcuno tutto questo sia utile (a me, tanto per cominciare :D ).

EDIT - uploadata una nuova versione. La vecchia creava ostacoli con x0,y0 non sempre minori di x1,y1

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate