Teorema de la amistad
El teorema de la amistad afirma que
En cualquier reunión de n personas hay al menos dos personas que tienen el mismo número de amigos (suponiendo que la relación de amistad es simétrica).
Se pueden usar las siguientes representaciones:
- números enteros para representar a las personas,
- pares de enteros (x,y), con x < y, para representar que la persona x e y son amigas y
- lista de pares de enteros para representar la reunión junto con las relaciones de amistad.
Por ejemplo, [(2,3),(3,5)] representa una reunión de tres personas
(2, 3 y 5) donde
- 2 es amiga de 3,
- 3 es amiga de 2 y 5 y
- 5 es amiga de 3.
Si clasificamos las personas poniendo en la misma clase las que tienen el mismo número de amigos, se obtiene [[2,5],[3]] ya que 2 y 5 tienen 1 amigo y 3 tiene 2 amigos.
Definir la función
tal que (clasesAmigos r) es la clasificación según el número de amigos de las personas de la reunión r; es decir, la lista cuyos elementos son las listas de personas con 1 amigo, con 2 amigos y así hasta que se completa todas las personas de la reunión r. Por ejemplo,
Comprobar con QuickCheck el teorema de la amistad; es decir, si r es una lista de pares de enteros, entonces (clasesAmigos r’) donde r’ es la lista de los pares (x,y) de r con x < y y se supone que r’ es no vacía.
Soluciones
Referencia
Pensamiento
Me dijo el agua clara que reía,
bajo el sol, sobre el mármol de la fuente:
si te inquieta el enigma del presente
aprende el son de la salmodia mía.Antonio Machado