Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Algoritmi e strutture dati > Filez > Progetto "Richiami"
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
LjL
.consigliere.

User info:
Registered: Dec 2003
Posts: 144 (0.02 al dì)
Location: Milano
Corso: Informatica
Anno: Primo
Time Online: 16:25:17 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Lightbulb Progetto "Richiami"

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

Attachment: generator.c.gz
This has been downloaded 63 time(s).

__________________
by LjL
ljlbox@tiscali.it
http://ljl.150m.com - appunti corsi

Last edited by LjL on 21-02-2005 at 13:33

21-02-2005 01:24
Click Here to See the Profile for LjL Click here to Send LjL a Private Message Visit LjL's homepage! Find more posts by LjL Add LjL to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 19:30.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: 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
Pagina generata in 0.027 seconds (71.66% PHP - 28.34% MySQL) con 26 query.