![]() |
Pages (2): « 1 [2] Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Algoritmi e strutture dati (http://www.dsy.it/forum/forumdisplay.php?forumid=207)
-- [PROGETTO] "Mappe 2" (http://www.dsy.it/forum/showthread.php?threadid=23982)
Originally posted by darkAntAreS
io ho fatto sottopercorso!!!
un consiglio: NON fare l'errore di calcolarti ogni sottopercorso da ogni punto..ragiona su come è fatto un sottopercorso e da dove deve, per forza di cose, partire per essere tale...
nel caso peggiore a me viene (nlogn)/2, ma bisogna essere proprio sfigati...e nel caso medio viene circa n/2
.
per quelli che hanno gia fatto la struttura base.. potete dirmi se il ragionamento che ho in testa regge e come la vedete voi?
avevo in mente 2 strutture
- un albero binario per i i punti a cui vengono variati i valori tramite la funzione "valore"
- un grafo che memorizza il percorso della mappa in base alla specifica e 1 algoritmo del cammino minimo.
non riesco ancora a capire cosa associare al piano e alla mappa..
mettiamo che faccio una funzione con il prototipo Piano new_piano(int m, int n, char *nome);
cosa deve ritornarmi alla struttura piano? tutti i valori dei punti del piano è da escludere..
l'unica cosa che mi viene in mente è fagli tornare i valori dei punti presi da file e memorizzati in un array e magari la struttura che contiene le varie mappe del piano..
riguardo appunto la struttura che raggruppa tutte la mappe posso benissimo usare o una lista o un array.
e infine la mappa sarà appunto un grafo.
se qualcuno mi illumina la retta via gliene sarei grato! grazie
Originally posted by Simeon
Mmm forse ho capito, anche quei tempi li possono essere un'indizio.
Quindi tu hai finito tutto o devi fare riduci?
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
Originally posted by maynard80
illumina anche chi non ha capito..please
Originally posted by Simeon
Ma forse intendeva il fatto che per un percorso pi ... pj i dev'essere i>= j e quindi non devi guardarti tutti i punti... boh! Bluffavo, non lo so ancora perche sto rifinendo riduci()![]()
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
Originally posted by maynard80
e mica è vero, se il punto di indice i e quello di indice j sono 2 punti adiacenti??nonostante magari nel percorso della mappa non c'è un hop che li collega..

bhe, senza sbilanciarmi troppo ![]()
considerate che, se cercate i percorsi a partire da un punto P(i) e P(i-1) è >=0, bhe, in un ciclo precedente avreste potuto controllare i percorsi da P(i-1) che sono sicuramente maggiori di quelli da P(i)...
riduci l'ho fatto, ma ci mette troppo, quindi sto ragionando per velocizzarlo un po'...e per farlo sto pensando ad un albero come appoggio (a sinistra se vai in una direzione, a destra se vai verso l'altra...)
per la struttura di memorizzazione delle mappe l'albero è ottimo, visto che, se lo si ordina sui nomi delle mappe, la ricerca è molto veloce...l'unico problema si incontra con l'eliminazione di un nodo interno, ma basta leggere gli esempi del libro che lo spiegano benissimo
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
Originally posted by darkAntAreS
riduci l'ho fatto, ma ci mette troppo, quindi sto ragionando per velocizzarlo un po'...
bhe, io non mi sto confrontando coi tempi del mio processore...è ovvio che se piazzo un algoritmo come il mio attuale riduci, a meno che non metto i 2 punti a distanze immani, la differenza di tempo non è apprezzabile...più che altro sto facendo i calcoli della complessità dei tempi degli algoritmi...
quindi il discorso di velocizzare le cose si basa sull'algoritmo, non sull'implementazione...
forse ho trovato il metodo per ridurlo a m*n (con m e n intese come le differenze tra le coordinate dei punti)
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
Originally posted by darkAntAreS
bhe, io non mi sto confrontando coi tempi del mio processore...è ovvio che se piazzo un algoritmo come il mio attuale riduci, a meno che non metto i 2 punti a distanze immani, la differenza di tempo non è apprezzabile...più che altro sto facendo i calcoli della complessità dei tempi degli algoritmi...
quindi il discorso di velocizzare le cose si basa sull'algoritmo, non sull'implementazione...
forse ho trovato il metodo per ridurlo a m*n (con m e n intese come le differenze tra le coordinate dei punti)
domanda stupidissima e veloce:
se uso un albero binario di ricerca e come chiavi uso le coordinate x,y di un punto come faccio a discriminare le chaivi per farle andare o nel sottoalbero sinistro o quello destro?
Originally posted by tandrea85
domanda stupidissima e veloce:
se uso un albero binario di ricerca e come chiavi uso le coordinate x,y di un punto come faccio a discriminare le chaivi per farle andare o nel sottoalbero sinistro o quello destro?
Originally posted by YoMo
Io ho ordinato in base alla coordinata x ed, in caso di uguaglianza, in base alla y. Non sembrano esserci problemi, neanche cn le rotazioni (ho usato un rbtree).
Ma se per trovare il sottopercorso migliore io scandisco l'array che contiene il percorso UNA SOLA VOLTA... è tempo lineare vero ?
Se si, e se il mio algoritmo funziona, ho trovato una soluzione in tempo lineare.
Dubito molto fortemente della seconda ipotesi però...
se riesci si, è tempo lineare...ma non riesco a immaginarlo...bhe, se funziona sei un grande ![]()
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
Originally posted by darkAntAreS
se riesci si, è tempo lineare...ma non riesco a immaginarlo...bhe, se funziona sei un grande![]()


Non
riesco
a
venirne
a
capo 
Quasi quasi lo implemento nella maniera iGNorante...
Trovo metodi che funzionano a meta'... ma aaargh.
Darkantares tu hai detto che se analizzo da P(i) e P(i-1) è >= 0 allora in teoria potrei aver gia trovato i percorsi di p(i-1) che sono maggiori di p(i)... sto riflettendo a lungo su questa ma non riesco a capire come deve funzionare sto algoritmo... maronn
EDIT : sul libro non c'e niente che possa essere d'aiuto ?
ciao ornati se puoi contattami sul msn, stars99@hotmail.it.
grazie
sul libro non c'è niente, ma pensa che, in ogni caso, devi scorrere il "vettore" (o struttura analoga) del percorso almeno una volta...e che puoi scegliere i punti utili da cui far partire il sottopercorso ottimale...e dove farlo finire...
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
Originally posted by darkAntAreS
sul libro non c'è niente, ma pensa che, in ogni caso, devi scorrere il "vettore" (o struttura analoga) del percorso almeno una volta...e che puoi scegliere i punti utili da cui far partire il sottopercorso ottimale...e dove farlo finire...
![]()
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
Ok io avrei finito, però mi sbaglia una riga di output:
code:
19: -3,3; -3,4; -3,5; -3,6; -2,6; -2,5 19: -3,3; -3,4; -3,5; -3,6; -2,6; -2,5 19: -3,3; -3,4; -3,5; -3,6; -2,6; -2,5
code:
9: 5,3; 6,3; 6,4; 6,5
E' FINITAAAAAA! 
Ce l'ho fatta.
ancora help!qualcuno mi potrebbe aiutare sulla funzione riduci e sul sottoxcorso???ho letto i precedenti post ma...buio totale!!!heeeeeeeeeelpppppp!
__________________
Het is allemaal naar de zak!!!
ragazzi il compilatore mi dà il seguente errore quando tento di creare l'albero rb..
C:/cs1300/lib/libmingw32.a(main.o)(.text+0x97):main.c: undefined reference to `WinMain@16'
help me!!
lfn ![]()
__________________
an arrow from the sun
edit.. ho cercato in giro..cioè questo errore è dovuto solamente al fatto ke non ho dichiarato un main? :lol
altro sclero da esame
lfn ![]()
__________________
an arrow from the sun
Originally posted by lfn
ragazzi il compilatore mi dà il seguente errore quando tento di creare l'albero rb..
C:/cs1300/lib/libmingw32.a(main.o)(.text+0x97):main.c: undefined reference to `WinMain@16'
help me!!
lfn![]()
Vorrei sottoporre alla vostra attenzione la mia personale esperienza: ho finito il progetto, da qlche gg e tutto funziona a dovere ma.... oggi ho dovuto rivalutare la funzione riduci() perchè con specifiche grandi, o meglio, con punto sorgente e destinazione abbastanza distanti, non funziona più!!! Beh magari funziona anche ma il tempo che ci mette...
Infatti la mia funzione essendo ricorsiva, nel ricercare il percorso ottimo verso un punto abbastanza distante apre talmente tanti record d'attivazione che la rende praticamente inutilizzabile.
Per esempio con una specifica del tipo NENENENENENENENENENENENENENENENENENE dopo 15sec sta ancora lavorando....
Quindi state attenti nel caso la vostra riduci() dia ricorsiva!!
Ora mi tocca riprogettare la funzione...meno male che devo modificare solo una funzione...
Qlcuno ha avuto la stessa esperienza?
Originally posted by YoMo
Qlcuno ha avuto la stessa esperienza?
Originally posted by YoMo
Boh!! L'unico consiglio che posso darti è disinstalla il compilatore (cioè cancella la cartella), riavvia la macchina, scaricati di nuovo il compilatore e reinstallalo.
Originally posted by ornati
Vero. Il proverbio di Windows è: "riavvia e sarai più fortunato".
Un po' come il gratta e "vinci".
![]()
Off-Topic:
E finiamola dai.
Non ho mai avuto (e dico MAI) un crash di sistema da quando ho messo windows XP.
Magari dalla 98 in giù puoi avere ragione ma la tiritera "Linux è meglio" alla fine stufa...
Originally posted by Simeon
No, ma credo proprio perchè la mia non è ricorsiva...
Ah ragazzi attenzione che il prof ha pubblicato una seconda ERRATA CORRIGE sul sito. E' abbastanza importante perchè implica una piccola modifica a sottopercorso() (va in pratica "refreshato" il valore della mappa all'interno)
code:
2) Le righe di input v -3 3 100 s alfa vanno sostituite con v -3 3 100 r alfa s alfa
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
Originally posted by maynard80
non capisco in che senso va modificato percorso? tu parli di
code:
2) Le righe di input v -3 3 100 s alfa vanno sostituite con v -3 3 100 r alfa s alfa
code:
Nell'esempio a pag. 6: 1) La riga di output beta 4 3 16 EESESE (penultima riga) va sostituita con beta 4 3 15 EESESE
PS: una domanda a chi mantiene in una struttura solo i punti che vengono modificati:
- ma quindi controllate se un punto è stato modificato e in caso negativo utilizzate il valore di default?? ma quindi il valore non modificato di un punto non lo immagazzinate e lo calcolate al voo ogni volta??? io avevo pensato una cosa simile (l'informazione sul cammino tanto è contenuta in specifica)
che mi dite?
Originally posted by Simeon
Parlavo di questo:
code:
Nell'esempio a pag. 6: 1) La riga di output beta 4 3 16 EESESE (penultima riga) va sostituita con beta 4 3 15 EESESE
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
Originally posted by maynard80
Io ho fatto come hai detto tu.
Originally posted by maynard80
quindi mantieni informazioni del percorso nella specifica (che va aggiornata in caso si esegue riduci)
ma per riduci hai sicuramente bisogno di un grafo di nodi, lo crei al voo anche quello? [/B]
.
Originally posted by Simeon
Ho detto che ho fatto come hai detto tu nel senso che ho i valori non di default in una struttura. Ogni volta che calcolo un valore e non lo trovo lo vado a pescare tra i valori di default... Il percorso è costituito dalla specifica, non capisco la prima frase boh sarò fuso.
Non uso grafi di nodi cmq.
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
Originally posted by Simeon
Off-Topic:
E finiamola dai.
Non ho mai avuto (e dico MAI) un crash di sistema da quando ho messo windows XP.
Magari dalla 98 in giù puoi avere ragione ma la tiritera "Linux è meglio" alla fine stufa...
sono anche io all'epilogo del progetto.. mi mancano la funzione riduci() e sottopercorso()
per la riduci se non c'era il vingolo della lunghezza minima e bastava vedere quale percorso da x,y a xi,yi aveva valore maggiore era una cagata.. cmq per la funzione riduci serve solo il punto di origine della mappa e il punto di arrivo (calcolato tramite la specifica??)?
Originally posted by ornati
Non ho parlato di crash, e neanche di Linux... ho solo ..
Originally posted by tandrea85
cmq per la funzione riduci serve solo il punto di origine della mappa e il punto di arrivo (calcolato tramite la specifica??)?
io sto x abbandonare...mi mancano riduci e sottopercorso...non so proprio come procedere (volevo farli con gli array ma in una nota in corsivo si sconsiglia vivamente..
)
se non riesco farò il prox...sperando che sia + semplice!!!
__________________
Het is allemaal naar de zak!!!
array
Originally posted by poledrisk85
io sto x abbandonare...mi mancano riduci e sottopercorso...non so proprio come procedere (volevo farli con gli array ma in una nota in corsivo si sconsiglia vivamente..)
se non riesco farò il prox...sperando che sia + semplice!!!
__________________
There are two ways of constructing a software design:
one way is to make it so simple that there are obviously no deficiencies;
the other way is to make it so complicated that there are no obvious deficiencies.
(C.A.R. Hoare)
Originally posted by poledrisk85
io sto x abbandonare...mi mancano riduci e sottopercorso...non so proprio come procedere (volevo farli con gli array ma in una nota in corsivo si sconsiglia vivamente..)
se non riesco farò il prox...sperando che sia + semplice!!!
Chi mi darebbe un suggerimento su sottopercorso?
Ho implementato tutto, mi manca solo quello, sono fulminata
ragazzi, ma a voi riduci quanto ci mette???? se do una specifica del tipo
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEENNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
il mio programma va davvero in crisi!! mi sa che ho sbagliato qualcosa..
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
C'è evidentemente qualcosa che non và, nei test che ti daranno per testare il programma potrebbero esserci specifiche anche di 30000 caratteri.
__________________
Maurizio Lombardi
Linux 2.6.14.2
-----------------------
Originally posted by MaurizioL
C'è evidentemente qualcosa che non và, nei test che ti daranno per testare il programma potrebbero esserci specifiche anche di 30000 caratteri.
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
Originally posted by MaurizioL
C'è evidentemente qualcosa che non và, nei test che ti daranno per testare il programma potrebbero esserci specifiche anche di 30000 caratteri.
Originally posted by maynard80
a quanto pare mi finisce la memoria.....
ad esempio su un cammino come
10,10 11,10 12,10 13,10 14,10 15,10 16,10 16,11 16,12 16,13 16,14 16,15 16,16
- il percorso ha 13 nodi
trovati 924 cammini di lunghezza minima tra cui 2 di peso massimo.
chiaro che 924 cammini sono un devasto per la memoria.... sopratutto per il fatto che alloco un nodo e non ne ho semplicemente un puntatore...
Originally posted by Simeon
924 cammini ? Hmm...
Boh a me sul tuo esempio va bello liscio
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
free(puntatore alla struttura dati da eliminare);
__________________
Maurizio Lombardi
Linux 2.6.14.2
-----------------------
Originally posted by maynard80
ehm...siccome sono un cretino non ho liberato lo spazio di tutti i dati che vengono distrutti durante il prog...
mi spiegate velocemente come usare la funzione free() ??? please!
ultimissima cosa, devo fare una lista di adiacenze che associano a tutti i nodi 1 o 2 adiacenze (che sono gli hop possibili per raggiungere un cammino) potete postare degli esempietti di codice?? costruisco una struttura con 2 puntatori alle adiacenze e un puntatore a next?? oppure mi conviene mettere nella struttura un array[2] con i puntatori alle 2 adiacenze?
sctruct nodoAdiacenze{
struct nodoAdiacenze *next;
struct nodo*X;
struct nodo*Y;
}
nodo è una struttura gia da me creata che memorizza tute le info sul nodo stesso;
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
E' possibile che quando malloc non va a buon fine ti termina l'esecuzione?
ma per la riduci bisogna per forza calcolare tutti i cammnini possibili da P a Q?
Originally posted by maynard80
ragazzi, ma a voi riduci quanto ci mette???? se do una specifica del tipo
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEENNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
il mio programma va davvero in crisi!! mi sa che ho sbagliato qualcosa..
Originally posted by maynard80
ultimissima cosa, devo fare una lista di adiacenze che associano a tutti i nodi 1 o 2 adiacenze (che sono gli hop possibili per raggiungere un cammino) potete postare degli esempietti di codice?? costruisco una struttura con 2 puntatori alle adiacenze e un puntatore a next?? oppure mi conviene mettere nella struttura un array[2] con i puntatori alle 2 adiacenze?
sctruct nodoAdiacenze{
struct nodoAdiacenze *next;
struct nodo*X;
struct nodo*Y;
}
nodo è una struttura gia da me creata che memorizza tute le info sul nodo stesso;
Se volete un esempio di quanto è buono un algoritmo ricorsivo sappiate solo che se l'origine è 0,0 e la fine è 7,7 vi sono più di 3000 cammini possibili...è ovviamente esponenziale.
__________________
Good wombs hath borne bad sons
Originally posted by Diuzza
E' possibile che quando malloc non va a buon fine ti termina l'esecuzione?
Chi scrive un pò di tempi d'esecuzione?
La mia riduci sembra essere O(m*lgn) con m = num di punti toccati almeno una volta da un cammino minimo e n = nodi albero mappe.
Il sottopercorso invece O(m*lgn) con m = num punti del percorso e n = nodi albero punti.
Ah scusate, cm faccio su windows a vedere i tempi reali d'esecuzione in secondi?
ok, a questo punto devo ordinare topologicamente i nodi della lista di adiacenze che ho trovato per una lista, chi sa aiutarmi? la lista ha come adiacenze i 2 nodi che possono essere visitati durante il percorso
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
Ma la copia cartacea che va consegnata entro il 27 febbraio cosa significa? Che possiamo portarla anche lunedì 27 (cioè che il 27 è incluso) oppure no??? Lo chiedo perchè nella data di consegna del 26 febbraio c'è scritto che il 26 è incluso...
![]()
Originally posted by tyzer
Ma la copia cartacea che va consegnata entro il 27 febbraio cosa significa? Che possiamo portarla anche lunedì 27 (cioè che il 27 è incluso) oppure no??? Lo chiedo perchè nella data di consegna del 26 febbraio c'è scritto che il 26 è incluso...
![]()
Copia cartacea entro il 27, giusto.
Cmq ho consegnato ieri ma ancora non mi ha risposto, spero mandi 2 righe di valutazione...
Ho dimenticato qualche free, ma il tutto funzionava per cui non dovrebbe essere grave.
Spero.
sto impazzendoooooooooooooooo..
una mano per riduci? plzz
io credo di aver ragionato come te simeon.. ma se la destinazione è un numero inferiore o negativo nn funziona una bega
Oh, cavolo...
Ho appena provato il prog su un mio vecchio pc e mi sbaglia alcuni output... ma perche 
Su quello da cui sto scrivendo ora invece è perfetto... Dio spero non sia per quelle maledette free... Sono spaventatisismo.
Cmq tandrea85 devi fare dei check nel caso l'origine sia minore...
EDIT: che poi non è manco colpa delle free visto che ora le ho aggiunte e sballa uguale... ma vedi te se dovevo avere sta sfiga sob
Sui due pc che usano WIN98 mi da gli output sballati(tutti relativi a riduci, e cmq alcune riduzini sun giuste ed altre sbagliate), su questo che usa WINXP non me ne da... Ma che vor dire ?
Originally posted by Simeon
Sui due pc che usano WIN98 mi da gli output sballati(tutti relativi a riduci, e cmq alcune riduzini sun giuste ed altre sbagliate), su questo che usa WINXP non me ne da... Ma che vor dire ?
Originally posted by YoMo
Beh nn penso che i prof testino su win98.... casomai su linux. Il mio progetto funzia sia su XP sia su linux.

Oh dunque, sono usciti i test, come vi funzionano?
Per quanto mi riguarda:
in2.txt produce percorsi differenti ma valori uguali (quindi è ok), esecuzione immediata
in3.txt produce gli stessi sottopercorsi tranne uno che me lo canna (e qui devo aver pasticciato qualcosa con sottopercorso, gia era sbagliata ed oggi il prof me l'ha fatta correggere.. ma l'ho corretta di fretta), esecuzione immediata
in4.txt immediata
in5.txt ci mette circa 10sec (sara' inefficiente come algoritmo)
e poi mo quando escono i calendari degli orali ? in teoria iniziano l'1 marzo
in2.txt produce anche a me percorsi differenti ma valori uguali, qndi tutto ok
in3.txt mi canna il quarto ![]()
7: 2,0; 3,0; 4,0; 5,0
invece di
7: 7,0; 8,0; 9,0; 10,0; 11,0
in4.txt ci mette circa 1sec, dipende cosa intende il prof x immediata...
in5.txt invece è very very fast!! ma dato che prima mi ha cannato un sottopercorso dubito della sua correttezza...
Originally posted by YoMo
in2.txt produce anche a me percorsi differenti ma valori uguali, qndi tutto ok
in3.txt mi canna il quarto
7: 2,0; 3,0; 4,0; 5,0
invece di
7: 7,0; 8,0; 9,0; 10,0; 11,0
in4.txt ci mette circa 1sec, dipende cosa intende il prof x immediata...
in5.txt invece è very very fast!! ma dato che prima mi ha cannato un sottopercorso dubito della sua correttezza...
per quanto mi riguarda, tutti gli algoritmi negli esempi sopra sono immediati (nell'ordine di centesimi di secondo)...
...purtroppo vanno quando vogliono loro (ad esempio, se stampo 2 volte la mappa, la riduci va in loop...giuro...il mio pc è possuduto...sto ancora impazzendo per cercare di capire il perchè...tra l'altro solo se stampo con s mappa, mentre se faccio stampare la lista va comunque...
misteri...
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
in3.txt mi canna il quarto
7: 2,0; 3,0; 4,0; 5,0
invece di
7: 7,0; 8,0; 9,0; 10,0; 11,0
Uscito il calendario orali.
Originally posted by Simeon
Il mio stesso identico errore! I D E N T I C O!
Comunque è facilissimo da correggere, se ci pensi un secondo (io chiaramente non ci ho pensato e l'ho corretto a metà quando il prof mi aveva detto che era sbagliata, che occasione persa...)
speriamo che il fiore non si insospettisca per cose del genere... vabbe che a quanto ho capito la tua funzione e' molto piu' efficiente della mia quindi..
Originally posted by Simeon
Uscito il calendario orali.
Originally posted by YoMo
Forse sono rimba ma nn capisco....
In questo benedetto in3.txt abbiamo ad un certo punto (prima della quarta stampa) la seguente situazione:
P0 = -1
P1 = 1
P2 = 2
P3 = -3
P4 = 7
P5 = -8
P6 = 1
P7 = 2
P8 = 2
P9 = 2
P10 = 0
Seguendo la sintassi del progetto (pag 2 in fondo) V = 7 e i sottopercorsi con tale valore sono (P1,P2,P3,P4) e (P6,P7,P8,P9,P10).
Beh, io scelgo il primo xche nel progetto c'è scritto di scegliere il sottopercorso di valore V massimo (7, qui non ci piove), indice h minimo (per me è 1) e lunghezza massima fra quelli di valore V e indice minimo h. Quindi bisogna prima trovare tutti i sottopercorsi con valore V massimo e tra questi scelgo quelli con indice minimo h, infine becco il sottopercorso (unico) che ha lunghezza massima, ma la scelta avviene tra quelli con valore V e indice h!!!! Devo scegliere si il più lungo, ma tra quelli con indice h minimo. (P6,P7,P8,P9,P10) è il sottopercorso con lunghezza massima (5 elementi) ma il progetto dice di scegliere (P1,P2,P3,P4) xche ha indice minimo h=1.
Cavolo magari sn davvero fuso e mi sto perdendo.... qualcuno mi chiarisce?!?
Originally posted by YoMo
Già, nel dubbio mi ha messo a venerdì 17![]()
Originally posted by Simeon
No no... Lui dice indice h minimo E lunghezza massima... Se ci fossero stati 2 percorsi di lunghezza 5 avresti preso quello con h=1 ma in questo caso il primo percorso ha h=1 e lunghezza 4, il secondo ha h=7 e lunghezza 5 quindi devi pescare il secondo.
Originally posted by Simeon
Ancora venerdi 17?
Ma non c'era gia stato sto mese ?![]()
Originally posted by YoMo
Ok, ma continua la frase... ti dice "...lunghezza massima fra quelli di valore V e indice minimo h."
Poi leggi nel progetto, dove c'è scritto "Formalmente, detto V il valore....", l'ultima riga dice che:
Sia T = (insieme sottop. con val max) e h = (indice iniziale min tra i sottop. appartenenti a T) ALLORA k = (indice max tra i sottop. appartenenti a T con indice iniziale h).
E' chiaro che l'ordine di scelta è
1) valore V max
se ci sn più sottopercorsi con V max allora tra questi prendo quelli con
2) indice h min
se ancora ho più di 1 sottopercorso scelgo tra quelli con V max e h min i sott. con
3) indice k max
ora per forza di cose ho 1 solo sottopercorso [/B]
)
Io sono del turno I ma ho provato anch'io il test e il mio programma sbaglia quel fatidico sottopercorso.
Ma secondo me o la specifica è stata scritta male o il proff non se la ricorda più; perchè nella specifica del progetto(nell'esempio 2) bisogna scegliere il sottopercorso migliore di:
-5 1 3 -4 10 0 -20 10 -7 -1 2 3 3 -1
dove il primo -5 è di indice 0 e l'ultimo -1 di indice 13
i percorsi di valore massimo(10) sono quelli di indici 1,4 1,5 4,5 7,7 7,12
si dice che il migliore è 1,5(lunghezza 5).
Ma se dovevo prendere quello di lunghezza massima dovevo prendere 7,12 (lunghezza 6). Invece come da richieste bisogna prendere tra quelli di valore massimo e di indice iniziale minimo, quello di indice finale massimo. quindi viene preso giustamente 1,5
cmq bo 
__________________
Non rimarra` niente di quello che siamo
ribelli al nostro destino
piccola minaccia in un tempo sbagliato.
Originally posted by Simeon
Appunto. Se tu avessi avuto 2 percorsi (p3...p5) e (p3...p6) di valore 100 e indice minimo 3, ti saresti scelto p3...p6 perche di lunghezza massima.
No no credimi, hai frainteso tu.
Ma tanto non è una cosa grave su...
Originally posted by YoMo
Nel dubbio ho mandato una mail a Fiorentini xche ero troppo convinto, qui la risposta:
si', effettivamente il percorso corretto e' 2,0; 3,0; 4,0; 5,0
Tutto è bene quel che finisce bene![]()
Originally posted by YoMo
Nel dubbio ho mandato una mail a Fiorentini xche ero troppo convinto, qui la risposta:
si', effettivamente il percorso corretto e' 2,0; 3,0; 4,0; 5,0
Tutto è bene quel che finisce bene![]()

Re: Re: Confusione sul modulo...
Originally posted by ornati
Tradotto in "C":
code:
int modulo(int a, int b) { int x; if (a < 0) { x = -a + b - 1; a += x - x % b; return a; } return a % b; }
Re: Re: Re: Confusione sul modulo...
Originally posted by Simeon
Siamo stati tutti cazziati per aver usato sta funzione![]()
Re: Re: Re: Re: Confusione sul modulo...
Originally posted by YoMo
Il motivo?

Re: Re: Re: Re: Re: Confusione sul modulo...
Originally posted by Simeon
Perchè si può scrivere in due righe, ma nessuno ci ha pensato dato che ce l'avevamo gia pronta fornita dal buon Ornati
Fortunatamente sono riuscito ad evitarmi il cazziatone, forse perchè ero ultimo...
Sembra che basti fare il modulo anche se il dividendo è negativo ma in questo caso occorre sommare al risultato il divisore (non vale in generale, così è in c).
Es.
a % b
con a = -10, b = 7:
a % b (in c) = -3
-3 + b = -3 + 7 = 4
Controlla perchè ho già rimosso e non vorrei dire una fesseria...
Cmq non è un errore che pregiudica l'esame, magari ricordati la definizione di resto:
Se a, b sono numeri naturali, con b diverso da 0, allora esistono due numeri naturali (unici), q, r tali che:
a = qb + r
con 0 = r < b
q si chiama quoziente e r resto della divisione di a per b.
Ciao
__________________
There are two ways of constructing a software design:
one way is to make it so simple that there are obviously no deficiencies;
the other way is to make it so complicated that there are no obvious deficiencies.
(C.A.R. Hoare)
Re: Re: Re: Re: Re: Re: Confusione sul modulo...
Originally posted by YoMo
Se questo lo ritiene un errore gravissimo nn voglio pensare al resto...
PS: puoi riportare la versione corretta a beneficio dei posteri?
Re: Re: Re: Re: Re: Re: Re: Confusione sul modulo...
Originally posted by Simeon
Non l'ha reputato un errore gravissimo tranquillo, si era solo un filo alterato perche in molti hanno usato quella funzione che è "inutile".
Vai tranquillo che gli orali sono ottimi, specialmente con Torelli che è davvero in grado di metterti a tuo agio.
Fiorentini è stato un po' pedante, ma nel mio caso ci ho messo 5 minuti (sara' che ero l'ultimo)
visto che gli orali dovrebbero essere finiti c'e' q1 generoso e dignitoso che 'posta' il progetto fatto x mappe2? grazzzzie
| All times are GMT. The time now is 16:43. | Pages (2): « 1 [2] Show all 246 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.