Entrar
¿Nuevo usuario? Inscribirme
smalltalking · Un lugar para el estudio y desarrollo de Ambientes de Objetos virtuales.
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés cambiar el orden de los mensajes. Simplemente hacé clic en el enlace de columna fecha. Tus preferencias se guardarán, por lo tanto no necesitarás hacerlo otra vez cuando vuelvas a entrar.

Mensajes

  Mensajes Ayuda
Avanzado
Subconjuntos   Lista de mensajes  
Responder | Reenviar Mensaje #9154 de 17205 |
Re: [objetos] Subconjuntos

Gracias por el aporte. No podes darme un ejemplo o remitirme a algun lado
donde pueda ver como se responde a un do: mediante esta modadlidad que
señalas?

(Si, necesito todas la combinaciones pero solo una a la vez)

Muchas gracias a todo Smalltalking por la ayuda.

German

On Friday 28 February 2003 16:39, Alejandro F. Reimondo wrote:
> Hola,
>
> Disculpen la inocencia de mi comentario pero...
>
> Seguro necesitan tener todos los objetos
> que determinan los subconjuntos?
> Seguro?
> Para que?
> Necesitan tener todos los subconjuntos al mismo tiempo?
>
> Lo pregunto porque en caso de no ser así...
> Lo que pueden tener es un objeto polimorfico
> con el conjunto de resultados y que a medida
> que se necesitan se construyen...
>
> Es decir...
> si Uds va a pedir todos los subconjuntos
> para hacer algo como:
>
> aCollection allSubsets do: [:subSet| subSet xxxxx ]
>
> NO es necesario conocer todos los subsets
> al mismo tiempo!
> Lo único necesario es responder a #do:
> con cada subset.
>
> Esto se los comento porque muchas veces he visto
> que por una comodidad conceptual se comete
> el error de enviar mensajes para construir colecciones
> que casi nunca se recorren en su totalidad
> o cuyos elementos son obsoletos a medida
> que la colección se va usando/recorriendo.
>
> Como ven, no he aportado una nueva solución
> solo una pregunta... esperando pueda ser de utilidad.
>
> hasta pronto,
> Ale.
>
> ----- Original Message -----
> From: "German" <netquake@...>
> To: <smalltalking@...>
> Sent: Friday, February 28, 2003 11:51 AM
> Subject: Re: [objetos] Subconjuntos
>
> > Estos metodos permiten calcular rapidamente los subconjuntos de un
>
> conjunto
>
> > (en los metodos self es Set o subclase) (en VW). Asume que los elementos
>
> del
>
> > conjunto son ordenables. Sugerencias para optimizar este codigo son
> > bienvenidas.
> >
> > Saludos!
> >
> > German
> >
> >
> > parts
> > "returns subsets of the receiver"
> >
> > |retSet|
> >
> > retSet := self class new.
> > 1 to: self maxBits do:[:i| retSet add: (self bitPosition: i)].
> >
> > ^retSet
> >
> >
> >
> > maxBits
> > "return maximun binary combination of the receiver (see bitPosition:)"
> >
> > ^(2 raisedTo: self size)-1
> >
> >
> > bitPosition: aBinaryNumber
> > "returns the subset of the receiver mapped to aBinaryNumber"
> >
> > |sCol bin set|
> >
> > bin := aBinaryNumber.
> > set := self class new.
> > sCol := self asSortedCollection.
> > 1 to: self size do: [:i|
> > (bin lowBit = 1)
> > ifTrue:[set add: sCol removeLast.]
> > ifFalse:[sCol removeLast.].
> > bin := bin bitShift: -1.
> > ].
> >
> > ^set
> >
> > On Tuesday 25 February 2003 22:51, German Morales wrote:
> > > It seems that German wrote:
> > > > Hola lista!
> > >
> > > Hola,
> > >
> > > > Quisiera saber como hacer para obtener los subconjuntos (o conj. de
> > > > partes) de un conjunto (clase Set o derivada).
> > > >
> > > > Por ejemplo para:
> > > >
> > > > Set('A','B','C')
> > > >
> > > > obtener:
> > > >
> > > > Set('A','B','C')
> > > > Set('A','B')
> > > > Set('B','C')
> > > > Set('A','C')
> > > > Set('A')
> > > > Set('B')
> > > > Set('C')
> > >
> > > Yo quise hacer lo mismo hace poco, y lo unico que encontre es lo que te
> > > muestro mas abajo, pero realmente me parece poco elegante, asi que si
> > > alguien encuentra algo mejor, sera bienvenido.
> > >
> > > Aqui tenes el ejemplo que vos pedias:
> > >
> > > aSet _ Set with:'A' with:'B' with:'C'.
> > > anOrderedCollection _ aSet asOrderedCollection.
> > > allCombinations _ Bag new.
> > > 1
> > > to: anOrderedCollection size
> > > do: [:eachSize |
> > > anOrderedCollection
> > > combinations: eachSize
> > > atATimeDo: [:eachCombination |
> > > allCombinations add: eachCombination copy]].
> > >
> > >
> > > Y aqui varios detalles a tener en cuenta:
> > > -esto anda en Squeak, no se en el resto de los ST
> > > -primero hay que pasarlo a OrderedCollection porque el metodo a usar
>
> esta
>
> > > disponible en SequenceableCollection
> > > -para obtener las combinaciones de N elementos, hay que mandar el
>
> mensaje
>
> > > #combinations:atATimeDo:
> > > -esto entonces lo tenes que hacer desde 1 (('A'), ('B'), ('C')) hasta
> > > el size de tu collection ('A', 'B', 'C').
> > > -IMPORTANTE: fijate el copy del final. esto es porque el
> > > #combinations:atATimeDo: le pasa al bloque siempre la misma collection
> > > pero con distintos elementos, en lugar de una collection nueva cada
> > > vez. esta es la parte mas fea ;-)
> > > -cada elemento en el resultado es un Array, no un Set como vos
>
> pretendias
>
> > > -despues de todo se han visto cosas peores ;-)
> > >
> > > > Saludos a todos! (Gracias!)
> > >
> > > Saludos!
> > >
> > > > German
> > >
> > > Yoda (anotherGerman)
> > >
> > >
> > >
> > >
> > > Para retirarse del grupo,
> > > puede enviar un email a:
> > > smalltalking-unsubscribe@egroups.com
> > >
> > >
> > > Tu uso de Yahoo! Grupos está sujeto a las
> > > http://ar.docs.yahoo.com/info/utos.html
> >
> > Para retirarse del grupo,
> > puede enviar un email a:
> > smalltalking-unsubscribe@egroups.com
> >
> >
> > Tu uso de Yahoo! Grupos está sujeto a las
>
> http://ar.docs.yahoo.com/info/utos.html
>
>
>
>
> Para retirarse del grupo,
> puede enviar un email a:
> smalltalking-unsubscribe@egroups.com
>
>
> Tu uso de Yahoo! Grupos está sujeto a las
> http://ar.docs.yahoo.com/info/utos.html




