 |
ste182 |
| cmq generare tutte le possibili combinazioni e sal ... |
24-01-2010 21:35 |
|
 |
ste182 |
.arcimaestro.
Registered: Oct 2004
Posts: 258 (0.03 al dì)
Location:
Corso: informatica
Anno:
Time Online: 2 Days, 5:06:07: [...]
Status: Offline
Edit | Report | IP: Logged |
cmq generare tutte le possibili combinazioni e salvarle in una struttura è l'unico modo(o almeno credo).. al massimo si può ottimizzare la parte in cui fai i calcoli per generare tutte le combinazioni
__________________
Live Fast, Die Fun
|
|
24-01-2010 21:35 |
|
|
|  |
 |
Utopia |
| Ragazzi come avete risolto il problema della ricer ... |
24-01-2010 21:39 |
|
 |
Utopia |
.illuminato.

Registered: Sep 2003
Posts: 228 (0.03 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 4 Days, 16:00:55 [...]
Status: Offline
Edit | Report | IP: Logged |
Ragazzi come avete risolto il problema della ricerca di un configurazione nel grafo?
esempio: come faccio a sapere che strada prendere per raggiunge la configurazione 3[3],4[5] dalla radice ? cosi a caso, esploro tutte le possibili... o avete messo delle chiavi ?
|
|
24-01-2010 21:39 |
|
|
|  |
 |
francescoo |
| ciao,
... |
25-01-2010 07:25 |
|
 |
francescoo |
.primate.
Registered: Feb 2008
Posts: 75 (0.01 al dì)
Location: novara
Corso: informatica
Anno: secondo
Time Online: 20:29:29 [...]
Status: Offline
Edit | Report | IP: Logged |
ciao,
ho un paio di domandine:
1)per deallocare un matrice ad esempio la matrice **mat,basta fare free(mat)?o la devo mettere dentro un for?
2)io ho la mia lista v,per scorrerla e pero tenere cmq un riferimento alla testa della lista uso un altro puntatore di tipo lista che chiamo l1, e quindi pongo l1=v, ora questo l1 all'inizio devo fare l1=malloc....?penso di no..perchè va a puntare la lista gia creata e quindi non gli devo allocare spazio giusto?
3) per chi ha gia fatto l'orale con torelli..cosa chiede all'orale?
grazie mille
|
|
25-01-2010 07:25 |
|
|
|  |
 |
palaz |
| allora per la domanda 2 non devi allocare l1 perch ... |
25-01-2010 08:19 |
|
 |
palaz |
.amico.
Registered: Apr 2007
Posts: 36 (0.01 al dì)
Location: nova milanese
Corso: informatica
Anno: secondo
Time Online: 11:03:00: [...]
Status: Offline
Edit | Report | IP: Logged |
allora per la domanda 2 non devi allocare l1 perche punta a una porzione di memoria gia esistente... quindi hai ragione 
per la prima domanda... se è un doppio puntatore prima devi deallocare tutti i nodi puntati poi puoi deallocare mat;
infine.. all'orale torellli fa tre domande.. una sulla prima parte, cioè algoritmi di ordinamento, una sulla seconda ad es tabelle hash e una sulla parte finale, a me è capitata la domanda sulla differenza tra algoritmi greedy e programmazione dinamica.... detto cosi sembra una cazzata ma vuole sapere le cose molto nel particolare, anche se ti da una mano e ti fa ragionare
|
|
25-01-2010 08:19 |
|
|
|  |
 |
francescoo |
| @palaz:
... |
25-01-2010 13:33 |
|
 |
francescoo |
.primate.
Registered: Feb 2008
Posts: 75 (0.01 al dì)
Location: novara
Corso: informatica
Anno: secondo
Time Online: 20:29:29 [...]
Status: Offline
Edit | Report | IP: Logged |
@palaz:
ma quindi te la teoria dove l'hai studiata?sulla dispensa di algoritmi o su altre fonti?
e lui vuole sapere anche i tempi di calcolo p cmq le cose nel specifico?
perchè io per ora sto guardando quello che lui ha scritto sul suo sito e studiando dalla dispensa..
pero non sapevo(anche perchè è molto difficile) se imparare proprio a memoria tutti i logaritmi,tempi di calcolo ecc..
|
|
25-01-2010 13:33 |
|
|
|  |
 |
palaz |
| beh studi dal libro anche...
... |
25-01-2010 13:37 |
|
 |
palaz |
.amico.
Registered: Apr 2007
Posts: 36 (0.01 al dì)
Location: nova milanese
Corso: informatica
Anno: secondo
Time Online: 11:03:00: [...]
Status: Offline
Edit | Report | IP: Logged |
beh studi dal libro anche...
tipo: la mia prima domanda è stata: parlami del merge sort... sono partito con lo spiegare come è l'algoritmo...e lui appena ha visto che lo sapevo mi ha fermato e ha iniziato a chiedermi tempi... se ci sono problemi con la memoria.. di quanto cresce.. se è asintotico e perche..
insomma cose di questo tipo...
|
|
25-01-2010 13:37 |
|
|
|  |
 |
