Que groso...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
33 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
A ver, en esta jerarquia

A1
 B1
   C1
   C2
     D1
 B2
   C3
     D2
     D3
     D4
   C4

habia obtenido 18900 maneras buscando a la fuerza bruta (con un codigo
horrible que me niego a compartir porque me da vergüenza!).  Veamos,
segun lo de aca abajo, la formula predice:

N(A1) = M(A1)! / M(A1)M(B1)M(C1)M(C2)M(D1)M(B2)M(C3)M(D2)M(D3)M(D4)M(C4)

Reemplazando (y escribiendo en "Smalltalk"),

N(A1) = 11! / 11 / 4 / 1 / 2 / 1 / 6 / 4 / 1 / 1 / 1 / 1 = 18900

Groso, muy groso.

Andres.

2010/12/21 Angel Java Lopez <[hidden email]>:

> Si, termina siendo
>
> N(A) = M(A)! / M(A)M(B1)M(B2)....M(C1)M(C2) ......
>
> donde M(X) es la cantidad de nodos del arbol que nace en X, incluyendo X.
>
> Los casos extremos son:
>
> M(B1)=M(B2)=....=M(Bn)=1
>
> dando N(A) = M(A)!/M(A) = (M(A)-1)!
>
> y
>
> M(A)=M(B1)+1
> M(B1)=M(C1)+1
> ...
>
> dando N(A) = M(A)! / M(A)! = 1
>
>
> 2010/12/21 Andres Valloud <[hidden email]>
>>
>> > Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>> > forma del nodo para maximizar N(A)? Y para minimizarlo?
>>
>> Se minimiza con
>>
>> A1
>>  B1
>>    ...
>>      R1
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
Che Angel, bueno, resulta que yo habia puesto esto como un ejercicio
del volumen 2 de fundamentals pero sin solucion.  Ahora que diste una
solucion, necesito dos cosas.

1. Como queres que este presentada la solucion?  Obviamente voy a usar
lo que vos digas, asi que preferiria que mas o menos estructures lo
que voy a poner como prefieras.

2. Exactamente como hay que escribir tu nombre en LaTeX?  Asi?

\'Angel ``Java" L\'opez

O de alguna otra manera?

Gracias!
Andres.

2010/12/21 Andres Valloud <[hidden email]>:

> A ver, en esta jerarquia
>
> A1
>  B1
>   C1
>   C2
>     D1
>  B2
>   C3
>     D2
>     D3
>     D4
>   C4
>
> habia obtenido 18900 maneras buscando a la fuerza bruta (con un codigo
> horrible que me niego a compartir porque me da vergüenza!).  Veamos,
> segun lo de aca abajo, la formula predice:
>
> N(A1) = M(A1)! / M(A1)M(B1)M(C1)M(C2)M(D1)M(B2)M(C3)M(D2)M(D3)M(D4)M(C4)
>
> Reemplazando (y escribiendo en "Smalltalk"),
>
> N(A1) = 11! / 11 / 4 / 1 / 2 / 1 / 6 / 4 / 1 / 1 / 1 / 1 = 18900
>
> Groso, muy groso.
>
> Andres.
>
> 2010/12/21 Angel Java Lopez <[hidden email]>:
>> Si, termina siendo
>>
>> N(A) = M(A)! / M(A)M(B1)M(B2)....M(C1)M(C2) ......
>>
>> donde M(X) es la cantidad de nodos del arbol que nace en X, incluyendo X.
>>
>> Los casos extremos son:
>>
>> M(B1)=M(B2)=....=M(Bn)=1
>>
>> dando N(A) = M(A)!/M(A) = (M(A)-1)!
>>
>> y
>>
>> M(A)=M(B1)+1
>> M(B1)=M(C1)+1
>> ...
>>
>> dando N(A) = M(A)! / M(A)! = 1
>>
>>
>> 2010/12/21 Andres Valloud <[hidden email]>
>>>
>>> > Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>>> > forma del nodo para maximizar N(A)? Y para minimizarlo?
>>>
>>> Se minimiza con
>>>
>>> A1
>>>  B1
>>>    ...
>>>      R1
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Angel Java Lopez
Ah! Barbaro! Mira que interesante....

Yo esperaba tu confirmacion, para escribir un post, no usando clases y fileout, sino arbol y nodos.

Espacio para la solucion en tu libro? A mi me gusto que me equivoque, y que cuando di con la solucion, recien ahi hubo "aja" y encontre otra forma de llegar, mas rapida y hasta mas intuitiva.

Tenias una solucion en formula? Creo que si, pero queria confirmar.

Si, asi esta bien el nombre.

Cuando esperas que aparezca el libro?

Sigo meditando con el volumen 1, muy bueno!

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez


2010/12/21 Andres Valloud <[hidden email]>
Che Angel, bueno, resulta que yo habia puesto esto como un ejercicio
del volumen 2 de fundamentals pero sin solucion.  Ahora que diste una
solucion, necesito dos cosas.

1. Como queres que este presentada la solucion?  Obviamente voy a usar
lo que vos digas, asi que preferiria que mas o menos estructures lo
que voy a poner como prefieras.

2. Exactamente como hay que escribir tu nombre en LaTeX?  Asi?

\'Angel ``Java" L\'opez

O de alguna otra manera?

Gracias!
Andres.

2010/12/21 Andres Valloud <[hidden email]>:
> A ver, en esta jerarquia
>
> A1
>  B1
>   C1
>   C2
>     D1
>  B2
>   C3
>     D2
>     D3
>     D4
>   C4
>
> habia obtenido 18900 maneras buscando a la fuerza bruta (con un codigo
> horrible que me niego a compartir porque me da vergüenza!).  Veamos,
> segun lo de aca abajo, la formula predice:
>
> N(A1) = M(A1)! / M(A1)M(B1)M(C1)M(C2)M(D1)M(B2)M(C3)M(D2)M(D3)M(D4)M(C4)
>
> Reemplazando (y escribiendo en "Smalltalk"),
>
> N(A1) = 11! / 11 / 4 / 1 / 2 / 1 / 6 / 4 / 1 / 1 / 1 / 1 = 18900
>
> Groso, muy groso.
>
> Andres.
>
> 2010/12/21 Angel Java Lopez <[hidden email]>:
>> Si, termina siendo
>>
>> N(A) = M(A)! / M(A)M(B1)M(B2)....M(C1)M(C2) ......
>>
>> donde M(X) es la cantidad de nodos del arbol que nace en X, incluyendo X.
>>
>> Los casos extremos son:
>>
>> M(B1)=M(B2)=....=M(Bn)=1
>>
>> dando N(A) = M(A)!/M(A) = (M(A)-1)!
>>
>> y
>>
>> M(A)=M(B1)+1
>> M(B1)=M(C1)+1
>> ...
>>
>> dando N(A) = M(A)! / M(A)! = 1
>>
>>
>> 2010/12/21 Andres Valloud <[hidden email]>
>>>
>>> > Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>>> > forma del nodo para maximizar N(A)? Y para minimizarlo?
>>>
>>> Se minimiza con
>>>
>>> A1
>>>  B1
>>>    ...
>>>      R1
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Javier Burroni
http://imgs.xkcd.com/comics/tree.png

2010/12/21 Angel Java Lopez <[hidden email]>:

> Ah! Barbaro! Mira que interesante....
>
> Yo esperaba tu confirmacion, para escribir un post, no usando clases y
> fileout, sino arbol y nodos.
>
> Espacio para la solucion en tu libro? A mi me gusto que me equivoque, y que
> cuando di con la solucion, recien ahi hubo "aja" y encontre otra forma de
> llegar, mas rapida y hasta mas intuitiva.
>
> Tenias una solucion en formula? Creo que si, pero queria confirmar.
>
> Si, asi esta bien el nombre.
>
> Cuando esperas que aparezca el libro?
>
> Sigo meditando con el volumen 1, muy bueno!
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://www.ajlopez.com/
> http://twitter.com/ajlopez
>
>
> 2010/12/21 Andres Valloud <[hidden email]>
>>
>> Che Angel, bueno, resulta que yo habia puesto esto como un ejercicio
>> del volumen 2 de fundamentals pero sin solucion.  Ahora que diste una
>> solucion, necesito dos cosas.
>>
>> 1. Como queres que este presentada la solucion?  Obviamente voy a usar
>> lo que vos digas, asi que preferiria que mas o menos estructures lo
>> que voy a poner como prefieras.
>>
>> 2. Exactamente como hay que escribir tu nombre en LaTeX?  Asi?
>>
>> \'Angel ``Java" L\'opez
>>
>> O de alguna otra manera?
>>
>> Gracias!
>> Andres.
>>
>> 2010/12/21 Andres Valloud <[hidden email]>:
>> > A ver, en esta jerarquia
>> >
>> > A1
>> >  B1
>> >   C1
>> >   C2
>> >     D1
>> >  B2
>> >   C3
>> >     D2
>> >     D3
>> >     D4
>> >   C4
>> >
>> > habia obtenido 18900 maneras buscando a la fuerza bruta (con un codigo
>> > horrible que me niego a compartir porque me da vergüenza!).  Veamos,
>> > segun lo de aca abajo, la formula predice:
>> >
>> > N(A1) = M(A1)! / M(A1)M(B1)M(C1)M(C2)M(D1)M(B2)M(C3)M(D2)M(D3)M(D4)M(C4)
>> >
>> > Reemplazando (y escribiendo en "Smalltalk"),
>> >
>> > N(A1) = 11! / 11 / 4 / 1 / 2 / 1 / 6 / 4 / 1 / 1 / 1 / 1 = 18900
>> >
>> > Groso, muy groso.
>> >
>> > Andres.
>> >
>> > 2010/12/21 Angel Java Lopez <[hidden email]>:
>> >> Si, termina siendo
>> >>
>> >> N(A) = M(A)! / M(A)M(B1)M(B2)....M(C1)M(C2) ......
>> >>
>> >> donde M(X) es la cantidad de nodos del arbol que nace en X, incluyendo
>> >> X.
>> >>
>> >> Los casos extremos son:
>> >>
>> >> M(B1)=M(B2)=....=M(Bn)=1
>> >>
>> >> dando N(A) = M(A)!/M(A) = (M(A)-1)!
>> >>
>> >> y
>> >>
>> >> M(A)=M(B1)+1
>> >> M(B1)=M(C1)+1
>> >> ...
>> >>
>> >> dando N(A) = M(A)! / M(A)! = 1
>> >>
>> >>
>> >> 2010/12/21 Andres Valloud <[hidden email]>
>> >>>
>> >>> > Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es
>> >>> > la
>> >>> > forma del nodo para maximizar N(A)? Y para minimizarlo?
>> >>>
>> >>> Se minimiza con
>> >>>
>> >>> A1
>> >>>  B1
>> >>>    ...
>> >>>      R1
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org



--
" To be is to do " ( Socrates )
" To be or not to be " ( Shakespeare )
" To do is to be " ( Sartre )
" Do be do be do " ( Sinatra )

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
In reply to this post by Angel Java Lopez
> Yo esperaba tu confirmacion, para escribir un post, no usando clases y
> fileout, sino arbol y nodos.
>
> Espacio para la solucion en tu libro? A mi me gusto que me equivoque, y que
> cuando di con la solucion, recien ahi hubo "aja" y encontre otra forma de
> llegar, mas rapida y hasta mas intuitiva.

Si, eso esta bueno... me gustaria poder dar una solucion constructiva,
con una demostracion buena, no simplemente "ah mira usa la formulita y
chau".

> Tenias una solucion en formula? Creo que si, pero queria confirmar.

No, no tenia una solucion en formula.

> Si, asi esta bien el nombre.

Ok.

> Cuando esperas que aparezca el libro?

Y... me falta para terminarlo... espero que para el año que viene.
Van 146 paginas y por suerte ya estoy terminando el capitulo 6.

> Sigo meditando con el volumen 1, muy bueno!

Jaja, gracias!

Andres.

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
In reply to this post by Angel "Java" Lopez
A ver si entendi bien.  Con tu notacion, lo que decis es lo siguiente.

1.  Existe por lo menos una manera de resolver este problema.  Por
ejemplo, breadth first.  Sea K ese orden.  Es claro que en ese orden,
como es valido, la subsecuencia de cada Bi va a estar bien ordenada.
Hay M(Bi)! maneras de ordenar cada una de estas subsecuencias, pero en
K ese orden esta fijo.  La pregunta entonces es cuantos ordenes K hay
donde los ordenes de cada subsecuencia para cada Bi es fijo.

Claramente hay M(A-1)! ordenes, ya que A siempre tiene que aparecer
primero en cualquier orden.  De todos estos, las clases
correspondientes a cada rama Bi siempre aparecen en el mismo orden
porque dijimos que en K el orden es fijo.  Por lo tanto, al fijar el
orden Bi, hay que dividir a M(A-1)! por M(Bi)!.  Luego, la cantidad de
ordenes K que empiezan en A es

K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!

donde B1...Bb son las subclases directas de A.

2.  Ahora bien, K(A) mide la cantidad de ordenes posibles dado un
orden fijo para cada rama Bi.  Es claro que N(A) entonces debe ser
K(A) multiplicado por cada cantidad de maneras posibles de resolver
cada rama Bi.  Luego,

N(A) = K(A) * N(B1) * N(B2) * ... * N(Bb)

No puede haber duplicados en esta lista, ya que en cada uno de estos
ordenes existe por lo menos una subsecuencia para alguna rama Bi que
es diferente.

Ahora bien, reemplazando N(B1) por K(B1) * N(C1) * N(C2) * ... *
N(Cc), obtenemos

N(A) = K(A) * K(B1) * N(C1) * ... * N(Cc) * N(B2) * ... * N(Bb)

Pero K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!, y K(B1) = M(B1-1)! /
(M(C1)! * ... * M(Cc)!).  De aqui se simplifica M(B1-1)! / M(B1)! = 1
/ M(B1), y queda

N(A) = M(A-1)! / M(B1) * (N(C1) * ... * N(Cc)) / (M(C1)! * ... *
M(Cc)!) * (N(B2) * ... * N(Bb))

Reemplazando N(C1) por K(C1) * N(D1) * ... * N(Dd), obtenemos M(C1) en
el denominador.  Siguiendo de este modo se cancelan casi todos los
terminos excepto

N(A) = M(A-1)! / (\prod_X M(X))

Si?

Andres.

2010/12/21 Angel "Java" Lopez <[hidden email]>:

> Bueno, despues de la ducha, a ver si avanzo algo hacia la solución pedida:
>
> N(A) = cantidad que resuelve el problema para A
> M(A) = cantidad de subclases de A, directas o no, incluyendo A
>
> B1,B2,... Bn subclases directas de A
>
> K(A) = (M(A)-1)! / M(B1)!M(B2)! ...M(Bn)!
>
> (vean que M(A)-1 = M(B1)+M(B2)+... M(Bn))
>
> Es el numero de formas de resolver el problema, si las subclases de un nodo,
> siempre aparecieran en un orden: digamos que si
>
> B1
>  C2
>    D1
>    D2
>  C3
>
> Siempre aparecería
>
> ..... B1.... C2.... D1...D2.... C3.....
>
> Donde los ... son clases de otras ramas "primas, hermanas, tias, etc" de B1.
> Hay, entonces, K(A) soluciones de esa forma.
>
>
> Sigue:
>
> N(A) = K(A) * N(B1) * N(B2) * ... N(Bn)
>
> Entonces, contempla que las subclases de B1 puedan aparecer ordenadas según
> N(B1) distintas formas, que son las formas de solucionar el problema para
> B1.
>
> Hmmm... se debería poder avanzar, expandiendo N(B1)*N(B2)... N(Bn)
>
> Deberia quedar todo expresado en sumas, multiplicaciones, factoriales de
> M(X), donde X recorre todos las clases.
>
> Algo como:
>
> N(A) = [(M(B1)+M(B2)+... +M(Bn))!/M(B1)!M(B2)!...M(Bn)!]
> [(M(C1)+M(C2)+...+M(Cm))!/M(C1)!M(C2)!...M(Cn)!] ....
>
> Recordando que si B1 tiene hijos directos C1, C2,... Cm, M(B1) =
> M(C1)+M(C2)+...M(Cm) + 1... vemos que en el denominador aparece M(B1)! Y en
> el numerador aparece (M(B1)-1)!...
>
> Con lo que queda, M(B1) en el denominador (notable! ;-)
>
> Sera entonces esto?
>
> N(A) = (M(A)-1)! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>
> O, lo que es lo mismo
>
> N(A) = (M(B1)+M(B2)...+M(Bn))! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>
> (el denominador es la multiplicacion de M(X) donde X pasea por cada clase)
>
> Jeje, espero en este cuarto mensaje, haber llegado mas cerca que los
> anteriores.
>
> Si la de arriba es al formula respuesta, debería poder deducirse de una
> forma mas fácil, un "aja!".
>
> Arriesgo: cada M(B1) del denominador dice:
> "de todas las formas que me da el numerador, tengo que quedarme con 1 de
> cada M(B1), que son las únicas donde B1 aparece antes que sus
> descendientes".
>
> Tengo que tomar el colectivo, debería haber comprobado todo esto con un
> calculo sobre un árbol en concreto...
>
> -----Mensaje original-----
> De: [hidden email] [mailto:[hidden email]]
> En nombre de Angel "Java" Lopez
> Enviado el: Tuesday, December 21, 2010 7:14 AM
> Para: [hidden email]
> Asunto: RE: [clubSmalltalk] Que groso...
>
> Argg!!
>
> Sigo contando mal
> N(A) seria 2! N(B1) * N(B2)
> Si las clases de B1 vinieran todas primero que las de B2, o al revés. No
> contemple que el problema admite que se "entrelacen".
>
> Los dejo tranquilos por un rato.. ;-)
>
> Si tuviera que "arriesgar" una formula ahora, seria:
>
> N(A) = (N(B1)+N(B2)+...)! / N(B1)! N(B2)! ...
>
> Ya va apareciendo Pascal por aca...
>
> Interesante problema, Andres!
>
> -----Mensaje original-----
> De: [hidden email] [mailto:[hidden email]]
> En nombre de Angel "Java" Lopez
> Enviado el: Tuesday, December 21, 2010 6:57 AM
> Para: [hidden email]
> Asunto: RE: [clubSmalltalk] Que groso...
>
> Disculpen, esta mal contado, no es
>
> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>
> Sino
>
> N(A) = n! (N(B1) * N(B2) * ...  * N(Bn))
>
> Cada clase con, digamos, k descendientes directos, aporta un factor k! a
> N(A), no importa el nivel en el que este.
>
> Las clases sin descendientes, aportan un factor 0! = 1, podemos poner.
>
> N(A) = la multiplicación de los j!, donde j es la cantidad de descendientes
> directos de cada clase, incluyendo A
>
> Ahora si?
> ;-)
>
> Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
> forma del nodo para maximizar N(A)? Y para minimizarlo?
>
> -----Mensaje original-----
> De: Angel "Java" Lopez [mailto:[hidden email]]
> Enviado el: Tuesday, December 21, 2010 6:36 AM
> Para: '[hidden email]'
> Asunto: RE: [clubSmalltalk] Que groso...
>
> Hola gente!
>
> A ver si entendi...
>
> Sea N(A1) el numero de maneras de resolver el problema para A1 y sus
> descendientes.
>
> Sera:
>
> N(A1) = 2! (N(B1) + N(B2))
>
> En general,
>
> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>
> Donde n es la cantidad de descendientes directos de A.
>
> N(X) = 1 si X no tiene descendientes.
>
> Ahora, es cuestión de hacer las cuentas... ;-)
>
> Habre contado bien?
>
> Si a partir de A, siempre tenemos que cada clase tiene n descendientes
> directos (n fijo) hasta el nivel m, queda
>
> N(A) = (n*n!)^m
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://www.ajlopez.com
> http://twitter.com/ajlopez
>
>
> -----Mensaje original-----
> De: [hidden email] [mailto:[hidden email]]
> En nombre de Andres Valloud
> Enviado el: Tuesday, December 21, 2010 12:03 AM
> Para: [hidden email]
> Asunto: Re: [clubSmalltalk] Que groso...
>
> Si, ese es un orden que funciona.  Pero tambien "A1 B2 ... B1 ..."
> funciona.  Bueno, cuantos de esos hay?
>
> 2010/12/20 Andrés Macagno <[hidden email]>:
>> ¿En orden no funciona? Es decir, empezando por A1 y finalizando con C4.
>>
>> A1 B1 C1 C2 D1 B2 C3 D2 D3 D4 C4
>>
>> Se que no responde a tu pregunta, pero bueno ;-)
>>
>> Saludos.
>>
>> El 20 de diciembre de 2010 22:35, Gaboto <[hidden email]> escribió:
>>>
>>> Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar
> topológicamente
>>> un grafo?
>>> Según tengo entendido hay algoritmos para eso.
>>>
>>> http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica
>>>
>>> 2010/12/20 Andres Valloud <[hidden email]>
>>>>
>>>> A ver... supongan la siguiente jerarquia de clases:
>>>>
>>>> A1
>>>>  B1
>>>>    C1
>>>>    C2
>>>>      D1
>>>>  B2
>>>>    C3
>>>>      D2
>>>>      D3
>>>>      D4
>>>>    C4
>>>>
>>>> Cuantas maneras hay de hacer un fileout de las definiciones de clase
>>>> de tal manera que se pueda hacer un file in en otra imagen?  O sea, el
>>>> problema es que no se puede hacer un file out de C4 antes de B2 porque
>>>> si no cuando se hace file in de C4, su superclase B2 no existe.
>>>>
>>>> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
>>>> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo tanto,
>>>> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file out
>>>> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
>>>> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
>>>> Entonces, pregunta... alguien sabe como calcular el numero de posibles
>>>> file outs sin tener que buscar exhaustivamente?  Es mas o menos claro
>>>> que ese numero es el numero posible de traversals de un tree.  Como se
>>>> calcula eso?  Hay algun resultado ya hecho?
>>>>
>>>> Andres.
>>>>
>>>> --
>>>> To post to this group, send email to [hidden email]
>>>> To unsubscribe from this group, send email to
>>>> [hidden email]
>>>>
>>>> http://www.clubSmalltalk.org
>>>
>>> --
>>> To post to this group, send email to [hidden email]
>>> To unsubscribe from this group, send email to
>>> [hidden email]
>>>
>>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to [hidden email]
>
> http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
Ah, un detalle... se terminan cancelando todos los terminos porque
eventualmente, al descender por el arbol lo suficiente, M(X) = 1 y
luego N(X)=1 con lo que los terminos eventualmente desaparecen.

2010/12/21 Andres Valloud <[hidden email]>:

