> C'est marrant, On m'avait aussi parlé de la nécessité de trier la liste en
> entrée, pourtant chez moi ça marche sans tri, en utilisant juste isEmpty,
> tail et head et en traitant une liste de plus en plus petite par récursion.
> Bien pratique la suite de tests de Arlé, par contre sur l'interprétation
> de certaines règles :
> * Lorsqu'on demande du change sur 0€, pour moi le nombre de possibilités
> est 0, pas 1. Impossible de rendre du change sur 0€.
> * Rien ne dit qu'il faut dédoublonner la liste. Autrement dit, si je
> demande le change sur 1€ et qu'il existe des pièces de 1€ et des pièces de
> 1€', alors on peut rendre le change de deux manières différentes :) .
> My 2 cents.
> On Wednesday, September 26, 2012 5:29:24 PM UTC+2, Arié Bénichou wrote:
>> Amen ??
>> http://en.wikipedia.org/wiki/**Hallelujah<http://en.wikipedia.org/wiki/Hallelujah>
>> ps: http://youtu.be/YZUE4_**PtOk0 <http://youtu.be/YZUE4_PtOk0>
>> 2012/9/26 Sam Bessalah <samk...@gmail.com>
>>> Amen.
>>> 2012/9/26 Ugo Bourdon <bourd...@gmail.com>
>>>> Cher Maitre Yoda ! En effet ça m'a bien aidé !! J'ai réussi en ecrivant
>>>> un arbre en parcourant la liste ordonnée et en supprimer les branches de
>>>> l'arbre doublonnée. On peut faire cela en décrétant qu'un branche n'est
>>>> valide que si le noeud suivant est supérieur ou égal au noeud précédent.
>>>> Ca serait bien qu'arès le 2 octobre (date de cloture des exos je crois)
>>>> on gist nos soluce pour comparer.
>>>> Je suis heureux ! :)
>>>> Le mercredi 26 septembre 2012 16:08:34 UTC+2, Gabriel Kastenbaum a
>>>> écrit :
>>>>> Ami galérien,
>>>>> Deux indices, si tu permets ^^
>>>>> * Trier la liste des coins avant de l'utiliser. ça te permet d'éviter
>>>>> les doublons genre 4= 1+1+2 et 4 = 2+1+1
>>>>> * J'ai réussi à comprendre l'exercice en dessinant la solution pour
>>>>> coins = (1, 2) et money = 6. En le dessinant comme un arbre (gauche : le
>>>>> coin utilisé, droite: les coins pas utilisés - d'où d'ailleurs le tri
>>>>> préalable) la solution m'est apparue plus évidente. Il a suffit après de
>>>>> coder un parcours d'arbre ...
>>>>> J'espère que ça peut t'aider .
>>>>> Que la force soit avec toi ^^
>>>>> Le 26 septembre 2012 15:54, Arié Bénichou <arie.b...@gmail.com> a
>>>>> écrit :
>>>>>> test("with negative amount and any set of coins") {
>>>>>> assert(countChange(-1, Nil) === 0)
>>>>>> assert(countChange(-2, List(1)) === 0)
>>>>>> assert(countChange(-3, List(1, 2)) === 0)
>>>>>> }
>>>>>> test("with null amount and any set of coins") {
>>>>>> assert(countChange(0, Nil) === 1)
>>>>>> assert(countChange(0, List(1)) === 1)
>>>>>> assert(countChange(0, List(1, 2)) === 1)
>>>>>> }
>>>>>> test("with some amount and empty set of coins") {
>>>>>> assert(countChange(1, Nil) === 0)
>>>>>> assert(countChange(2, Nil) === 0)
>>>>>> assert(countChange(3, Nil) === 0)
>>>>>> }
>>>>>> test("with some amount X and one coin of X") {
>>>>>> assert(countChange(1, List(1)) === 1)
>>>>>> assert(countChange(2, List(2)) === 1)
>>>>>> assert(countChange(3, List(3)) === 1)
>>>>>> }
>>>>>> test("with some amount X and one coin greater than X") {
>>>>>> assert(countChange(1, List(2)) === 0)
>>>>>> assert(countChange(2, List(3)) === 0)
>>>>>> assert(countChange(3, List(4)) === 0)
>>>>>> }
>>>>>> test("with some amount X and one coin lower than X") {
>>>>>> assert(countChange(2, List(1)) === 1)
>>>>>> assert(countChange(3, List(2)) === 0)
>>>>>> assert(countChange(3, List(1)) === 1)
>>>>>> assert(countChange(4, List(3)) === 0)
>>>>>> assert(countChange(4, List(2)) === 1)
>>>>>> assert(countChange(4, List(1)) === 1)
>>>>>> }
>>>>>> test("with some amount and two different coins") {
>>>>>> assert(countChange(1, List(2, 1)) === 1)
>>>>>> assert(countChange(1, List(2, 1)) === countChange(1, List(1)) +
>>>>>> countChange(1 - 2, List(2)))
>>>>>> assert(countChange(1, List(2, 1)) === countChange(1, List(1)) +
>>>>>> countChange(1 - 2, List(2, 1)))
>>>>>> assert(countChange(2, List(2, 1)) === 2)
>>>>>> assert(countChange(2, List(2, 1)) === countChange(2, List(1)) +
>>>>>> countChange(2 - 2, List(2)))
>>>>>> assert(countChange(2, List(2, 1)) === countChange(2, List(1)) +
>>>>>> countChange(2 - 2, List(2, 1)))
>>>>>> assert(countChange(3, List(2, 1)) === 2)
>>>>>> assert(countChange(3, List(2, 1)) != countChange(3, List(1)) +
>>>>>> countChange(3 - 2, List(2)))
>>>>>> assert(countChange(3, List(2, 1)) === countChange(3, List(1)) +
>>>>>> countChange(3 - 2, List(2, 1)))
>>>>>> assert(countChange(4, List(2, 1)) === 3)
>>>>>> assert(countChange(4, List(2, 1)) === countChange(4, List(1)) +
>>>>>> countChange(4 - 2, List(2, 1)))
>>>>>> assert(countChange(5, List(2, 1)) === 3)
>>>>>> assert(countChange(5, List(2, 1)) === countChange(5, List(1)) +
>>>>>> countChange(5 - 2, List(2, 1)))
>>>>>> }
>>>>>> test("with some amount and more than two different coins") {
>>>>>> // {3,2}, {2,2,1}, {3,1,1}, {2,1,1,1}, {1,1,1,1,1}
>>>>>> assert(countChange(5, List(3, 2, 1)) === 5)
>>>>>> assert(countChange(5, List(3, 2, 1)) === countChange(5, List(2,
>>>>>> 1)) + countChange(5 - 3, List(3, 2, 1)))
>>>>>> // {4,1}, {3,2}, {2,2,1}, {3,1,1}, {2,1,1,1}, {1,1,1,1,1}
>>>>>> assert(countChange(5, List(4, 3, 2, 1)) === 6)
>>>>>> assert(countChange(5, List(4, 3, 2, 1)) === countChange(5,
>>>>>> List(3, 2, 1)) + countChange(5 - 4, List(4, 3, 2, 1)))
>>>>>> }
>>>>>> test("with some amount and list of coins having doubles") {
>>>>>> assert(countChange(5, List(1, 1)) === 1)
>>>>>> assert(countChange(5, List(4, 3, 2, 1, 1)) === 6)
>>>>>> assert(countChange(5, List(4, 3, 2, 2, 1, 1)) === 6)
>>>>>> assert(countChange(5, List(4, 3, 3, 2, 2, 1, 1)) === 6)
>>>>>> assert(countChange(5, List(4, 4, 3, 3, 2, 2, 1, 1)) === 6)
>>>>>> assert(countChange(5, List(4, 4, 4, 3, 3, 2, 2, 1, 1)) === 6)
>>>>>> }
>>>>>> 2012/9/26 Ugo Bourdon <bourd...@gmail.com>
>>>>>> Un indice pour le 3 e exo sur le count coins. J'avoue que je galère
>>>>>>> un peu. :/
>>>>>>> Le lundi 24 septembre 2012 22:08:36 UTC+2, Jean Helou a écrit :
>>>>>>>> Bonsoir,
>>>>>>>> Ce thread pour deux raisons : twitter c'est un poil limité pour
>>>>>>>> parler des exos et j'ai une question :)
>>>>>>>> J'ai fini les exercices du premier assignment mais je ne suis que
>>>>>>>> partiellement content de mes solutions bien qu'elles aient reçu la note
>>>>>>>> maximale (merci le formatteur dans eclipse).
>>>>>>>> Je me demande en particulier si il est possible d'écrire une
>>>>>>>> solution tail recursive pour les exercices 1 et 3. (Le compilateur me dit
>>>>>>>> que ma solution pour le 2 est ok).
>>>>>>>> Est-ce que c'est possible (au moins théoriquement) et si oui
>>>>>>>> comment ?
>>>>>>>> Merci
>>>>>>>> Jean