plafo |
| [QUOTE][i]Originally posted by palaz [/i]
... |
25-01-2010 15:48 |
|
 |
plafo |
.illuminato.
Registered: Nov 2004
Posts: 236 (0.03 al dì)
Location: Milano
Corso: informatica
Anno: terzo
Time Online: 4 Days, 20:03:23 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by palaz
beh studi dal libro anche...
tipo: la mia prima domanda è stata: parlami del merge sort... sono partito con lo spiegare come è l'algoritmo...e lui appena ha visto che lo sapevo mi ha fermato e ha iniziato a chiedermi tempi... se ci sono problemi con la memoria.. di quanto cresce.. se è asintotico e perche..
insomma cose di questo tipo...
quanto tempo ci vuole, secondo te, per studiare in modo decente la teoria?
|
|
25-01-2010 15:48 |
|
|
|  |
 |
palaz |
| eh tanto.. io me la sono vista prima e dopo il pro ... |
25-01-2010 20:35 |
|
 |
palaz |
.amico.
Registered: Apr 2007
Posts: 36 (0.01 al dì)
Location: nova milanese
Corso: informatica
Anno: secondo
Time Online: 11:03:00: [...]
Status: Offline
Edit | Report | IP: Logged |
eh tanto.. io me la sono vista prima e dopo il progetto e in ogni caso ho fatto un orale di merda!
|
|
25-01-2010 20:35 |
|
|
|  |
 |
francescoo |
| @palaz:
... |
26-01-2010 07:22 |
|
 |
francescoo |
.primate.
Registered: Feb 2008
Posts: 75 (0.01 al dì)
Location: novara
Corso: informatica
Anno: secondo
Time Online: 20:29:29 [...]
Status: Offline
Edit | Report | IP: Logged |
@palaz:
quindi se ho capito bene per deallocare la matrice:
ad esempio ho una matrice di 2 righe e n colonne io l'ho allocata cosi:
matr = malloc ( 2 * sizeof ( int * ) );
for ( r = 0; r < 2; r++ )
{
*(m+r) = malloc ( n * sizeof ( int ) );
}
quindi per deallocarla:
if(mat!=NULL)
{
for ( r = 0; r < 2; r++ )
{
free(mat+r);
}
free(mat);
}
giusto?e un modo per verificare se l'ho deallocata?
|
|
26-01-2010 07:22 |
|
|
|  |
 |
palaz |
| penso sia giusto... per verificare .. no so.. prov ... |
26-01-2010 08:25 |
|
 |
palaz |
.amico.
Registered: Apr 2007
Posts: 36 (0.01 al dì)
Location: nova milanese
Corso: informatica
Anno: secondo
Time Online: 11:03:00: [...]
Status: Offline
Edit | Report | IP: Logged |
penso sia giusto... per verificare .. no so.. prova a stampare dopo che l'hai allocata i valori che conteneva prima della deallocazione...
|
|
26-01-2010 08:25 |
|
|
|  |
 |
ste182 |
| [QUOTE][i]Originally posted by francescoo [/i]
... |
26-01-2010 23:55 |
|
 |
ste182 |
.arcimaestro.
Registered: Oct 2004
Posts: 258 (0.03 al dì)
Location:
Corso: informatica
Anno:
Time Online: 2 Days, 5:06:07: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by francescoo
@palaz:
quindi se ho capito bene per deallocare la matrice:
ad esempio ho una matrice di 2 righe e n colonne io l'ho allocata cosi:
matr = malloc ( 2 * sizeof ( int * ) );
for ( r = 0; r < 2; r++ )
{
*(m+r) = malloc ( n * sizeof ( int ) );
}
quindi per deallocarla:
if(mat!=NULL)
{
for ( r = 0; r < 2; r++ )
{
free(mat+r);
}
free(mat);
}
giusto?e un modo per verificare se l'ho deallocata?
si è giusto; prima allochi un vettore per le righe, poi per ogni riga allochi un vettore per la colonna.
la deallocazione è giusta.. solo una cosa: perchè usi la notazione con i cast? non che sia errato ma trattandosi di una matrice, quindi accessibile tramite indici, non ti viene più comodo usare una cosa del tipo:
//allocazione
matrice=(int**)malloc(2*sizeof(int*));
for(i=0;i<2;i++)
matrice[i] = (int*)malloc(n*sizeof(int));
//deallocazione
for(i=0;i<2:i++)
free(matrice[i]);
free(matrice)
ovviamente per accedere agli elementi userai matrice[i][j].
ps: se vuoi ottimizzare un minimo il codice evita il for se hai solo 2 righe.. puoi fare direttamente:
matrice[0]= malloc....
matrice[1]= malloc..
in questo modo eviti l'inizializzazione del contatore, il test su di esso e il suo incremento

__________________
Live Fast, Die Fun
|
|
26-01-2010 23:55 |
|
|
|  |
 |
willyrs |
| Ragazzi, ma come l'avete fatto mosse(k)? Io ho fat ... |
27-01-2010 14:09 |
|
 |
willyrs |
TheOtakuNerd

Registered: Sep 2008
Posts: 20 (0.00 al dì)
Location: Castello di Brianza (LC)
Corso: Informatica
Anno: Secondo
Time Online: 4:24:59 [...]
Status: Offline
Edit | Report | IP: Logged |
Ragazzi, ma come l'avete fatto mosse(k)? Io ho fatto un grafo orientato e non pesato, e sia Prim che Dijkstra richiedono il peso...
__________________
Nel mondo esistono 10 tipi di persone: quelle che conoscono il linguaggio binario e quelle che non lo conoscono
|
|
27-01-2010 14:09 |
|
|
|  |
 |
francescoo |
| @ste182:
... |
27-01-2010 17:33 |
|
 |
francescoo |
.primate.
Registered: Feb 2008
Posts: 75 (0.01 al dì)
Location: novara
Corso: informatica
Anno: secondo
Time Online: 20:29:29 [...]
Status: Offline
Edit | Report | IP: Logged |
@ste182:
mi sta venendo un dubbio:
io ho fatto piu o meno come avevi detti tu alla pagina 6..intendo per trovare tutte le possibili configurazioni..
il mio grafo pero alla fine è una lista contenente tutte le configurazioni, ed è come se avessi fatto una visita per ampiezza.
pero non sono liste di adiacenza è un unica lista che ha tutte le configurazioni quindi ad es se io parto da 0[3]0[5] la mia lista sarà composta cosi:
0[3]0[5] ->3[3]0[5]->0[3]5[5]->3[3]5[5]->0[3]3[5]->...
in ogni campo della lista oltre alla matrice con la configurazione relative ci sono due campi int num e int padre quindi poi cosi riesco a trovare secondo le varie richieste anche di stampare il cammino ecc..
funziona tutto perfettamente..
pero secondo te è accettabile?questo puo definirsi come grafo?
|
|
27-01-2010 17:33 |
|
|
|  |
 |
ste182 |
| [QUOTE][i]Originally posted by francescoo [/i]
... |
27-01-2010 21:17 |
|
 |
ste182 |
.arcimaestro.
Registered: Oct 2004
Posts: 258 (0.03 al dì)
Location:
Corso: informatica
Anno:
Time Online: 2 Days, 5:06:07: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by francescoo
@ste182:
mi sta venendo un dubbio:
io ho fatto piu o meno come avevi detti tu alla pagina 6..intendo per trovare tutte le possibili configurazioni..
il mio grafo pero alla fine è una lista contenente tutte le configurazioni, ed è come se avessi fatto una visita per ampiezza.
pero non sono liste di adiacenza è un unica lista che ha tutte le configurazioni quindi ad es se io parto da 0[3]0[5] la mia lista sarà composta cosi:
0[3]0[5] ->3[3]0[5]->0[3]5[5]->3[3]5[5]->0[3]3[5]->...
in ogni campo della lista oltre alla matrice con la configurazione relative ci sono due campi int num e int padre quindi poi cosi riesco a trovare secondo le varie richieste anche di stampare il cammino ecc..
funziona tutto perfettamente..
pero secondo te è accettabile?questo puo definirsi come grafo?
sinceramente non so dirti se si può considerare un grafo in quel modo.. però credo di no perchè un grafo per definizione è un insieme di vertici collegati fra loro con archi.
mettendo tutto su un unica lista è un pò come se dicessi che il primo nodo è adiacente direttamente a tutti gli altri.. però potrebbe anche andare bene eh.. non saprei..
__________________
Live Fast, Die Fun
|
|
27-01-2010 21:17 |
|
|
|  |
 |
ste182 |
| [QUOTE][i]Originally posted by willyrs [/i]
... |
27-01-2010 21:19 |
|
 |
ste182 |
.arcimaestro.
Registered: Oct 2004
Posts: 258 (0.03 al dì)
Location:
Corso: informatica
Anno:
Time Online: 2 Days, 5:06:07: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by willyrs
Ragazzi, ma come l'avete fatto mosse(k)? Io ho fatto un grafo orientato e non pesato, e sia Prim che Dijkstra richiedono il peso...
orientato? quindi duplichi i nodi contenenti configurazioni uguali?
in quanto ai pesi non servono, ogni arco ha peso 1, quindi il cammino minimo si trova con una visita in ampiezza che ti genera il sottografo dei cammini
__________________
Live Fast, Die Fun
|
|
27-01-2010 21:19 |
|
|
|  |
 |
| All times are GMT. The time now is 16:23. |
|
|
 |
|
 |
|
|
|  |
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
|
|
|
|
|
|