Kategorier
Python

FRA-knäck 3 – Analytiker­testet

Här är min lösning för att producera en typ av sociogram, för att illustrera kontakterna i FRA:s analytikertest ”FRA-knäck 3”.

from pyvis.network import Network

persons = list('ABCDEFGHIJKLM')

contacts = """A ringer till G, H och K 
B ringer till C, D och M 
C ringer till B och D 
D ringer till B, C och M 
E ringer till B, G och J 
F ringer till I, J och L 
G ringer till A, E, H och K 
H ringer till A, G och K 
I ringer till F, J och L 
J ringer till F, I och L 
K ringer till A, G och H 
L ringer till F, I och J 
M ringer till B och D"""

net = Network(directed=True, width='100%', height='100%')

for person in persons:
    net.add_node(person, f'{person}')

for contact in contacts.splitlines():
    parts = contact.split(' ringer till ')
    source = parts[0]
    targets = [c for c in parts[1] if c.isupper()]

    for target in targets:
        net.add_edge(source, target)

net.show('Network.html')

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *