Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion ProgFun W1 - discussion autour des exercices
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Jean Helou  
View profile   Translate to Translated (View Original)
 More options Sep 26 2012, 12:15 pm
From: Jean Helou <jean.he...@gmail.com>
Date: Wed, 26 Sep 2012 18:15:46 +0200
Local: Wed, Sep 26 2012 12:15 pm
Subject: Re: ProgFun W1 - discussion autour des exercices

+1

--
jean
Le 26 sept. 2012 18:14, "Pierre-Yves Ricau" <py.ri...@gmail.com> a écrit :

> 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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.