> A ver si entendi bien.  Con tu notacion, lo que decis es lo siguiente.
>
> 1.  Existe por lo menos una manera de resolver este problema.  Por
> ejemplo, breadth first.  Sea K ese orden.  Es claro que en ese orden,
> como es valido, la subsecuencia de cada Bi va a estar bien ordenada.
> Hay M(Bi)! maneras de ordenar cada una de estas subsecuencias, pero en
> K ese orden esta fijo.  La pregunta entonces es cuantos ordenes K hay
> donde los ordenes de cada subsecuencia para cada Bi es fijo.
>
> Claramente hay M(A-1)! ordenes, ya que A siempre tiene que aparecer
> primero en cualquier orden.  De todos estos, las clases
> correspondientes a cada rama Bi siempre aparecen en el mismo orden
> porque dijimos que en K el orden es fijo.  Por lo tanto, al fijar el
> orden Bi, hay que dividir a M(A-1)! por M(Bi)!.  Luego, la cantidad de
> ordenes K que empiezan en A es
>
> K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!
>
> donde B1...Bb son las subclases directas de A.
>
> 2.  Ahora bien, K(A) mide la cantidad de ordenes posibles dado un
> orden fijo para cada rama Bi.  Es claro que N(A) entonces debe ser
> K(A) multiplicado por cada cantidad de maneras posibles de resolver
> cada rama Bi.  Luego,
>
> N(A) = K(A) * N(B1) * N(B2) * ... * N(Bb)
>
> No puede haber duplicados en esta lista, ya que en cada uno de estos
> ordenes existe por lo menos una subsecuencia para alguna rama Bi que
> es diferente.
>
> Ahora bien, reemplazando N(B1) por K(B1) * N(C1) * N(C2) * ... *
> N(Cc), obtenemos
>
> N(A) = K(A) * K(B1) * N(C1) * ... * N(Cc) * N(B2) * ... * N(Bb)
>
> Pero K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!, y K(B1) = M(B1-1)! /
> (M(C1)! * ... * M(Cc)!).  De aqui se simplifica M(B1-1)! / M(B1)! = 1
> / M(B1), y queda
>
> N(A) = M(A-1)! / M(B1) * (N(C1) * ... * N(Cc)) / (M(C1)! * ... *
> M(Cc)!) * (N(B2) * ... * N(Bb))
>
> Reemplazando N(C1) por K(C1) * N(D1) * ... * N(Dd), obtenemos M(C1) en
> el denominador.  Siguiendo de este modo se cancelan casi todos los
> terminos excepto
>
> N(A) = M(A-1)! / (\prod_X M(X))
>
> Si?
>
> Andres.
>
> 2010/12/21 Angel "Java" Lopez <[hidden email]>:
>> Bueno, despues de la ducha, a ver si avanzo algo hacia la solución pedida:
>>
>> N(A) = cantidad que resuelve el problema para A
>> M(A) = cantidad de subclases de A, directas o no, incluyendo A
>>
>> B1,B2,... Bn subclases directas de A
>>
>> K(A) = (M(A)-1)! / M(B1)!M(B2)! ...M(Bn)!
>>
>> (vean que M(A)-1 = M(B1)+M(B2)+... M(Bn))
>>
>> Es el numero de formas de resolver el problema, si las subclases de un nodo,
>> siempre aparecieran en un orden: digamos que si
>>
>> B1
>>  C2
>>    D1
>>    D2
>>  C3
>>
>> Siempre aparecería
>>
>> ..... B1.... C2.... D1...D2.... C3.....
>>
>> Donde los ... son clases de otras ramas "primas, hermanas, tias, etc" de B1.
>> Hay, entonces, K(A) soluciones de esa forma.
>>
>>
>> Sigue:
>>
>> N(A) = K(A) * N(B1) * N(B2) * ... N(Bn)
>>
>> Entonces, contempla que las subclases de B1 puedan aparecer ordenadas según
>> N(B1) distintas formas, que son las formas de solucionar el problema para
>> B1.
>>
>> Hmmm... se debería poder avanzar, expandiendo N(B1)*N(B2)... N(Bn)
>>
>> Deberia quedar todo expresado en sumas, multiplicaciones, factoriales de
>> M(X), donde X recorre todos las clases.
>>
>> Algo como:
>>
>> N(A) = [(M(B1)+M(B2)+... +M(Bn))!/M(B1)!M(B2)!...M(Bn)!]
>> [(M(C1)+M(C2)+...+M(Cm))!/M(C1)!M(C2)!...M(Cn)!] ....
>>
>> Recordando que si B1 tiene hijos directos C1, C2,... Cm, M(B1) =
>> M(C1)+M(C2)+...M(Cm) + 1... vemos que en el denominador aparece M(B1)! Y en
>> el numerador aparece (M(B1)-1)!...
>>
>> Con lo que queda, M(B1) en el denominador (notable! ;-)
>>
>> Sera entonces esto?
>>
>> N(A) = (M(A)-1)! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>>
>> O, lo que es lo mismo
>>
>> N(A) = (M(B1)+M(B2)...+M(Bn))! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>>
>> (el denominador es la multiplicacion de M(X) donde X pasea por cada clase)
>>
>> Jeje, espero en este cuarto mensaje, haber llegado mas cerca que los
>> anteriores.
>>
>> Si la de arriba es al formula respuesta, debería poder deducirse de una
>> forma mas fácil, un "aja!".
>>
>> Arriesgo: cada M(B1) del denominador dice:
>> "de todas las formas que me da el numerador, tengo que quedarme con 1 de
>> cada M(B1), que son las únicas donde B1 aparece antes que sus
>> descendientes".
>>
>> Tengo que tomar el colectivo, debería haber comprobado todo esto con un
>> calculo sobre un árbol en concreto...
>>
>> -----Mensaje original-----
>> De: [hidden email] [mailto:[hidden email]]
>> En nombre de Angel "Java" Lopez
>> Enviado el: Tuesday, December 21, 2010 7:14 AM
>> Para: [hidden email]
>> Asunto: RE: [clubSmalltalk] Que groso...
>>
>> Argg!!
>>
>> Sigo contando mal
>> N(A) seria 2! N(B1) * N(B2)
>> Si las clases de B1 vinieran todas primero que las de B2, o al revés. No
>> contemple que el problema admite que se "entrelacen".
>>
>> Los dejo tranquilos por un rato.. ;-)
>>
>> Si tuviera que "arriesgar" una formula ahora, seria:
>>
>> N(A) = (N(B1)+N(B2)+...)! / N(B1)! N(B2)! ...
>>
>> Ya va apareciendo Pascal por aca...
>>
>> Interesante problema, Andres!
>>
>> -----Mensaje original-----
>> De: [hidden email] [mailto:[hidden email]]
>> En nombre de Angel "Java" Lopez
>> Enviado el: Tuesday, December 21, 2010 6:57 AM
>> Para: [hidden email]
>> Asunto: RE: [clubSmalltalk] Que groso...
>>
>> Disculpen, esta mal contado, no es
>>
>> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>>
>> Sino
>>
>> N(A) = n! (N(B1) * N(B2) * ...  * N(Bn))
>>
>> Cada clase con, digamos, k descendientes directos, aporta un factor k! a
>> N(A), no importa el nivel en el que este.
>>
>> Las clases sin descendientes, aportan un factor 0! = 1, podemos poner.
>>
>> N(A) = la multiplicación de los j!, donde j es la cantidad de descendientes
>> directos de cada clase, incluyendo A
>>
>> Ahora si?
>> ;-)
>>
>> Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>> forma del nodo para maximizar N(A)? Y para minimizarlo?
>>
>> -----Mensaje original-----
>> De: Angel "Java" Lopez [mailto:[hidden email]]
>> Enviado el: Tuesday, December 21, 2010 6:36 AM
>> Para: '[hidden email]'
>> Asunto: RE: [clubSmalltalk] Que groso...
>>
>> Hola gente!
>>
>> A ver si entendi...
>>
>> Sea N(A1) el numero de maneras de resolver el problema para A1 y sus
>> descendientes.
>>
>> Sera:
>>
>> N(A1) = 2! (N(B1) + N(B2))
>>
>> En general,
>>
>> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>>
>> Donde n es la cantidad de descendientes directos de A.
>>
>> N(X) = 1 si X no tiene descendientes.
>>
>> Ahora, es cuestión de hacer las cuentas... ;-)
>>
>> Habre contado bien?
>>
>> Si a partir de A, siempre tenemos que cada clase tiene n descendientes
>> directos (n fijo) hasta el nivel m, queda
>>
>> N(A) = (n*n!)^m
>>
>> Nos leemos!
>>
>> Angel "Java" Lopez
>> http://www.ajlopez.com
>> http://twitter.com/ajlopez
>>
>>
>> -----Mensaje original-----
>> De: [hidden email] [mailto:[hidden email]]
>> En nombre de Andres Valloud
>> Enviado el: Tuesday, December 21, 2010 12:03 AM
>> Para: [hidden email]
>> Asunto: Re: [clubSmalltalk] Que groso...
>>
>> Si, ese es un orden que funciona.  Pero tambien "A1 B2 ... B1 ..."
>> funciona.  Bueno, cuantos de esos hay?
>>
>> 2010/12/20 Andrés Macagno <[hidden email]>:
>>> ¿En orden no funciona? Es decir, empezando por A1 y finalizando con C4.
>>>
>>> A1 B1 C1 C2 D1 B2 C3 D2 D3 D4 C4
>>>
>>> Se que no responde a tu pregunta, pero bueno ;-)
>>>
>>> Saludos.
>>>
>>> El 20 de diciembre de 2010 22:35, Gaboto <[hidden email]> escribió:
>>>>
>>>> Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar
>> topológicamente
>>>> un grafo?
>>>> Según tengo entendido hay algoritmos para eso.
>>>>
>>>> http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica
>>>>
>>>> 2010/12/20 Andres Valloud <[hidden email]>
>>>>>
>>>>> A ver... supongan la siguiente jerarquia de clases:
>>>>>
>>>>> A1
>>>>>  B1
>>>>>    C1
>>>>>    C2
>>>>>      D1
>>>>>  B2
>>>>>    C3
>>>>>      D2
>>>>>      D3
>>>>>      D4
>>>>>    C4
>>>>>
>>>>> Cuantas maneras hay de hacer un fileout de las definiciones de clase
>>>>> de tal manera que se pueda hacer un file in en otra imagen?  O sea, el
>>>>> problema es que no se puede hacer un file out de C4 antes de B2 porque
>>>>> si no cuando se hace file in de C4, su superclase B2 no existe.
>>>>>
>>>>> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
>>>>> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo tanto,
>>>>> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file out
>>>>> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
>>>>> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
>>>>> Entonces, pregunta... alguien sabe como calcular el numero de posibles
>>>>> file outs sin tener que buscar exhaustivamente?  Es mas o menos claro
>>>>> que ese numero es el numero posible de traversals de un tree.  Como se
>>>>> calcula eso?  Hay algun resultado ya hecho?
>>>>>
>>>>> Andres.
>>>>>
>>>>> --
>>>>> To post to this group, send email to [hidden email]
>>>>> To unsubscribe from this group, send email to
>>>>> [hidden email]
>>>>>
>>>>> http://www.clubSmalltalk.org
>>>>
>>>> --
>>>> To post to this group, send email to [hidden email]
>>>> To unsubscribe from this group, send email to
>>>> [hidden email]
>>>>
>>>> http://www.clubSmalltalk.org
>>>
>>> --
>>> To post to this group, send email to [hidden email]
>>> To unsubscribe from this group, send email to
>>> [hidden email]
>>>
>>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to [hidden email]
>>
>> http://www.clubSmalltalk.org
>

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Angel Java Lopez
Yes!

Y ahi me di cuenta del "aja", que explique en mi email post-ducha... Lo que hace el agua caliente ;-)

Cada factor M(X) del denominador "descarta" secuencias erroneas, donde X no aparece primero en la secuencia insertada en la secuencia total:

.... X ...... X?...X?.... X?...X?....

donde los X? son los descendientes directos o no de X.

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez


2010/12/21 Andres Valloud <[hidden email]>
Ah, un detalle... se terminan cancelando todos los terminos porque
eventualmente, al descender por el arbol lo suficiente, M(X) = 1 y
luego N(X)=1 con lo que los terminos eventualmente desaparecen.

2010/12/21 Andres Valloud <[hidden email]>:
> A ver si entendi bien.  Con tu notacion, lo que decis es lo siguiente.
>
> 1.  Existe por lo menos una manera de resolver este problema.  Por
> ejemplo, breadth first.  Sea K ese orden.  Es claro que en ese orden,
> como es valido, la subsecuencia de cada Bi va a estar bien ordenada.
> Hay M(Bi)! maneras de ordenar cada una de estas subsecuencias, pero en
> K ese orden esta fijo.  La pregunta entonces es cuantos ordenes K hay
> donde los ordenes de cada subsecuencia para cada Bi es fijo.
>
> Claramente hay M(A-1)! ordenes, ya que A siempre tiene que aparecer
> primero en cualquier orden.  De todos estos, las clases
> correspondientes a cada rama Bi siempre aparecen en el mismo orden
> porque dijimos que en K el orden es fijo.  Por lo tanto, al fijar el
> orden Bi, hay que dividir a M(A-1)! por M(Bi)!.  Luego, la cantidad de
> ordenes K que empiezan en A es
>
> K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!
>
> donde B1...Bb son las subclases directas de A.
>
> 2.  Ahora bien, K(A) mide la cantidad de ordenes posibles dado un
> orden fijo para cada rama Bi.  Es claro que N(A) entonces debe ser
> K(A) multiplicado por cada cantidad de maneras posibles de resolver
> cada rama Bi.  Luego,
>
> N(A) = K(A) * N(B1) * N(B2) * ... * N(Bb)
>
> No puede haber duplicados en esta lista, ya que en cada uno de estos
> ordenes existe por lo menos una subsecuencia para alguna rama Bi que
> es diferente.
>
> Ahora bien, reemplazando N(B1) por K(B1) * N(C1) * N(C2) * ... *
> N(Cc), obtenemos
>
> N(A) = K(A) * K(B1) * N(C1) * ... * N(Cc) * N(B2) * ... * N(Bb)
>
> Pero K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!, y K(B1) = M(B1-1)! /
> (M(C1)! * ... * M(Cc)!).  De aqui se simplifica M(B1-1)! / M(B1)! = 1
> / M(B1), y queda
>
> N(A) = M(A-1)! / M(B1) * (N(C1) * ... * N(Cc)) / (M(C1)! * ... *
> M(Cc)!) * (N(B2) * ... * N(Bb))
>
> Reemplazando N(C1) por K(C1) * N(D1) * ... * N(Dd), obtenemos M(C1) en
> el denominador.  Siguiendo de este modo se cancelan casi todos los
> terminos excepto
>
> N(A) = M(A-1)! / (\prod_X M(X))
>
> Si?
>
> Andres.
>
> 2010/12/21 Angel "Java" Lopez <[hidden email]>:
>> Bueno, despues de la ducha, a ver si avanzo algo hacia la solución pedida:
>>
>> N(A) = cantidad que resuelve el problema para A
>> M(A) = cantidad de subclases de A, directas o no, incluyendo A
>>
>> B1,B2,... Bn subclases directas de A
>>
>> K(A) = (M(A)-1)! / M(B1)!M(B2)! ...M(Bn)!
>>
>> (vean que M(A)-1 = M(B1)+M(B2)+... M(Bn))
>>
>> Es el numero de formas de resolver el problema, si las subclases de un nodo,
>> siempre aparecieran en un orden: digamos que si
>>
>> B1
>>  C2
>>    D1
>>    D2
>>  C3
>>
>> Siempre aparecería
>>
>> ..... B1.... C2.... D1...D2.... C3.....
>>
>> Donde los ... son clases de otras ramas "primas, hermanas, tias, etc" de B1.
>> Hay, entonces, K(A) soluciones de esa forma.
>>
>>
>> Sigue:
>>
>> N(A) = K(A) * N(B1) * N(B2) * ... N(Bn)
>>
>> Entonces, contempla que las subclases de B1 puedan aparecer ordenadas según
>> N(B1) distintas formas, que son las formas de solucionar el problema para
>> B1.
>>
>> Hmmm... se debería poder avanzar, expandiendo N(B1)*N(B2)... N(Bn)
>>
>> Deberia quedar todo expresado en sumas, multiplicaciones, factoriales de
>> M(X), donde X recorre todos las clases.
>>
>> Algo como:
>>
>> N(A) = [(M(B1)+M(B2)+... +M(Bn))!/M(B1)!M(B2)!...M(Bn)!]
>> [(M(C1)+M(C2)+...+M(Cm))!/M(C1)!M(C2)!...M(Cn)!] ....
>>
>> Recordando que si B1 tiene hijos directos C1, C2,... Cm, M(B1) =
>> M(C1)+M(C2)+...M(Cm) + 1... vemos que en el denominador aparece M(B1)! Y en
>> el numerador aparece (M(B1)-1)!...
>>
>> Con lo que queda, M(B1) en el denominador (notable! ;-)
>>
>> Sera entonces esto?
>>
>> N(A) = (M(A)-1)! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>>
>> O, lo que es lo mismo
>>
>> N(A) = (M(B1)+M(B2)...+M(Bn))! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>>
>> (el denominador es la multiplicacion de M(X) donde X pasea por cada clase)
>>
>> Jeje, espero en este cuarto mensaje, haber llegado mas cerca que los
>> anteriores.
>>
>> Si la de arriba es al formula respuesta, debería poder deducirse de una
>> forma mas fácil, un "aja!".
>>
>> Arriesgo: cada M(B1) del denominador dice:
>> "de todas las formas que me da el numerador, tengo que quedarme con 1 de
>> cada M(B1), que son las únicas donde B1 aparece antes que sus
>> descendientes".
>>
>> Tengo que tomar el colectivo, debería haber comprobado todo esto con un
>> calculo sobre un árbol en concreto...
>>
>> -----Mensaje original-----
>> De: [hidden email] [mailto:[hidden email]]
>> En nombre de Angel "Java" Lopez
>> Enviado el: Tuesday, December 21, 2010 7:14 AM
>> Para: [hidden email]
>> Asunto: RE: [clubSmalltalk] Que groso...
>>
>> Argg!!
>>
>> Sigo contando mal
>> N(A) seria 2! N(B1) * N(B2)
>> Si las clases de B1 vinieran todas primero que las de B2, o al revés. No
>> contemple que el problema admite que se "entrelacen".
>>
>> Los dejo tranquilos por un rato.. ;-)
>>
>> Si tuviera que "arriesgar" una formula ahora, seria:
>>
>> N(A) = (N(B1)+N(B2)+...)! / N(B1)! N(B2)! ...
>>
>> Ya va apareciendo Pascal por aca...
>>
>> Interesante problema, Andres!
>>
>> -----Mensaje original-----
>> De: [hidden email] [mailto:[hidden email]]
>> En nombre de Angel "Java" Lopez
>> Enviado el: Tuesday, December 21, 2010 6:57 AM
>> Para: [hidden email]
>> Asunto: RE: [clubSmalltalk] Que groso...
>>
>> Disculpen, esta mal contado, no es
>>
>> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>>
>> Sino
>>
>> N(A) = n! (N(B1) * N(B2) * ...  * N(Bn))
>>
>> Cada clase con, digamos, k descendientes directos, aporta un factor k! a
>> N(A), no importa el nivel en el que este.
>>
>> Las clases sin descendientes, aportan un factor 0! = 1, podemos poner.
>>
>> N(A) = la multiplicación de los j!, donde j es la cantidad de descendientes
>> directos de cada clase, incluyendo A
>>
>> Ahora si?
>> ;-)
>>
>> Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>> forma del nodo para maximizar N(A)? Y para minimizarlo?
>>
>> -----Mensaje original-----
>> De: Angel "Java" Lopez [mailto:[hidden email]]
>> Enviado el: Tuesday, December 21, 2010 6:36 AM
>> Para: '[hidden email]'
>> Asunto: RE: [clubSmalltalk] Que groso...
>>
>> Hola gente!
>>
>> A ver si entendi...
>>
>> Sea N(A1) el numero de maneras de resolver el problema para A1 y sus
>> descendientes.
>>
>> Sera:
>>
>> N(A1) = 2! (N(B1) + N(B2))
>>
>> En general,
>>
>> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>>
>> Donde n es la cantidad de descendientes directos de A.
>>
>> N(X) = 1 si X no tiene descendientes.
>>
>> Ahora, es cuestión de hacer las cuentas... ;-)
>>
>> Habre contado bien?
>>
>> Si a partir de A, siempre tenemos que cada clase tiene n descendientes
>> directos (n fijo) hasta el nivel m, queda
>>
>> N(A) = (n*n!)^m
>>
>> Nos leemos!
>>
>> Angel "Java" Lopez
>> http://www.ajlopez.com
>> http://twitter.com/ajlopez
>>
>>
>> -----Mensaje original-----
>> De: [hidden email] [mailto:[hidden email]]
>> En nombre de Andres Valloud
>> Enviado el: Tuesday, December 21, 2010 12:03 AM
>> Para: [hidden email]
>> Asunto: Re: [clubSmalltalk] Que groso...
>>
>> Si, ese es un orden que funciona.  Pero tambien "A1 B2 ... B1 ..."
>> funciona.  Bueno, cuantos de esos hay?
>>
>> 2010/12/20 Andrés Macagno <[hidden email]>:
>>> ¿En orden no funciona? Es decir, empezando por A1 y finalizando con C4.
>>>
>>> A1 B1 C1 C2 D1 B2 C3 D2 D3 D4 C4
>>>
>>> Se que no responde a tu pregunta, pero bueno ;-)
>>>
>>> Saludos.
>>>
>>> El 20 de diciembre de 2010 22:35, Gaboto <[hidden email]> escribió:
>>>>
>>>> Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar
>> topológicamente
>>>> un grafo?
>>>> Según tengo entendido hay algoritmos para eso.
>>>>
>>>> http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica
>>>>
>>>> 2010/12/20 Andres Valloud <[hidden email]>
>>>>>
>>>>> A ver... supongan la siguiente jerarquia de clases:
>>>>>
>>>>> A1
>>>>>  B1
>>>>>    C1
>>>>>    C2
>>>>>      D1
>>>>>  B2
>>>>>    C3
>>>>>      D2
>>>>>      D3
>>>>>      D4
>>>>>    C4
>>>>>
>>>>> Cuantas maneras hay de hacer un fileout de las definiciones de clase
>>>>> de tal manera que se pueda hacer un file in en otra imagen?  O sea, el
>>>>> problema es que no se puede hacer un file out de C4 antes de B2 porque
>>>>> si no cuando se hace file in de C4, su superclase B2 no existe.
>>>>>
>>>>> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
>>>>> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo tanto,
>>>>> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file out
>>>>> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
>>>>> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
>>>>> Entonces, pregunta... alguien sabe como calcular el numero de posibles
>>>>> file outs sin tener que buscar exhaustivamente?  Es mas o menos claro
>>>>> que ese numero es el numero posible de traversals de un tree.  Como se
>>>>> calcula eso?  Hay algun resultado ya hecho?
>>>>>
>>>>> Andres.
>>>>>
>>>>> --
>>>>> To post to this group, send email to [hidden email]
>>>>> To unsubscribe from this group, send email to
>>>>> [hidden email]
>>>>>
>>>>> http://www.clubSmalltalk.org
>>>>
>>>> --
>>>> To post to this group, send email to [hidden email]
>>>> To unsubscribe from this group, send email to
>>>> [hidden email]
>>>>
>>>> http://www.clubSmalltalk.org
>>>
>>> --
>>> To post to this group, send email to [hidden email]
>>> To unsubscribe from this group, send email to
>>> [hidden email]
>>>
>>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to [hidden email]
>>
>> http://www.clubSmalltalk.org
>

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
Jaja, buenisimo!

2010/12/21 Angel Java Lopez <[hidden email]>:

> Yes!
>
> Y ahi me di cuenta del "aja", que explique en mi email post-ducha... Lo que
> hace el agua caliente ;-)
>
> Cada factor M(X) del denominador "descarta" secuencias erroneas, donde X no
> aparece primero en la secuencia insertada en la secuencia total:
>
> .... X ...... X?...X?.... X?...X?....
>
> donde los X? son los descendientes directos o no de X.
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://www.ajlopez.com
> http://twitter.com/ajlopez
>
>
> 2010/12/21 Andres Valloud <[hidden email]>
>>
>> Ah, un detalle... se terminan cancelando todos los terminos porque
>> eventualmente, al descender por el arbol lo suficiente, M(X) = 1 y
>> luego N(X)=1 con lo que los terminos eventualmente desaparecen.
>>
>> 2010/12/21 Andres Valloud <[hidden email]>:
>> > A ver si entendi bien.  Con tu notacion, lo que decis es lo siguiente.
>> >
>> > 1.  Existe por lo menos una manera de resolver este problema.  Por
>> > ejemplo, breadth first.  Sea K ese orden.  Es claro que en ese orden,
>> > como es valido, la subsecuencia de cada Bi va a estar bien ordenada.
>> > Hay M(Bi)! maneras de ordenar cada una de estas subsecuencias, pero en
>> > K ese orden esta fijo.  La pregunta entonces es cuantos ordenes K hay
>> > donde los ordenes de cada subsecuencia para cada Bi es fijo.
>> >
>> > Claramente hay M(A-1)! ordenes, ya que A siempre tiene que aparecer
>> > primero en cualquier orden.  De todos estos, las clases
>> > correspondientes a cada rama Bi siempre aparecen en el mismo orden
>> > porque dijimos que en K el orden es fijo.  Por lo tanto, al fijar el
>> > orden Bi, hay que dividir a M(A-1)! por M(Bi)!.  Luego, la cantidad de
>> > ordenes K que empiezan en A es
>> >
>> > K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!
>> >
>> > donde B1...Bb son las subclases directas de A.
>> >
>> > 2.  Ahora bien, K(A) mide la cantidad de ordenes posibles dado un
>> > orden fijo para cada rama Bi.  Es claro que N(A) entonces debe ser
>> > K(A) multiplicado por cada cantidad de maneras posibles de resolver
>> > cada rama Bi.  Luego,
>> >
>> > N(A) = K(A) * N(B1) * N(B2) * ... * N(Bb)
>> >
>> > No puede haber duplicados en esta lista, ya que en cada uno de estos
>> > ordenes existe por lo menos una subsecuencia para alguna rama Bi que
>> > es diferente.
>> >
>> > Ahora bien, reemplazando N(B1) por K(B1) * N(C1) * N(C2) * ... *
>> > N(Cc), obtenemos
>> >
>> > N(A) = K(A) * K(B1) * N(C1) * ... * N(Cc) * N(B2) * ... * N(Bb)
>> >
>> > Pero K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!, y K(B1) = M(B1-1)! /
>> > (M(C1)! * ... * M(Cc)!).  De aqui se simplifica M(B1-1)! / M(B1)! = 1
>> > / M(B1), y queda
>> >
>> > N(A) = M(A-1)! / M(B1) * (N(C1) * ... * N(Cc)) / (M(C1)! * ... *
>> > M(Cc)!) * (N(B2) * ... * N(Bb))
>> >
>> > Reemplazando N(C1) por K(C1) * N(D1) * ... * N(Dd), obtenemos M(C1) en
>> > el denominador.  Siguiendo de este modo se cancelan casi todos los
>> > terminos excepto
>> >
>> > N(A) = M(A-1)! / (\prod_X M(X))
>> >
>> > Si?
>> >
>> > Andres.
>> >
>> > 2010/12/21 Angel "Java" Lopez <[hidden email]>:
>> >> Bueno, despues de la ducha, a ver si avanzo algo hacia la solución
>> >> pedida:
>> >>
>> >> N(A) = cantidad que resuelve el problema para A
>> >> M(A) = cantidad de subclases de A, directas o no, incluyendo A
>> >>
>> >> B1,B2,... Bn subclases directas de A
>> >>
>> >> K(A) = (M(A)-1)! / M(B1)!M(B2)! ...M(Bn)!
>> >>
>> >> (vean que M(A)-1 = M(B1)+M(B2)+... M(Bn))
>> >>
>> >> Es el numero de formas de resolver el problema, si las subclases de un
>> >> nodo,
>> >> siempre aparecieran en un orden: digamos que si
>> >>
>> >> B1
>> >>  C2
>> >>    D1
>> >>    D2
>> >>  C3
>> >>
>> >> Siempre aparecería
>> >>
>> >> ..... B1.... C2.... D1...D2.... C3.....
>> >>
>> >> Donde los ... son clases de otras ramas "primas, hermanas, tias, etc"
>> >> de B1.
>> >> Hay, entonces, K(A) soluciones de esa forma.
>> >>
>> >>
>> >> Sigue:
>> >>
>> >> N(A) = K(A) * N(B1) * N(B2) * ... N(Bn)
>> >>
>> >> Entonces, contempla que las subclases de B1 puedan aparecer ordenadas
>> >> según
>> >> N(B1) distintas formas, que son las formas de solucionar el problema
>> >> para
>> >> B1.
>> >>
>> >> Hmmm... se debería poder avanzar, expandiendo N(B1)*N(B2)... N(Bn)
>> >>
>> >> Deberia quedar todo expresado en sumas, multiplicaciones, factoriales
>> >> de
>> >> M(X), donde X recorre todos las clases.
>> >>
>> >> Algo como:
>> >>
>> >> N(A) = [(M(B1)+M(B2)+... +M(Bn))!/M(B1)!M(B2)!...M(Bn)!]
>> >> [(M(C1)+M(C2)+...+M(Cm))!/M(C1)!M(C2)!...M(Cn)!] ....
>> >>
>> >> Recordando que si B1 tiene hijos directos C1, C2,... Cm, M(B1) =
>> >> M(C1)+M(C2)+...M(Cm) + 1... vemos que en el denominador aparece M(B1)!
>> >> Y en
>> >> el numerador aparece (M(B1)-1)!...
>> >>
>> >> Con lo que queda, M(B1) en el denominador (notable! ;-)
>> >>
>> >> Sera entonces esto?
>> >>
>> >> N(A) = (M(A)-1)! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>> >>
>> >> O, lo que es lo mismo
>> >>
>> >> N(A) = (M(B1)+M(B2)...+M(Bn))! / M(B1)M(B2)....
>> >> M(Bn)M(C1)M(C2)...M(Cm).....
>> >>
>> >> (el denominador es la multiplicacion de M(X) donde X pasea por cada
>> >> clase)
>> >>
>> >> Jeje, espero en este cuarto mensaje, haber llegado mas cerca que los
>> >> anteriores.
>> >>
>> >> Si la de arriba es al formula respuesta, debería poder deducirse de una
>> >> forma mas fácil, un "aja!".
>> >>
>> >> Arriesgo: cada M(B1) del denominador dice:
>> >> "de todas las formas que me da el numerador, tengo que quedarme con 1
>> >> de
>> >> cada M(B1), que son las únicas donde B1 aparece antes que sus
>> >> descendientes".
>> >>
>> >> Tengo que tomar el colectivo, debería haber comprobado todo esto con un
>> >> calculo sobre un árbol en concreto...
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Angel "Java" Lopez
>> >> Enviado el: Tuesday, December 21, 2010 7:14 AM
>> >> Para: [hidden email]
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Argg!!
>> >>
>> >> Sigo contando mal
>> >> N(A) seria 2! N(B1) * N(B2)
>> >> Si las clases de B1 vinieran todas primero que las de B2, o al revés.
>> >> No
>> >> contemple que el problema admite que se "entrelacen".
>> >>
>> >> Los dejo tranquilos por un rato.. ;-)
>> >>
>> >> Si tuviera que "arriesgar" una formula ahora, seria:
>> >>
>> >> N(A) = (N(B1)+N(B2)+...)! / N(B1)! N(B2)! ...
>> >>
>> >> Ya va apareciendo Pascal por aca...
>> >>
>> >> Interesante problema, Andres!
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Angel "Java" Lopez
>> >> Enviado el: Tuesday, December 21, 2010 6:57 AM
>> >> Para: [hidden email]
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Disculpen, esta mal contado, no es
>> >>
>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>> >>
>> >> Sino
>> >>
>> >> N(A) = n! (N(B1) * N(B2) * ...  * N(Bn))
>> >>
>> >> Cada clase con, digamos, k descendientes directos, aporta un factor k!
>> >> a
>> >> N(A), no importa el nivel en el que este.
>> >>
>> >> Las clases sin descendientes, aportan un factor 0! = 1, podemos poner.
>> >>
>> >> N(A) = la multiplicación de los j!, donde j es la cantidad de
>> >> descendientes
>> >> directos de cada clase, incluyendo A
>> >>
>> >> Ahora si?
>> >> ;-)
>> >>
>> >> Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>> >> forma del nodo para maximizar N(A)? Y para minimizarlo?
>> >>
>> >> -----Mensaje original-----
>> >> De: Angel "Java" Lopez [mailto:[hidden email]]
>> >> Enviado el: Tuesday, December 21, 2010 6:36 AM
>> >> Para: '[hidden email]'
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Hola gente!
>> >>
>> >> A ver si entendi...
>> >>
>> >> Sea N(A1) el numero de maneras de resolver el problema para A1 y sus
>> >> descendientes.
>> >>
>> >> Sera:
>> >>
>> >> N(A1) = 2! (N(B1) + N(B2))
>> >>
>> >> En general,
>> >>
>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>> >>
>> >> Donde n es la cantidad de descendientes directos de A.
>> >>
>> >> N(X) = 1 si X no tiene descendientes.
>> >>
>> >> Ahora, es cuestión de hacer las cuentas... ;-)
>> >>
>> >> Habre contado bien?
>> >>
>> >> Si a partir de A, siempre tenemos que cada clase tiene n descendientes
>> >> directos (n fijo) hasta el nivel m, queda
>> >>
>> >> N(A) = (n*n!)^m
>> >>
>> >> Nos leemos!
>> >>
>> >> Angel "Java" Lopez
>> >> http://www.ajlopez.com
>> >> http://twitter.com/ajlopez
>> >>
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Andres Valloud
>> >> Enviado el: Tuesday, December 21, 2010 12:03 AM
>> >> Para: [hidden email]
>> >> Asunto: Re: [clubSmalltalk] Que groso...
>> >>
>> >> Si, ese es un orden que funciona.  Pero tambien "A1 B2 ... B1 ..."
>> >> funciona.  Bueno, cuantos de esos hay?
>> >>
>> >> 2010/12/20 Andrés Macagno <[hidden email]>:
>> >>> ¿En orden no funciona? Es decir, empezando por A1 y finalizando con
>> >>> C4.
>> >>>
>> >>> A1 B1 C1 C2 D1 B2 C3 D2 D3 D4 C4
>> >>>
>> >>> Se que no responde a tu pregunta, pero bueno ;-)
>> >>>
>> >>> Saludos.
>> >>>
>> >>> El 20 de diciembre de 2010 22:35, Gaboto <[hidden email]> escribió:
>> >>>>
>> >>>> Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar
>> >> topológicamente
>> >>>> un grafo?
>> >>>> Según tengo entendido hay algoritmos para eso.
>> >>>>
>> >>>> http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica
>> >>>>
>> >>>> 2010/12/20 Andres Valloud <[hidden email]>
>> >>>>>
>> >>>>> A ver... supongan la siguiente jerarquia de clases:
>> >>>>>
>> >>>>> A1
>> >>>>>  B1
>> >>>>>    C1
>> >>>>>    C2
>> >>>>>      D1
>> >>>>>  B2
>> >>>>>    C3
>> >>>>>      D2
>> >>>>>      D3
>> >>>>>      D4
>> >>>>>    C4
>> >>>>>
>> >>>>> Cuantas maneras hay de hacer un fileout de las definiciones de clase
>> >>>>> de tal manera que se pueda hacer un file in en otra imagen?  O sea,
>> >>>>> el
>> >>>>> problema es que no se puede hacer un file out de C4 antes de B2
>> >>>>> porque
>> >>>>> si no cuando se hace file in de C4, su superclase B2 no existe.
>> >>>>>
>> >>>>> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
>> >>>>> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo
>> >>>>> tanto,
>> >>>>> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file
>> >>>>> out
>> >>>>> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
>> >>>>> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
>> >>>>> Entonces, pregunta... alguien sabe como calcular el numero de
>> >>>>> posibles
>> >>>>> file outs sin tener que buscar exhaustivamente?  Es mas o menos
>> >>>>> claro
>> >>>>> que ese numero es el numero posible de traversals de un tree.  Como
>> >>>>> se
>> >>>>> calcula eso?  Hay algun resultado ya hecho?
>> >>>>>
>> >>>>> Andres.
>> >>>>>
>> >>>>> --
>> >>>>> To post to this group, send email to [hidden email]
>> >>>>> To unsubscribe from this group, send email to
>> >>>>> [hidden email]
>> >>>>>
>> >>>>> http://www.clubSmalltalk.org
>> >>>>
>> >>>> --
>> >>>> To post to this group, send email to [hidden email]
>> >>>> To unsubscribe from this group, send email to
>> >>>> [hidden email]
>> >>>>
>> >>>> http://www.clubSmalltalk.org
>> >>>
>> >>> --
>> >>> To post to this group, send email to [hidden email]
>> >>> To unsubscribe from this group, send email to
>> >>> [hidden email]
>> >>>
>> >>> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
In reply to this post by Javier Burroni
> " To be is to do " ( Socrates )
> " To be or not to be " ( Shakespeare )
> " To do is to be " ( Sartre )
> " Do be do be do " ( Sinatra )

to:by: is not to:do:

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
In reply to this post by Angel Java Lopez
Che pensando un poco en esto, voy a ver de escribirlo con otra
notacion que tenga mas que ver con composicion de funciones.  Por
ejemplo,

G(A,1) = B1
G(G(A, 1), 2) = C2

Y asi.  La idea es que G^n(A, ...) es una hoja, y M(hoja)=1.

2010/12/21 Angel Java Lopez <[hidden email]>:

> Yes!
>
> Y ahi me di cuenta del "aja", que explique en mi email post-ducha... Lo que
> hace el agua caliente ;-)
>
> Cada factor M(X) del denominador "descarta" secuencias erroneas, donde X no
> aparece primero en la secuencia insertada en la secuencia total:
>
> .... X ...... X?...X?.... X?...X?....
>
> donde los X? son los descendientes directos o no de X.
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://www.ajlopez.com
> http://twitter.com/ajlopez
>
>
> 2010/12/21 Andres Valloud <[hidden email]>
>>
>> Ah, un detalle... se terminan cancelando todos los terminos porque
>> eventualmente, al descender por el arbol lo suficiente, M(X) = 1 y
>> luego N(X)=1 con lo que los terminos eventualmente desaparecen.
>>
>> 2010/12/21 Andres Valloud <[hidden email]>:
>> > A ver si entendi bien.  Con tu notacion, lo que decis es lo siguiente.
>> >
>> > 1.  Existe por lo menos una manera de resolver este problema.  Por
>> > ejemplo, breadth first.  Sea K ese orden.  Es claro que en ese orden,
>> > como es valido, la subsecuencia de cada Bi va a estar bien ordenada.
>> > Hay M(Bi)! maneras de ordenar cada una de estas subsecuencias, pero en
>> > K ese orden esta fijo.  La pregunta entonces es cuantos ordenes K hay
>> > donde los ordenes de cada subsecuencia para cada Bi es fijo.
>> >
>> > Claramente hay M(A-1)! ordenes, ya que A siempre tiene que aparecer
>> > primero en cualquier orden.  De todos estos, las clases
>> > correspondientes a cada rama Bi siempre aparecen en el mismo orden
>> > porque dijimos que en K el orden es fijo.  Por lo tanto, al fijar el
>> > orden Bi, hay que dividir a M(A-1)! por M(Bi)!.  Luego, la cantidad de
>> > ordenes K que empiezan en A es
>> >
>> > K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!
>> >
>> > donde B1...Bb son las subclases directas de A.
>> >
>> > 2.  Ahora bien, K(A) mide la cantidad de ordenes posibles dado un
>> > orden fijo para cada rama Bi.  Es claro que N(A) entonces debe ser
>> > K(A) multiplicado por cada cantidad de maneras posibles de resolver
>> > cada rama Bi.  Luego,
>> >
>> > N(A) = K(A) * N(B1) * N(B2) * ... * N(Bb)
>> >
>> > No puede haber duplicados en esta lista, ya que en cada uno de estos
>> > ordenes existe por lo menos una subsecuencia para alguna rama Bi que
>> > es diferente.
>> >
>> > Ahora bien, reemplazando N(B1) por K(B1) * N(C1) * N(C2) * ... *
>> > N(Cc), obtenemos
>> >
>> > N(A) = K(A) * K(B1) * N(C1) * ... * N(Cc) * N(B2) * ... * N(Bb)
>> >
>> > Pero K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!, y K(B1) = M(B1-1)! /
>> > (M(C1)! * ... * M(Cc)!).  De aqui se simplifica M(B1-1)! / M(B1)! = 1
>> > / M(B1), y queda
>> >
>> > N(A) = M(A-1)! / M(B1) * (N(C1) * ... * N(Cc)) / (M(C1)! * ... *
>> > M(Cc)!) * (N(B2) * ... * N(Bb))
>> >
>> > Reemplazando N(C1) por K(C1) * N(D1) * ... * N(Dd), obtenemos M(C1) en
>> > el denominador.  Siguiendo de este modo se cancelan casi todos los
>> > terminos excepto
>> >
>> > N(A) = M(A-1)! / (\prod_X M(X))
>> >
>> > Si?
>> >
>> > Andres.
>> >
>> > 2010/12/21 Angel "Java" Lopez <[hidden email]>:
>> >> Bueno, despues de la ducha, a ver si avanzo algo hacia la solución
>> >> pedida:
>> >>
>> >> N(A) = cantidad que resuelve el problema para A
>> >> M(A) = cantidad de subclases de A, directas o no, incluyendo A
>> >>
>> >> B1,B2,... Bn subclases directas de A
>> >>
>> >> K(A) = (M(A)-1)! / M(B1)!M(B2)! ...M(Bn)!
>> >>
>> >> (vean que M(A)-1 = M(B1)+M(B2)+... M(Bn))
>> >>
>> >> Es el numero de formas de resolver el problema, si las subclases de un
>> >> nodo,
>> >> siempre aparecieran en un orden: digamos que si
>> >>
>> >> B1
>> >>  C2
>> >>    D1
>> >>    D2
>> >>  C3
>> >>
>> >> Siempre aparecería
>> >>
>> >> ..... B1.... C2.... D1...D2.... C3.....
>> >>
>> >> Donde los ... son clases de otras ramas "primas, hermanas, tias, etc"
>> >> de B1.
>> >> Hay, entonces, K(A) soluciones de esa forma.
>> >>
>> >>
>> >> Sigue:
>> >>
>> >> N(A) = K(A) * N(B1) * N(B2) * ... N(Bn)
>> >>
>> >> Entonces, contempla que las subclases de B1 puedan aparecer ordenadas
>> >> según
>> >> N(B1) distintas formas, que son las formas de solucionar el problema
>> >> para
>> >> B1.
>> >>
>> >> Hmmm... se debería poder avanzar, expandiendo N(B1)*N(B2)... N(Bn)
>> >>
>> >> Deberia quedar todo expresado en sumas, multiplicaciones, factoriales
>> >> de
>> >> M(X), donde X recorre todos las clases.
>> >>
>> >> Algo como:
>> >>
>> >> N(A) = [(M(B1)+M(B2)+... +M(Bn))!/M(B1)!M(B2)!...M(Bn)!]
>> >> [(M(C1)+M(C2)+...+M(Cm))!/M(C1)!M(C2)!...M(Cn)!] ....
>> >>
>> >> Recordando que si B1 tiene hijos directos C1, C2,... Cm, M(B1) =
>> >> M(C1)+M(C2)+...M(Cm) + 1... vemos que en el denominador aparece M(B1)!
>> >> Y en
>> >> el numerador aparece (M(B1)-1)!...
>> >>
>> >> Con lo que queda, M(B1) en el denominador (notable! ;-)
>> >>
>> >> Sera entonces esto?
>> >>
>> >> N(A) = (M(A)-1)! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>> >>
>> >> O, lo que es lo mismo
>> >>
>> >> N(A) = (M(B1)+M(B2)...+M(Bn))! / M(B1)M(B2)....
>> >> M(Bn)M(C1)M(C2)...M(Cm).....
>> >>
>> >> (el denominador es la multiplicacion de M(X) donde X pasea por cada
>> >> clase)
>> >>
>> >> Jeje, espero en este cuarto mensaje, haber llegado mas cerca que los
>> >> anteriores.
>> >>
>> >> Si la de arriba es al formula respuesta, debería poder deducirse de una
>> >> forma mas fácil, un "aja!".
>> >>
>> >> Arriesgo: cada M(B1) del denominador dice:
>> >> "de todas las formas que me da el numerador, tengo que quedarme con 1
>> >> de
>> >> cada M(B1), que son las únicas donde B1 aparece antes que sus
>> >> descendientes".
>> >>
>> >> Tengo que tomar el colectivo, debería haber comprobado todo esto con un
>> >> calculo sobre un árbol en concreto...
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Angel "Java" Lopez
>> >> Enviado el: Tuesday, December 21, 2010 7:14 AM
>> >> Para: [hidden email]
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Argg!!
>> >>
>> >> Sigo contando mal
>> >> N(A) seria 2! N(B1) * N(B2)
>> >> Si las clases de B1 vinieran todas primero que las de B2, o al revés.
>> >> No
>> >> contemple que el problema admite que se "entrelacen".
>> >>
>> >> Los dejo tranquilos por un rato.. ;-)
>> >>
>> >> Si tuviera que "arriesgar" una formula ahora, seria:
>> >>
>> >> N(A) = (N(B1)+N(B2)+...)! / N(B1)! N(B2)! ...
>> >>
>> >> Ya va apareciendo Pascal por aca...
>> >>
>> >> Interesante problema, Andres!
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Angel "Java" Lopez
>> >> Enviado el: Tuesday, December 21, 2010 6:57 AM
>> >> Para: [hidden email]
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Disculpen, esta mal contado, no es
>> >>
>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>> >>
>> >> Sino
>> >>
>> >> N(A) = n! (N(B1) * N(B2) * ...  * N(Bn))
>> >>
>> >> Cada clase con, digamos, k descendientes directos, aporta un factor k!
>> >> a
>> >> N(A), no importa el nivel en el que este.
>> >>
>> >> Las clases sin descendientes, aportan un factor 0! = 1, podemos poner.
>> >>
>> >> N(A) = la multiplicación de los j!, donde j es la cantidad de
>> >> descendientes
>> >> directos de cada clase, incluyendo A
>> >>
>> >> Ahora si?
>> >> ;-)
>> >>
>> >> Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>> >> forma del nodo para maximizar N(A)? Y para minimizarlo?
>> >>
>> >> -----Mensaje original-----
>> >> De: Angel "Java" Lopez [mailto:[hidden email]]
>> >> Enviado el: Tuesday, December 21, 2010 6:36 AM
>> >> Para: '[hidden email]'
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Hola gente!
>> >>
>> >> A ver si entendi...
>> >>
>> >> Sea N(A1) el numero de maneras de resolver el problema para A1 y sus
>> >> descendientes.
>> >>
>> >> Sera:
>> >>
>> >> N(A1) = 2! (N(B1) + N(B2))
>> >>
>> >> En general,
>> >>
>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>> >>
>> >> Donde n es la cantidad de descendientes directos de A.
>> >>
>> >> N(X) = 1 si X no tiene descendientes.
>> >>
>> >> Ahora, es cuestión de hacer las cuentas... ;-)
>> >>
>> >> Habre contado bien?
>> >>
>> >> Si a partir de A, siempre tenemos que cada clase tiene n descendientes
>> >> directos (n fijo) hasta el nivel m, queda
>> >>
>> >> N(A) = (n*n!)^m
>> >>
>> >> Nos leemos!
>> >>
>> >> Angel "Java" Lopez
>> >> http://www.ajlopez.com
>> >> http://twitter.com/ajlopez
>> >>
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Andres Valloud
>> >> Enviado el: Tuesday, December 21, 2010 12:03 AM
>> >> Para: [hidden email]
>> >> Asunto: Re: [clubSmalltalk] Que groso...
>> >>
>> >> Si, ese es un orden que funciona.  Pero tambien "A1 B2 ... B1 ..."
>> >> funciona.  Bueno, cuantos de esos hay?
>> >>
>> >> 2010/12/20 Andrés Macagno <[hidden email]>:
>> >>> ¿En orden no funciona? Es decir, empezando por A1 y finalizando con
>> >>> C4.
>> >>>
>> >>> A1 B1 C1 C2 D1 B2 C3 D2 D3 D4 C4
>> >>>
>> >>> Se que no responde a tu pregunta, pero bueno ;-)
>> >>>
>> >>> Saludos.
>> >>>
>> >>> El 20 de diciembre de 2010 22:35, Gaboto <[hidden email]> escribió:
>> >>>>
>> >>>> Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar
>> >> topológicamente
>> >>>> un grafo?
>> >>>> Según tengo entendido hay algoritmos para eso.
>> >>>>
>> >>>> http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica
>> >>>>
>> >>>> 2010/12/20 Andres Valloud <[hidden email]>
>> >>>>>
>> >>>>> A ver... supongan la siguiente jerarquia de clases:
>> >>>>>
>> >>>>> A1
>> >>>>>  B1
>> >>>>>    C1
>> >>>>>    C2
>> >>>>>      D1
>> >>>>>  B2
>> >>>>>    C3
>> >>>>>      D2
>> >>>>>      D3
>> >>>>>      D4
>> >>>>>    C4
>> >>>>>
>> >>>>> Cuantas maneras hay de hacer un fileout de las definiciones de clase
>> >>>>> de tal manera que se pueda hacer un file in en otra imagen?  O sea,
>> >>>>> el
>> >>>>> problema es que no se puede hacer un file out de C4 antes de B2
>> >>>>> porque
>> >>>>> si no cuando se hace file in de C4, su superclase B2 no existe.
>> >>>>>
>> >>>>> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
>> >>>>> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo
>> >>>>> tanto,
>> >>>>> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file
>> >>>>> out
>> >>>>> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
>> >>>>> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
>> >>>>> Entonces, pregunta... alguien sabe como calcular el numero de
>> >>>>> posibles
>> >>>>> file outs sin tener que buscar exhaustivamente?  Es mas o menos
>> >>>>> claro
>> >>>>> que ese numero es el numero posible de traversals de un tree.  Como
>> >>>>> se
>> >>>>> calcula eso?  Hay algun resultado ya hecho?
>> >>>>>
>> >>>>> Andres.
>> >>>>>
>> >>>>> --
>> >>>>> To post to this group, send email to [hidden email]
>> >>>>> To unsubscribe from this group, send email to
>> >>>>> [hidden email]
>> >>>>>
>> >>>>> http://www.clubSmalltalk.org
>> >>>>
>> >>>> --
>> >>>> To post to this group, send email to [hidden email]
>> >>>> To unsubscribe from this group, send email to
>> >>>> [hidden email]
>> >>>>
>> >>>> http://www.clubSmalltalk.org
>> >>>
>> >>> --
>> >>> To post to this group, send email to [hidden email]
>> >>> To unsubscribe from this group, send email to
>> >>> [hidden email]
>> >>>
>> >>> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
Que risa ver lo que pasa en el caso donde N(A) se minimiza...

A1
  B1
    C1
      ...
        R1

Te queda

N(A1) = M(A1-1)! / M(B1)!M(C1)!...M(R1)!

o sea

N(A1) = (R-1)! / (R-1)(R-2)...(2)(1) = 1

2010/12/21 Andres Valloud <[hidden email]>:

> Che pensando un poco en esto, voy a ver de escribirlo con otra
> notacion que tenga mas que ver con composicion de funciones.  Por
> ejemplo,
>
> G(A,1) = B1
> G(G(A, 1), 2) = C2
>
> Y asi.  La idea es que G^n(A, ...) es una hoja, y M(hoja)=1.
>
> 2010/12/21 Angel Java Lopez <[hidden email]>:
>> Yes!
>>
>> Y ahi me di cuenta del "aja", que explique en mi email post-ducha... Lo que
>> hace el agua caliente ;-)
>>
>> Cada factor M(X) del denominador "descarta" secuencias erroneas, donde X no
>> aparece primero en la secuencia insertada en la secuencia total:
>>
>> .... X ...... X?...X?.... X?...X?....
>>
>> donde los X? son los descendientes directos o no de X.
>>
>> Nos leemos!
>>
>> Angel "Java" Lopez
>> http://www.ajlopez.com
>> http://twitter.com/ajlopez
>>
>>
>> 2010/12/21 Andres Valloud <[hidden email]>
>>>
>>> Ah, un detalle... se terminan cancelando todos los terminos porque
>>> eventualmente, al descender por el arbol lo suficiente, M(X) = 1 y
>>> luego N(X)=1 con lo que los terminos eventualmente desaparecen.
>>>
>>> 2010/12/21 Andres Valloud <[hidden email]>:
>>> > A ver si entendi bien.  Con tu notacion, lo que decis es lo siguiente.
>>> >
>>> > 1.  Existe por lo menos una manera de resolver este problema.  Por
>>> > ejemplo, breadth first.  Sea K ese orden.  Es claro que en ese orden,
>>> > como es valido, la subsecuencia de cada Bi va a estar bien ordenada.
>>> > Hay M(Bi)! maneras de ordenar cada una de estas subsecuencias, pero en
>>> > K ese orden esta fijo.  La pregunta entonces es cuantos ordenes K hay
>>> > donde los ordenes de cada subsecuencia para cada Bi es fijo.
>>> >
>>> > Claramente hay M(A-1)! ordenes, ya que A siempre tiene que aparecer
>>> > primero en cualquier orden.  De todos estos, las clases
>>> > correspondientes a cada rama Bi siempre aparecen en el mismo orden
>>> > porque dijimos que en K el orden es fijo.  Por lo tanto, al fijar el
>>> > orden Bi, hay que dividir a M(A-1)! por M(Bi)!.  Luego, la cantidad de
>>> > ordenes K que empiezan en A es
>>> >
>>> > K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!
>>> >
>>> > donde B1...Bb son las subclases directas de A.
>>> >
>>> > 2.  Ahora bien, K(A) mide la cantidad de ordenes posibles dado un
>>> > orden fijo para cada rama Bi.  Es claro que N(A) entonces debe ser
>>> > K(A) multiplicado por cada cantidad de maneras posibles de resolver
>>> > cada rama Bi.  Luego,
>>> >
>>> > N(A) = K(A) * N(B1) * N(B2) * ... * N(Bb)
>>> >
>>> > No puede haber duplicados en esta lista, ya que en cada uno de estos
>>> > ordenes existe por lo menos una subsecuencia para alguna rama Bi que
>>> > es diferente.
>>> >
>>> > Ahora bien, reemplazando N(B1) por K(B1) * N(C1) * N(C2) * ... *
>>> > N(Cc), obtenemos
>>> >
>>> > N(A) = K(A) * K(B1) * N(C1) * ... * N(Cc) * N(B2) * ... * N(Bb)
>>> >
>>> > Pero K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!, y K(B1) = M(B1-1)! /
>>> > (M(C1)! * ... * M(Cc)!).  De aqui se simplifica M(B1-1)! / M(B1)! = 1
>>> > / M(B1), y queda
>>> >
>>> > N(A) = M(A-1)! / M(B1) * (N(C1) * ... * N(Cc)) / (M(C1)! * ... *
>>> > M(Cc)!) * (N(B2) * ... * N(Bb))
>>> >
>>> > Reemplazando N(C1) por K(C1) * N(D1) * ... * N(Dd), obtenemos M(C1) en
>>> > el denominador.  Siguiendo de este modo se cancelan casi todos los
>>> > terminos excepto
>>> >
>>> > N(A) = M(A-1)! / (\prod_X M(X))
>>> >
>>> > Si?
>>> >
>>> > Andres.
>>> >
>>> > 2010/12/21 Angel "Java" Lopez <[hidden email]>:
>>> >> Bueno, despues de la ducha, a ver si avanzo algo hacia la solución
>>> >> pedida:
>>> >>
>>> >> N(A) = cantidad que resuelve el problema para A
>>> >> M(A) = cantidad de subclases de A, directas o no, incluyendo A
>>> >>
>>> >> B1,B2,... Bn subclases directas de A
>>> >>
>>> >> K(A) = (M(A)-1)! / M(B1)!M(B2)! ...M(Bn)!
>>> >>
>>> >> (vean que M(A)-1 = M(B1)+M(B2)+... M(Bn))
>>> >>
>>> >> Es el numero de formas de resolver el problema, si las subclases de un
>>> >> nodo,
>>> >> siempre aparecieran en un orden: digamos que si
>>> >>
>>> >> B1
>>> >>  C2
>>> >>    D1
>>> >>    D2
>>> >>  C3
>>> >>
>>> >> Siempre aparecería
>>> >>
>>> >> ..... B1.... C2.... D1...D2.... C3.....
>>> >>
>>> >> Donde los ... son clases de otras ramas "primas, hermanas, tias, etc"
>>> >> de B1.
>>> >> Hay, entonces, K(A) soluciones de esa forma.
>>> >>
>>> >>
>>> >> Sigue:
>>> >>
>>> >> N(A) = K(A) * N(B1) * N(B2) * ... N(Bn)
>>> >>
>>> >> Entonces, contempla que las subclases de B1 puedan aparecer ordenadas
>>> >> según
>>> >> N(B1) distintas formas, que son las formas de solucionar el problema
>>> >> para
>>> >> B1.
>>> >>
>>> >> Hmmm... se debería poder avanzar, expandiendo N(B1)*N(B2)... N(Bn)
>>> >>
>>> >> Deberia quedar todo expresado en sumas, multiplicaciones, factoriales
>>> >> de
>>> >> M(X), donde X recorre todos las clases.
>>> >>
>>> >> Algo como:
>>> >>
>>> >> N(A) = [(M(B1)+M(B2)+... +M(Bn))!/M(B1)!M(B2)!...M(Bn)!]
>>> >> [(M(C1)+M(C2)+...+M(Cm))!/M(C1)!M(C2)!...M(Cn)!] ....
>>> >>
>>> >> Recordando que si B1 tiene hijos directos C1, C2,... Cm, M(B1) =
>>> >> M(C1)+M(C2)+...M(Cm) + 1... vemos que en el denominador aparece M(B1)!
>>> >> Y en
>>> >> el numerador aparece (M(B1)-1)!...
>>> >>
>>> >> Con lo que queda, M(B1) en el denominador (notable! ;-)
>>> >>
>>> >> Sera entonces esto?
>>> >>
>>> >> N(A) = (M(A)-1)! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>>> >>
>>> >> O, lo que es lo mismo
>>> >>
>>> >> N(A) = (M(B1)+M(B2)...+M(Bn))! / M(B1)M(B2)....
>>> >> M(Bn)M(C1)M(C2)...M(Cm).....
>>> >>
>>> >> (el denominador es la multiplicacion de M(X) donde X pasea por cada
>>> >> clase)
>>> >>
>>> >> Jeje, espero en este cuarto mensaje, haber llegado mas cerca que los
>>> >> anteriores.
>>> >>
>>> >> Si la de arriba es al formula respuesta, debería poder deducirse de una
>>> >> forma mas fácil, un "aja!".
>>> >>
>>> >> Arriesgo: cada M(B1) del denominador dice:
>>> >> "de todas las formas que me da el numerador, tengo que quedarme con 1
>>> >> de
>>> >> cada M(B1), que son las únicas donde B1 aparece antes que sus
>>> >> descendientes".
>>> >>
>>> >> Tengo que tomar el colectivo, debería haber comprobado todo esto con un
>>> >> calculo sobre un árbol en concreto...
>>> >>
>>> >> -----Mensaje original-----
>>> >> De: [hidden email]
>>> >> [mailto:[hidden email]]
>>> >> En nombre de Angel "Java" Lopez
>>> >> Enviado el: Tuesday, December 21, 2010 7:14 AM
>>> >> Para: [hidden email]
>>> >> Asunto: RE: [clubSmalltalk] Que groso...
>>> >>
>>> >> Argg!!
>>> >>
>>> >> Sigo contando mal
>>> >> N(A) seria 2! N(B1) * N(B2)
>>> >> Si las clases de B1 vinieran todas primero que las de B2, o al revés.
>>> >> No
>>> >> contemple que el problema admite que se "entrelacen".
>>> >>
>>> >> Los dejo tranquilos por un rato.. ;-)
>>> >>
>>> >> Si tuviera que "arriesgar" una formula ahora, seria:
>>> >>
>>> >> N(A) = (N(B1)+N(B2)+...)! / N(B1)! N(B2)! ...
>>> >>
>>> >> Ya va apareciendo Pascal por aca...
>>> >>
>>> >> Interesante problema, Andres!
>>> >>
>>> >> -----Mensaje original-----
>>> >> De: [hidden email]
>>> >> [mailto:[hidden email]]
>>> >> En nombre de Angel "Java" Lopez
>>> >> Enviado el: Tuesday, December 21, 2010 6:57 AM
>>> >> Para: [hidden email]
>>> >> Asunto: RE: [clubSmalltalk] Que groso...
>>> >>
>>> >> Disculpen, esta mal contado, no es
>>> >>
>>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>>> >>
>>> >> Sino
>>> >>
>>> >> N(A) = n! (N(B1) * N(B2) * ...  * N(Bn))
>>> >>
>>> >> Cada clase con, digamos, k descendientes directos, aporta un factor k!
>>> >> a
>>> >> N(A), no importa el nivel en el que este.
>>> >>
>>> >> Las clases sin descendientes, aportan un factor 0! = 1, podemos poner.
>>> >>
>>> >> N(A) = la multiplicación de los j!, donde j es la cantidad de
>>> >> descendientes
>>> >> directos de cada clase, incluyendo A
>>> >>
>>> >> Ahora si?
>>> >> ;-)
>>> >>
>>> >> Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>>> >> forma del nodo para maximizar N(A)? Y para minimizarlo?
>>> >>
>>> >> -----Mensaje original-----
>>> >> De: Angel "Java" Lopez [mailto:[hidden email]]
>>> >> Enviado el: Tuesday, December 21, 2010 6:36 AM
>>> >> Para: '[hidden email]'
>>> >> Asunto: RE: [clubSmalltalk] Que groso...
>>> >>
>>> >> Hola gente!
>>> >>
>>> >> A ver si entendi...
>>> >>
>>> >> Sea N(A1) el numero de maneras de resolver el problema para A1 y sus
>>> >> descendientes.
>>> >>
>>> >> Sera:
>>> >>
>>> >> N(A1) = 2! (N(B1) + N(B2))
>>> >>
>>> >> En general,
>>> >>
>>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>>> >>
>>> >> Donde n es la cantidad de descendientes directos de A.
>>> >>
>>> >> N(X) = 1 si X no tiene descendientes.
>>> >>
>>> >> Ahora, es cuestión de hacer las cuentas... ;-)
>>> >>
>>> >> Habre contado bien?
>>> >>
>>> >> Si a partir de A, siempre tenemos que cada clase tiene n descendientes
>>> >> directos (n fijo) hasta el nivel m, queda
>>> >>
>>> >> N(A) = (n*n!)^m
>>> >>
>>> >> Nos leemos!
>>> >>
>>> >> Angel "Java" Lopez
>>> >> http://www.ajlopez.com
>>> >> http://twitter.com/ajlopez
>>> >>
>>> >>
>>> >> -----Mensaje original-----
>>> >> De: [hidden email]
>>> >> [mailto:[hidden email]]
>>> >> En nombre de Andres Valloud
>>> >> Enviado el: Tuesday, December 21, 2010 12:03 AM
>>> >> Para: [hidden email]
>>> >> Asunto: Re: [clubSmalltalk] Que groso...
>>> >>
>>> >> Si, ese es un orden que funciona.  Pero tambien "A1 B2 ... B1 ..."
>>> >> funciona.  Bueno, cuantos de esos hay?
>>> >>
>>> >> 2010/12/20 Andrés Macagno <[hidden email]>:
>>> >>> ¿En orden no funciona? Es decir, empezando por A1 y finalizando con
>>> >>> C4.
>>> >>>
>>> >>> A1 B1 C1 C2 D1 B2 C3 D2 D3 D4 C4
>>> >>>
>>> >>> Se que no responde a tu pregunta, pero bueno ;-)
>>> >>>
>>> >>> Saludos.
>>> >>>
>>> >>> El 20 de diciembre de 2010 22:35, Gaboto <[hidden email]> escribió:
>>> >>>>
>>> >>>> Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar
>>> >> topológicamente
>>> >>>> un grafo?
>>> >>>> Según tengo entendido hay algoritmos para eso.
>>> >>>>
>>> >>>> http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica
>>> >>>>
>>> >>>> 2010/12/20 Andres Valloud <[hidden email]>
>>> >>>>>
>>> >>>>> A ver... supongan la siguiente jerarquia de clases:
>>> >>>>>
>>> >>>>> A1
>>> >>>>>  B1
>>> >>>>>    C1
>>> >>>>>    C2
>>> >>>>>      D1
>>> >>>>>  B2
>>> >>>>>    C3
>>> >>>>>      D2
>>> >>>>>      D3
>>> >>>>>      D4
>>> >>>>>    C4
>>> >>>>>
>>> >>>>> Cuantas maneras hay de hacer un fileout de las definiciones de clase
>>> >>>>> de tal manera que se pueda hacer un file in en otra imagen?  O sea,
>>> >>>>> el
>>> >>>>> problema es que no se puede hacer un file out de C4 antes de B2
>>> >>>>> porque
>>> >>>>> si no cuando se hace file in de C4, su superclase B2 no existe.
>>> >>>>>
>>> >>>>> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
>>> >>>>> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo
>>> >>>>> tanto,
>>> >>>>> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file
>>> >>>>> out
>>> >>>>> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
>>> >>>>> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
>>> >>>>> Entonces, pregunta... alguien sabe como calcular el numero de
>>> >>>>> posibles
>>> >>>>> file outs sin tener que buscar exhaustivamente?  Es mas o menos
>>> >>>>> claro
>>> >>>>> que ese numero es el numero posible de traversals de un tree.  Como
>>> >>>>> se
>>> >>>>> calcula eso?  Hay algun resultado ya hecho?
>>> >>>>>
>>> >>>>> Andres.
>>> >>>>>
>>> >>>>> --
>>> >>>>> To post to this group, send email to [hidden email]
>>> >>>>> To unsubscribe from this group, send email to
>>> >>>>> [hidden email]
>>> >>>>>
>>> >>>>> http://www.clubSmalltalk.org
>>> >>>>
>>> >>>> --
>>> >>>> To post to this group, send email to [hidden email]
>>> >>>> To unsubscribe from this group, send email to
>>> >>>> [hidden email]
>>> >>>>
>>> >>>> http://www.clubSmalltalk.org
>>> >>>
>>> >>> --
>>> >>> To post to this group, send email to [hidden email]
>>> >>> To unsubscribe from this group, send email to
>>> >>> [hidden email]
>>> >>>
>>> >>> http://www.clubSmalltalk.org
>>> >>
>>> >> --
>>> >> To post to this group, send email to [hidden email]
>>> >> To unsubscribe from this group, send email to
>>> >> [hidden email]
>>> >>
>>> >> http://www.clubSmalltalk.org
>>> >>
>>> >> --
>>> >> To post to this group, send email to [hidden email]
>>> >> To unsubscribe from this group, send email to
>>> >> [hidden email]
>>> >>
>>> >> http://www.clubSmalltalk.org
>>> >>
>>> >> --
>>> >> To post to this group, send email to [hidden email]
>>> >> To unsubscribe from this group, send email to
>>> >> [hidden email]
>>> >>
>>> >> http://www.clubSmalltalk.org
>>> >>
>>> >> --
>>> >> To post to this group, send email to [hidden email]
>>> >> To unsubscribe from this group, send email to
>>> >> [hidden email]
>>> >>
>>> >> http://www.clubSmalltalk.org
>>> >
>>>
>>> --
>>> To post to this group, send email to [hidden email]
>>> To unsubscribe from this group, send email to
>>> [hidden email]
>>>
>>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Que groso...

Andres Valloud-5
In reply to this post by Angel Java Lopez
Listo, escrito esta.

2010/12/21 Angel Java Lopez <[hidden email]>:

> Yes!
>
> Y ahi me di cuenta del "aja", que explique en mi email post-ducha... Lo que
> hace el agua caliente ;-)
>
> Cada factor M(X) del denominador "descarta" secuencias erroneas, donde X no
> aparece primero en la secuencia insertada en la secuencia total:
>
> .... X ...... X?...X?.... X?...X?....
>
> donde los X? son los descendientes directos o no de X.
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://www.ajlopez.com
> http://twitter.com/ajlopez
>
>
> 2010/12/21 Andres Valloud <[hidden email]>
>>
>> Ah, un detalle... se terminan cancelando todos los terminos porque
>> eventualmente, al descender por el arbol lo suficiente, M(X) = 1 y
>> luego N(X)=1 con lo que los terminos eventualmente desaparecen.
>>
>> 2010/12/21 Andres Valloud <[hidden email]>:
>> > A ver si entendi bien.  Con tu notacion, lo que decis es lo siguiente.
>> >
>> > 1.  Existe por lo menos una manera de resolver este problema.  Por
>> > ejemplo, breadth first.  Sea K ese orden.  Es claro que en ese orden,
>> > como es valido, la subsecuencia de cada Bi va a estar bien ordenada.
>> > Hay M(Bi)! maneras de ordenar cada una de estas subsecuencias, pero en
>> > K ese orden esta fijo.  La pregunta entonces es cuantos ordenes K hay
>> > donde los ordenes de cada subsecuencia para cada Bi es fijo.
>> >
>> > Claramente hay M(A-1)! ordenes, ya que A siempre tiene que aparecer
>> > primero en cualquier orden.  De todos estos, las clases
>> > correspondientes a cada rama Bi siempre aparecen en el mismo orden
>> > porque dijimos que en K el orden es fijo.  Por lo tanto, al fijar el
>> > orden Bi, hay que dividir a M(A-1)! por M(Bi)!.  Luego, la cantidad de
>> > ordenes K que empiezan en A es
>> >
>> > K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!
>> >
>> > donde B1...Bb son las subclases directas de A.
>> >
>> > 2.  Ahora bien, K(A) mide la cantidad de ordenes posibles dado un
>> > orden fijo para cada rama Bi.  Es claro que N(A) entonces debe ser
>> > K(A) multiplicado por cada cantidad de maneras posibles de resolver
>> > cada rama Bi.  Luego,
>> >
>> > N(A) = K(A) * N(B1) * N(B2) * ... * N(Bb)
>> >
>> > No puede haber duplicados en esta lista, ya que en cada uno de estos
>> > ordenes existe por lo menos una subsecuencia para alguna rama Bi que
>> > es diferente.
>> >
>> > Ahora bien, reemplazando N(B1) por K(B1) * N(C1) * N(C2) * ... *
>> > N(Cc), obtenemos
>> >
>> > N(A) = K(A) * K(B1) * N(C1) * ... * N(Cc) * N(B2) * ... * N(Bb)
>> >
>> > Pero K(A) = M(A-1)! / M(B1)!M(B2)!...M(Bb)!, y K(B1) = M(B1-1)! /
>> > (M(C1)! * ... * M(Cc)!).  De aqui se simplifica M(B1-1)! / M(B1)! = 1
>> > / M(B1), y queda
>> >
>> > N(A) = M(A-1)! / M(B1) * (N(C1) * ... * N(Cc)) / (M(C1)! * ... *
>> > M(Cc)!) * (N(B2) * ... * N(Bb))
>> >
>> > Reemplazando N(C1) por K(C1) * N(D1) * ... * N(Dd), obtenemos M(C1) en
>> > el denominador.  Siguiendo de este modo se cancelan casi todos los
>> > terminos excepto
>> >
>> > N(A) = M(A-1)! / (\prod_X M(X))
>> >
>> > Si?
>> >
>> > Andres.
>> >
>> > 2010/12/21 Angel "Java" Lopez <[hidden email]>:
>> >> Bueno, despues de la ducha, a ver si avanzo algo hacia la solución
>> >> pedida:
>> >>
>> >> N(A) = cantidad que resuelve el problema para A
>> >> M(A) = cantidad de subclases de A, directas o no, incluyendo A
>> >>
>> >> B1,B2,... Bn subclases directas de A
>> >>
>> >> K(A) = (M(A)-1)! / M(B1)!M(B2)! ...M(Bn)!
>> >>
>> >> (vean que M(A)-1 = M(B1)+M(B2)+... M(Bn))
>> >>
>> >> Es el numero de formas de resolver el problema, si las subclases de un
>> >> nodo,
>> >> siempre aparecieran en un orden: digamos que si
>> >>
>> >> B1
>> >>  C2
>> >>    D1
>> >>    D2
>> >>  C3
>> >>
>> >> Siempre aparecería
>> >>
>> >> ..... B1.... C2.... D1...D2.... C3.....
>> >>
>> >> Donde los ... son clases de otras ramas "primas, hermanas, tias, etc"
>> >> de B1.
>> >> Hay, entonces, K(A) soluciones de esa forma.
>> >>
>> >>
>> >> Sigue:
>> >>
>> >> N(A) = K(A) * N(B1) * N(B2) * ... N(Bn)
>> >>
>> >> Entonces, contempla que las subclases de B1 puedan aparecer ordenadas
>> >> según
>> >> N(B1) distintas formas, que son las formas de solucionar el problema
>> >> para
>> >> B1.
>> >>
>> >> Hmmm... se debería poder avanzar, expandiendo N(B1)*N(B2)... N(Bn)
>> >>
>> >> Deberia quedar todo expresado en sumas, multiplicaciones, factoriales
>> >> de
>> >> M(X), donde X recorre todos las clases.
>> >>
>> >> Algo como:
>> >>
>> >> N(A) = [(M(B1)+M(B2)+... +M(Bn))!/M(B1)!M(B2)!...M(Bn)!]
>> >> [(M(C1)+M(C2)+...+M(Cm))!/M(C1)!M(C2)!...M(Cn)!] ....
>> >>
>> >> Recordando que si B1 tiene hijos directos C1, C2,... Cm, M(B1) =
>> >> M(C1)+M(C2)+...M(Cm) + 1... vemos que en el denominador aparece M(B1)!
>> >> Y en
>> >> el numerador aparece (M(B1)-1)!...
>> >>
>> >> Con lo que queda, M(B1) en el denominador (notable! ;-)
>> >>
>> >> Sera entonces esto?
>> >>
>> >> N(A) = (M(A)-1)! / M(B1)M(B2).... M(Bn)M(C1)M(C2)...M(Cm).....
>> >>
>> >> O, lo que es lo mismo
>> >>
>> >> N(A) = (M(B1)+M(B2)...+M(Bn))! / M(B1)M(B2)....
>> >> M(Bn)M(C1)M(C2)...M(Cm).....
>> >>
>> >> (el denominador es la multiplicacion de M(X) donde X pasea por cada
>> >> clase)
>> >>
>> >> Jeje, espero en este cuarto mensaje, haber llegado mas cerca que los
>> >> anteriores.
>> >>
>> >> Si la de arriba es al formula respuesta, debería poder deducirse de una
>> >> forma mas fácil, un "aja!".
>> >>
>> >> Arriesgo: cada M(B1) del denominador dice:
>> >> "de todas las formas que me da el numerador, tengo que quedarme con 1
>> >> de
>> >> cada M(B1), que son las únicas donde B1 aparece antes que sus
>> >> descendientes".
>> >>
>> >> Tengo que tomar el colectivo, debería haber comprobado todo esto con un
>> >> calculo sobre un árbol en concreto...
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Angel "Java" Lopez
>> >> Enviado el: Tuesday, December 21, 2010 7:14 AM
>> >> Para: [hidden email]
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Argg!!
>> >>
>> >> Sigo contando mal
>> >> N(A) seria 2! N(B1) * N(B2)
>> >> Si las clases de B1 vinieran todas primero que las de B2, o al revés.
>> >> No
>> >> contemple que el problema admite que se "entrelacen".
>> >>
>> >> Los dejo tranquilos por un rato.. ;-)
>> >>
>> >> Si tuviera que "arriesgar" una formula ahora, seria:
>> >>
>> >> N(A) = (N(B1)+N(B2)+...)! / N(B1)! N(B2)! ...
>> >>
>> >> Ya va apareciendo Pascal por aca...
>> >>
>> >> Interesante problema, Andres!
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Angel "Java" Lopez
>> >> Enviado el: Tuesday, December 21, 2010 6:57 AM
>> >> Para: [hidden email]
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Disculpen, esta mal contado, no es
>> >>
>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>> >>
>> >> Sino
>> >>
>> >> N(A) = n! (N(B1) * N(B2) * ...  * N(Bn))
>> >>
>> >> Cada clase con, digamos, k descendientes directos, aporta un factor k!
>> >> a
>> >> N(A), no importa el nivel en el que este.
>> >>
>> >> Las clases sin descendientes, aportan un factor 0! = 1, podemos poner.
>> >>
>> >> N(A) = la multiplicación de los j!, donde j es la cantidad de
>> >> descendientes
>> >> directos de cada clase, incluyendo A
>> >>
>> >> Ahora si?
>> >> ;-)
>> >>
>> >> Dado un árbol de clases con raíz A, con cantidad de nodos r, cual es la
>> >> forma del nodo para maximizar N(A)? Y para minimizarlo?
>> >>
>> >> -----Mensaje original-----
>> >> De: Angel "Java" Lopez [mailto:[hidden email]]
>> >> Enviado el: Tuesday, December 21, 2010 6:36 AM
>> >> Para: '[hidden email]'
>> >> Asunto: RE: [clubSmalltalk] Que groso...
>> >>
>> >> Hola gente!
>> >>
>> >> A ver si entendi...
>> >>
>> >> Sea N(A1) el numero de maneras de resolver el problema para A1 y sus
>> >> descendientes.
>> >>
>> >> Sera:
>> >>
>> >> N(A1) = 2! (N(B1) + N(B2))
>> >>
>> >> En general,
>> >>
>> >> N(A) = n! (N(B1) + N(B2) + ...  + N(Bn))
>> >>
>> >> Donde n es la cantidad de descendientes directos de A.
>> >>
>> >> N(X) = 1 si X no tiene descendientes.
>> >>
>> >> Ahora, es cuestión de hacer las cuentas... ;-)
>> >>
>> >> Habre contado bien?
>> >>
>> >> Si a partir de A, siempre tenemos que cada clase tiene n descendientes
>> >> directos (n fijo) hasta el nivel m, queda
>> >>
>> >> N(A) = (n*n!)^m
>> >>
>> >> Nos leemos!
>> >>
>> >> Angel "Java" Lopez
>> >> http://www.ajlopez.com
>> >> http://twitter.com/ajlopez
>> >>
>> >>
>> >> -----Mensaje original-----
>> >> De: [hidden email]
>> >> [mailto:[hidden email]]
>> >> En nombre de Andres Valloud
>> >> Enviado el: Tuesday, December 21, 2010 12:03 AM
>> >> Para: [hidden email]
>> >> Asunto: Re: [clubSmalltalk] Que groso...
>> >>
>> >> Si, ese es un orden que funciona.  Pero tambien "A1 B2 ... B1 ..."
>> >> funciona.  Bueno, cuantos de esos hay?
>> >>
>> >> 2010/12/20 Andrés Macagno <[hidden email]>:
>> >>> ¿En orden no funciona? Es decir, empezando por A1 y finalizando con
>> >>> C4.
>> >>>
>> >>> A1 B1 C1 C2 D1 B2 C3 D2 D3 D4 C4
>> >>>
>> >>> Se que no responde a tu pregunta, pero bueno ;-)
>> >>>
>> >>> Saludos.
>> >>>
>> >>> El 20 de diciembre de 2010 22:35, Gaboto <[hidden email]> escribió:
>> >>>>
>> >>>> Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar
>> >> topológicamente
>> >>>> un grafo?
>> >>>> Según tengo entendido hay algoritmos para eso.
>> >>>>
>> >>>> http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica
>> >>>>
>> >>>> 2010/12/20 Andres Valloud <[hidden email]>
>> >>>>>
>> >>>>> A ver... supongan la siguiente jerarquia de clases:
>> >>>>>
>> >>>>> A1
>> >>>>>  B1
>> >>>>>    C1
>> >>>>>    C2
>> >>>>>      D1
>> >>>>>  B2
>> >>>>>    C3
>> >>>>>      D2
>> >>>>>      D3
>> >>>>>      D4
>> >>>>>    C4
>> >>>>>
>> >>>>> Cuantas maneras hay de hacer un fileout de las definiciones de clase
>> >>>>> de tal manera que se pueda hacer un file in en otra imagen?  O sea,
>> >>>>> el
>> >>>>> problema es que no se puede hacer un file out de C4 antes de B2
>> >>>>> porque
>> >>>>> si no cuando se hace file in de C4, su superclase B2 no existe.
>> >>>>>
>> >>>>> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
>> >>>>> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo
>> >>>>> tanto,
>> >>>>> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file
>> >>>>> out
>> >>>>> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
>> >>>>> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
>> >>>>> Entonces, pregunta... alguien sabe como calcular el numero de
>> >>>>> posibles
>> >>>>> file outs sin tener que buscar exhaustivamente?  Es mas o menos
>> >>>>> claro
>> >>>>> que ese numero es el numero posible de traversals de un tree.  Como
>> >>>>> se
>> >>>>> calcula eso?  Hay algun resultado ya hecho?
>> >>>>>
>> >>>>> Andres.
>> >>>>>
>> >>>>> --
>> >>>>> To post to this group, send email to [hidden email]
>> >>>>> To unsubscribe from this group, send email to
>> >>>>> [hidden email]
>> >>>>>
>> >>>>> http://www.clubSmalltalk.org
>> >>>>
>> >>>> --
>> >>>> To post to this group, send email to [hidden email]
>> >>>> To unsubscribe from this group, send email to
>> >>>> [hidden email]
>> >>>>
>> >>>> http://www.clubSmalltalk.org
>> >>>
>> >>> --
>> >>> To post to this group, send email to [hidden email]
>> >>> To unsubscribe from this group, send email to
>> >>> [hidden email]
>> >>>
>> >>> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >>
>> >> --
>> >> To post to this group, send email to [hidden email]
>> >> To unsubscribe from this group, send email to
>> >> [hidden email]
>> >>
>> >> http://www.clubSmalltalk.org
>> >
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to
>> [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to
> [hidden email]
>
> http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]

http://www.clubSmalltalk.org
12