in virtù degli orari usciti apro il 3d del corso.
Benvengano consigli da chi ha già sostenuto l'esame.
- VanillaSky
- Ingegneria Informatica - Triennale
- Giovedì, 22 Febbraio 2007
- Subscribe via email
Comment
There are no comments made yet.
Il predicato per il massimo lavora come tutti i predicati sulle liste...
Conoscendo il massimo di una lista...
Aggiungendo a questa un elemento (la testa), il nuovo massimo sarà aggiornato, solo se la testa è maggiore del "vecchio massimo"...
Il problema è che non capisco perché non basti questa condizione... :?
Anche io l'avevo scritto come te, poi mi sono reso conte che così specifichi quando la testa è il massimo della coda, ma se nelle chiamate ricorsive capita di trovare un elemento <= alla testa non viene considerato come soluzione.
Questa è la mia proposta, una con le condizioini esplicite, l'altra col una cut:
[code type="markup"]maxlist([X],X).
maxlist([X|Xs],X) :- maxlist(Xs,M), X>M.
maxlist([X|Xs],M) :- maxlist(Xs,M), X=<M.[/code]
[code type="markup"]
maxlist([X],X).
maxlist([X|Xs],X) :- maxlist(Xs,M), X>M, !.
maxlist([_|Xs],M) :- maxlist(Xs,M).[/code][/code]
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 221
Accepted Answer
Pending Moderation
Come quel maledetto Pete che non si sa che cos'è e quella Duffy che non è una papera ma un uomo...
Attento: l'ultima riga di quella ontologia dice:
<Duck rdf:IF="Duffy> quindi duffy è SICURAMENTE una papera. In questa ontologia c'è invece la stranezza che Duck è sottoclasse di Person, quindi un Duck è ANCHE una Person.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 222
Accepted Answer
Pending Moderation
secondo me confondi il fatto che commesso reato è una relazione si che sta dentro senza patente ma non è detto che si trovi soli li,quindi non puoi stabilire che tutte le istanze che abbiano commessoreato facciano parte di senzapatente.potrebbero far parte come no.non c'è un legame diretto come diceva acela
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 223
Il bello è che anche secondo me tutta l'ontologia è fatta apposta per farti cascare nel tranello...
Ma non riesco a non cascarci...
Come quel maledetto Pete che non si sa che cos'è e quella Duffy che non è una papera ma un uomo...
Ma non riesco a non cascarci...
Come quel maledetto Pete che non si sa che cos'è e quella Duffy che non è una papera ma un uomo...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 224
Partiamo dal fatto che non mi convince la prima dichiarazione...
Diciamo che appartiene alla classe "senzapatente" qualsiasi istanza che abbia una relazione di tipo "commessoreato".
Partiamo poi dalla fine.
E' inizializzata l'istanza "guidainstatodiebrezza" della classe "reatoautomobilistico", e viene asserito che una istanza della classe "persona" ha una relazione di tipo "commessoreato" con l'istanza "guidainstatodiebrezza".
Poi sappiamo che "reatoautomobilistico" è sottoclasse di "reato".
Dunque la "perona" di prima ha una relazione di tipo "commessoreato" con un'istanza di tipo "reato" ("reatoautomobilistico" è sottoclasse di reato).
Secondo la prima dichiarazione dunque, la persona in questione è "senzapatente".
Il tutto insomma si focalizza sul fatto che se un'istanza ha una relazione di tipo "commessoreato" con un'istanza della classe "reatoautomobilistico" si può secondo me inferire che abbia una relazione con un'istanza della classe reato.
Voi che ne dite belli miei???
PS: ditemi voi se dopo una partita di calcetto uno si può piazzare al volo sul PC per vedere se qualcuno aveva risposto...
Diciamo che appartiene alla classe "senzapatente" qualsiasi istanza che abbia una relazione di tipo "commessoreato".
Partiamo poi dalla fine.
E' inizializzata l'istanza "guidainstatodiebrezza" della classe "reatoautomobilistico", e viene asserito che una istanza della classe "persona" ha una relazione di tipo "commessoreato" con l'istanza "guidainstatodiebrezza".
Poi sappiamo che "reatoautomobilistico" è sottoclasse di "reato".
Dunque la "perona" di prima ha una relazione di tipo "commessoreato" con un'istanza di tipo "reato" ("reatoautomobilistico" è sottoclasse di reato).
Secondo la prima dichiarazione dunque, la persona in questione è "senzapatente".
Il tutto insomma si focalizza sul fatto che se un'istanza ha una relazione di tipo "commessoreato" con un'istanza della classe "reatoautomobilistico" si può secondo me inferire che abbia una relazione con un'istanza della classe reato.
Voi che ne dite belli miei???
PS: ditemi voi se dopo una partita di calcetto uno si può piazzare al volo sul PC per vedere se qualcuno aveva risposto...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 225
Accepted Answer
Pending Moderation
ok fin qui siamo d'accordo, ma invece cosa mi sai dire sulle istanze inferibili di senza patente?
Dico che non ce ne sono! L'ontologia mi pare (volutamente) fatta male, sappiamo che "senza patente" è un sottoinsieme di commessoreato, ma non c'è scritto da nessuna parte che "senza patente" è legato al "reatoautomobilistico"
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 226
Accepted Answer
Pending Moderation
esempio di marco79:
possiedemacchina è InversaFunzionale ==> dominio diventa identificatore ===> quindi se ho il nome di una Persona so esattamente quale macchina ha (in questo esempio quindi una Persona non può avere più di due macchine ==> le due macchine sono la stessa cosa ===> Pino e Mario SONO le stesse persone.
ok fin qui siamo d'accordo, ma invece cosa mi sai dire sulle istanze inferibili di senza patente?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 227
Effettivamente non è troppo diversa da quella che avevo in mente...
La riga
maxlist([H|[J|T]],MAX)
funziona, mentre la mia
maxlist([H,J|T]],MAX)
evidentemente no...
Grazie comunque...
La riga
maxlist([H|[J|T]],MAX)
funziona, mentre la mia
maxlist([H,J|T]],MAX)
evidentemente no...
Grazie comunque...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 228
Accepted Answer
Pending Moderation
se ti può essere di aiuto ti posto la mia procedura:
maxlist([],N).
maxlist([H|[]],H).
maxlist([H|[J|T]],MAX) :- H < J , maxlist([J|T],MAX).
maxlist([H|[J|T]],MAX) :- H >= J, maxlist([H|T],MAX).
maxlist([],N).
maxlist([H|[]],H).
maxlist([H|[J|T]],MAX) :- H < J , maxlist([J|T],MAX).
maxlist([H|[J|T]],MAX) :- H >= J, maxlist([H|T],MAX).
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 229
Quindi, richiamando la procedura, è come se stabilissi due massimi.
Continua finchè il primo max è maggiore del secondo.
In caso contrario, passa ad esaminare l'altro max.
E' così?
Continua finchè il primo max è maggiore del secondo.
In caso contrario, passa ad esaminare l'altro max.
E' così?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 230
Adesso provo un'altra versione di max_of_a_list...
max_of_a_list(List,X):-
sort(List,SortedList),
last_elem(SortedList,M),
X is M.
sort e last_elem prima ordinano la lista e poi prendono l'ultimo elemento...
max_of_a_list(List,X):-
sort(List,SortedList),
last_elem(SortedList,M),
X is M.
sort e last_elem prima ordinano la lista e poi prendono l'ultimo elemento...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 231
Accepted Answer
Pending Moderation
Si scusate, mi sono sbagliato invertendo le variabili.
Ma che mi dite del predicato max???
Il predicato per il massimo lavora come tutti i predicati sulle liste...
Conoscendo il massimo di una lista...
Aggiungendo a questa un elemento (la testa), il nuovo massimo sarà aggiornato, solo se la testa è maggiore del "vecchio massimo"...
Il problema è che non capisco perché non basti questa condizione... :?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 232
Si scusate, mi sono sbagliato invertendo le variabili.
Ma che mi dite del predicato max???
Ma che mi dite del predicato max???
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 233
Accepted Answer
Pending Moderation
THIS IS CONFUSION!!!
La "lenght" come l'hai scritta, ragno nero docet, non funziona, nemmeno nella versione "corretta"...
[size=2]Almeno io ho visto questo, con i miei occhi...[/size]
La "lenght" come l'hai scritta, ragno nero docet, non funziona, nemmeno nella versione "corretta"...
[size=2]Almeno io ho visto questo, con i miei occhi...[/size]
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 234
Accepted Answer
Pending Moderation
esempio di marco79:
possiedemacchina è InversaFunzionale ==> dominio diventa identificatore ===> quindi se ho il nome di una Persona so esattamente quale macchina ha (in questo esempio quindi una Persona non può avere più di due macchine ==> le due macchine sono la stessa cosa ===> Pino e Mario SONO le stesse persone.
possiedemacchina è InversaFunzionale ==> dominio diventa identificatore ===> quindi se ho il nome di una Persona so esattamente quale macchina ha (in questo esempio quindi una Persona non può avere più di due macchine ==> le due macchine sono la stessa cosa ===> Pino e Mario SONO le stesse persone.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 235
Ok, ok, ho detto una baggianata.
Lenght funziona ugualmente.
Non capisco comunque la max_of_a_list:
max_of_a_list( [Head|Rest], Head) :-
max_of_a_list( Rest, Max ),
Head > Max.
Che diamine di procedimento fa?
Lenght funziona ugualmente.
Non capisco comunque la max_of_a_list:
max_of_a_list( [Head|Rest], Head) :-
max_of_a_list( Rest, Max ),
Head > Max.
Che diamine di procedimento fa?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 236
Accepted Answer
Pending Moderation
Questo discorso dell'ordine l'avevamo notato...
Io penso che dipenda dal fatto che valuti quelle condizioni in AND dalla prima all'ultima...
E NON riesca quindi ad assegnare un valore ad N, non sapendo quanto vale M, fino a che non chiude l'ultima chiamata ricorsiva...
Comunque non mi sembra giusta quella length scritta così...
M ed N mi sembrano proprio scambiati, in entrambi i casi... :?
Io penso che dipenda dal fatto che valuti quelle condizioni in AND dalla prima all'ultima...
E NON riesca quindi ad assegnare un valore ad N, non sapendo quanto vale M, fino a che non chiude l'ultima chiamata ricorsiva...
Comunque non mi sembra giusta quella length scritta così...
M ed N mi sembrano proprio scambiati, in entrambi i casi... :?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 237
Infatti non capisco neanche io.
A dire il vero, mi vergogno un po' a dirlo, un errore simile l'avevo fatto quando ho provato a scrivere il predicato "lenght".
Io l'ho scritto così:
lenght([],0).
lenght([Y|U],N):-
M is N + 1,
lenght([U],M).
Mentre la versione corretta è:
lenght([],0).
lenght([Y|U],N):-
lenght([U],M),
M is N + 1.
Qualcuno sa dirmi il perchè???
Lo stesso vale per max_list.
Perchè la condizione di > o < è posta DOPO aver richiamato ricorsivamente la procedura???
A dire il vero, mi vergogno un po' a dirlo, un errore simile l'avevo fatto quando ho provato a scrivere il predicato "lenght".
Io l'ho scritto così:
lenght([],0).
lenght([Y|U],N):-
M is N + 1,
lenght([U],M).
Mentre la versione corretta è:
lenght([],0).
lenght([Y|U],N):-
lenght([U],M),
M is N + 1.
Qualcuno sa dirmi il perchè???
Lo stesso vale per max_list.
Perchè la condizione di > o < è posta DOPO aver richiamato ricorsivamente la procedura???
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 238
Accepted Answer
Pending Moderation
E questa come vi pare???
[code type="markup"]max_list([X],X).
max_list([H,L|Rest],H):-
H>=L,
max_list([H|Rest],H).
max_list([H,L|Rest],H):-
H<L,
max_list([L|Rest],L).[/code]
Ti dico la verità... Non ho il tempo per ragionarci su...
Ma dandolo in pasto all'SWI-Prolog NON restituisce il massimo della lista...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 239
Non vedo dove...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 240
There are no replies made for this post yet.
Be one of the first to reply to this post!
Be one of the first to reply to this post!
Please login to post a reply
You will need to be logged in to be able to post a reply. Login using the form on the right or register an account if you are new here. Register Here »