Login  Register

Re: Permutations pour une collection

Posted by SergeStinckwich on Jun 02, 2014; 5:48pm
URL: https://forum.world.st/Permutations-pour-une-collection-tp4761332p4761344.html

Il y a cet exemple en commentaire :

'abcde' combinations: 3 atATimeDo: [:each | Transcript cr; show: each
printString]



2014-06-02 18:59 GMT+02:00 Sebastien Audier <[hidden email]>:

> Ok merci Serge, j'avais bien vu cette méthode, mais je n'ai peut-être saisi
> au premier coup d'oeil son bon comportement.
>
> Je vais re-itérer mes essais.
>
> Encore merci,
>
>
> Le 2 juin 2014 18:16, Serge Stinckwich <[hidden email]> a écrit
> :
>>
>> J'ai eu un problème un peu similaire sur les combinaisons d'une
>> collection.
>> J'ai utilisé la méthode combinations: kk atATimeDo: aBlock également
>> définie sur SequenceableCollection.
>>
>>
>>
>> 2014-06-02 17:54 GMT+02:00 Sebastien Audier <[hidden email]>:
>> > Bonjour tout le monde,
>> >
>> > Je cherchais une méthode pour générer toutes les permutations possible
>> > d'une
>> > collection.
>> > A partir d'une collection, je dois obtenir une collection de collections
>> > distinctes.
>> >
>> > Il y a la méthode permutationsDo:
>> > Celle-ci est implémenté pour les classes Interval et
>> > SequenceableCollection.
>> >
>> > Cela fonctionne parfaitement pour Interval, mais pas vraiment pour une
>> > collection. Le résultat obtenu n'est pas celui auquel je m'attend.
>> >
>> > J'ai donc implémenté une méthode temporaire qui invoque la méthode déjà
>> > présente dans la classe Interval:
>> >
>> > permutationsFor: aCollection
>> > | res |
>> > res := OrderedCollection new.
>> > (1 to: (aCollection size)) permutationsDo: [ :each | | temp |
>> > temp := OrderedCollection new.
>> > each do: [ :item |
>> > temp add: (aCollection at: item)].
>> > res add: temp].
>> > ^res
>> >
>> >
>> > Pensez-vous qu'il y aurait une meilleur façon de faire ? (plus élégante
>> > ou
>> > qui existe déjà et que j'aurai loupé...)
>> >
>> > En vous remerciant par avance,
>> >
>> > --
>> > Sébastien AUDIER
>> >
>> > S.A.R.L Objectfusion,
>> > Applications web, consulting,
>> > Smalltalk developpement
>> >
>> > --
>> > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
>> > "Smalltalk-fr".
>> > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
>> > concernant, envoyez un e-mail à l'adresse
>> > [hidden email].
>> > Pour obtenir davantage d'options, consultez la page
>> > https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> Serge Stinckwich
>> UCBN & UMI UMMISCO 209 (IRD/UPMC)
>> Every DSL ends up being Smalltalk
>> http://www.doesnotunderstand.org/
>>
>> --
>> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
>> Smalltalk-fr.
>> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
>> concernant, envoyez un e-mail à l'adresse
>> [hidden email].
>> Pour plus d'options, visitez le site https://groups.google.com/d/optout .
>
>
>
>
> --
> Sébastien AUDIER
>
> S.A.R.L Objectfusion,
> Applications web, consulting,
> Smalltalk developpement
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> "Smalltalk-fr".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> [hidden email].
> Pour obtenir davantage d'options, consultez la page
> https://groups.google.com/d/optout.



--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Smalltalk-fr.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse [hidden email].
Pour plus d'options, visitez le site https://groups.google.com/d/optout .