Sáb, 1 de Mar, 2003 7:58 pm

netquake@...
Enviar correo Enviar correo

Reenviar Mensaje #9154 de 17205 |
Desplegar mensajes Autor Ordenar por fecha

Hola lista! Quisiera saber como hacer para obtener los subconjuntos (o conj. de partes) de un conjunto (clase Set o derivada). Por ejemplo para: ...
German
netquake@...
Enviar correo
25 de Feb, 2003
10:21 pm

... Hola, ... Yo quise hacer lo mismo hace poco, y lo unico que encontre es lo que te muestro mas abajo, pero realmente me parece poco elegante, asi que si ...
German Morales
moralesg.rm
En línea Enviar correo
26 de Feb, 2003
1:51 am

Estos metodos permiten calcular rapidamente los subconjuntos de un conjunto (en los metodos self es Set o subclase) (en VW). Asume que los elementos del ...
German
netquake@...
Enviar correo
28 de Feb, 2003
2:53 pm

Hola, Disculpen la inocencia de mi comentario pero... Seguro necesitan tener todos los objetos que determinan los subconjuntos? Seguro? Para que? Necesitan...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
28 de Feb, 2003
7:49 pm

... Bueno, justamente yo entendi que esa es la idea detras del mensaje #combinations:atATimeDo: Por eso envia al bloque la misma coleccion con distintos...
German Morales
moralesg.rm
En línea Enviar correo
28 de Feb, 2003
8:17 pm

Gracias por el aporte. No podes darme un ejemplo o remitirme a algun lado donde pueda ver como se responde a un do: mediante esta modadlidad que señalas? (Si,...
German
netquake@...
Enviar correo
1 de Mar, 2003
8:15 pm

Hola, ... Entonces puede ser: aCollection combinations do: aBlock Y encapsular en el resultante de combinations un objetito que haga como que las tiene... ... ...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
28 de Feb, 2003
8:31 pm

... make it work, make it right, make it fast. ... Me parece que estas confundiendo metodo con mensaje, de tanto explicarlo se te mezclo ;-) enjoy! Yoda...
German Morales
moralesg.rm
En línea Enviar correo
1 de Mar, 2003
3:17 pm

Hola, a) Para devolver la combinación de que buscas, "normalmente" haces lo siguiente: 1.- Creas una colección donde almacenarás todos los resultados. 2.-...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
3 de Mar, 2003
3:08 pm
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda