|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
Bonjour à tous,
Je souhaitais me faire une petite fonction qui coupe une liste en deux : Code :
Code :
Edit : et encore une fois c'est sous GNU Prolog que ça se passe. ^^' |
||||
|
|
00
|
|
|
#2 | ||||
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
Bon je n'ai toujours pas trouvé la solution mais en changeant un peu le code :
Code :
Code :
|
||||
|
|
00
|
|
|
#3 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Sans rien préjuger de ton code, X = [T |X] échoue toujours, X ne peut jamais être unifié avec [T | X], (en Prolog, il n'y a pas d'assignation, une variable garde toujours la même valeur dans une clause), conclusion ton code ne fonctionnera à mon avis jamais.
Citation:
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
Le code qui marche :
Code :
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Un petit défi algo : comment tronquer une liste en deux parties plus ou moins égales (à un près) sans en connaitre la longueur à l'avance ?
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#6 | ||||
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
Déjà je ne savais pas qu'on pouvait rajouter des messages lorsqu'une discussion était marqué comme résolue, un petit défi qui a l'air simple et pourtant ... J'ai essayé de produire ce code :
Code :
Code :
Il va vraiment falloir m'expliquer ... |
||||
|
|
00
|
|
|
#7 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Citation:
Là, c'est les vacances, et c'est un petit défi amusant dans la continuité de ton post. Je n'ai pas le temps aujourd'hui de répondre à tes questions mais déjà, tu calcules des longueurs et donc ce n'est pas bon.
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
|
00
|
|
|
#8 | ||||
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
J'ai trouvé une solution plus élégante à mon premier problème sur Internet ...
Code :
Du coup un peu dégouté d'avoir perdu mon temps sur cette question. Pour ton problème Trap D je dirais qu'il faut simplement calculer la longueur de la liste passé en paramètre avant d'utiliser la fonction split. Quelque chose dans ce style là : Code :
|
||||
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Non, non, et non, il ne faut pas JAMAIS calculer la longueur de la chaine !
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
J'imagine que tu as une solution plus élégante encore qui évite de calculer la longueur de la chaine. Mais je dois admettre que ta réaction m'interpelle, pourquoi ne faut il jamais calculer la longueur d'une liste ?
|
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
On s'est mal compris, pour le défi que je te propose, tu ne dois jamais calculer la longueur de la liste, c'est tout.
Pour d'autres algos, ça peut-être nécessaire. Disons que le calcul de la longueur d'une liste peut-être très couteux (imagine une liste de 1 000 000 d'éléments, tu dois perdre du temps pour calculer la longueur), c'est pour ça que dans certains langage, le type String contient la longueur comme champs interne de la structure. Quand on peux éciter, on le fait.
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
Après de longues réflexions je dois admettre que je m'avoue vaincu.
|
|
|
00
|
|
|
#13 | |||
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Oh, c'est assez simple, il suffit d'y penser : on travaille sur deux listes, identiques, et à chaque fois qu'on enlève un élément à la première liste, on en enlève deux à la seconde.
Code :
Citation:
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|||
|
|
00
|
|
|
#14 | |||
|
Invité de passage
![]() Inscription : août 2012 Messages : 15 ![]() |
Citation:
|
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com