1. Ús del xat de Moodle¶
Fa molt de temps, en una universitat molt llunyana, es feia servir Moodle per a lliurar els fitxers. Moodle disposa d’un xat, que, com és lògic, està prohibit utilitzar-lo durant els exàmens. Els professors d’una assignatura van voler saber quins estudiants l’havien fet servir durant un examen. Així doncs, van descarregar els registres d’accés a Moodle i van transferir la informació en un graf no dirigit (un networkx.Graph). Cada node del graf corresponia al nom d’un estudiant i una aresta entre dos nodes indicava que dos estudiants havien xatejat durant l’examen. Les arestes estaven etiquetades amb un atribut de nom 'minuts' que indicava quanta estona havien xerrat els dos estudiants. Vegeu-ne un exemple:
Graf amb tres grups d’estudiants xatejadors. (Nota: els noms dels estudiants han estat alterats per preservar la seva identitat).¶
1.1. Funció xerrameques (2 punts)¶
Al mòdul xat (fitxer xat.py), implementeu-hi la funció següent:
- xat.xerrameques(gx, n, tmin)¶
- Paràmetres:
- Retorna:
Conjunt de noms dels estudiants de gx que han xatejat amb més de n o més de tmin minuts amb un (sol) altre estudiant
- Tipus de retorn:
Per exemple, si gx és el graf de l’exemple de més amunt, aquesta funció ha de respondre així:
>>> xerrameques(gx, 1, 15) == {'Borjamari', 'Bruno', 'Cayetana', 'Jenny', 'Jimena', 'Ramon', 'Ramona', 'Ramonet'}
True
>>> xerrameques(gx, 2, 100) == {'Cayetana'}
True
>>> xerrameques(gx, 3, 12) == {'Borjamari', 'Bruno', 'Jenny', 'Yanira'}
True
>>> xerrameques(gx, 3, 50)
set()
Disposeu de més jocs de proves al fitxer tests-xerrameques.txt.
1.2. Funció grup_xatejadors (1.5 punts)¶
Al mateix mòdul xat (fitxer xat.py), implementeu-hi la funció següent:
- xat.grup_xatejadors(gx, e)¶
- Paràmetres:
- Retorna:
Tupla amb dues components. La primera component és una llista ordenada alfabèticament amb els noms dels estudiants que han pogut intercanviar informació a través del xat amb l’estudiant e, directa o indirectament. La segona component és la suma dels minuts que han xatejat els estudiants d’aquesta llista.
Per exemple, si gx és el graf de l’exemple de més amunt, aquesta funció ha de respondre així:
>>> grup_xatejadors(gx, 'Jimena')
(['Borjamari', 'Bruno', 'Cayetana', 'Matilda'], 48)
>>> grup_xatejadors(gx, 'Kevin')
(['Jenny', 'Yanira'], 19)
>>> grup_xatejadors(gx, 'Caterina')
([], 0)
Disposeu de més jocs de proves al fitxer tests-xatejadors.txt.