Tehtäväsi on rakentaa suuntaamaton verkko, jolle voidaan muodostaa tasan erilaista virittävää puuta.
Verkossa tulee olla solmut , ja verkon solmujen määrä saa olla enintään . Verkossa ei saa olla kahta samanlaista kaarta, ja jokaisen kaaren tulee yhdistää kaksi eri solmua.
Toteuta tiedostoon spanning.py
funktio create_edges
, joka muodostaa halutunlaisen verkon. Funktion tulee palauttaa verkko listana kaaria. Verkon solmujen määrä on suurin kaaressa esiintyvä solmun numero.
Esimerkiksi lista [(1, 2), (2, 3), (1, 3)]
tarkoittaa verkkoa, jossa ja jokaisen kahden solmun välillä on kaari. Tällä verkolla on kolme virittävää puuta, koska mikä tahansa kahden kaaren osajoukko on virittävä puu.
Voit muodostaa minkä tahansa verkon, jolla on halutut ominaisuudet. Funktiota testataan parametreilla . Jos verkkoa ei voi muodostaa, funktion tulee palauttaa None
.
def create_edges(x): # TODO if __name__ == "__main__": print(create_edges(1)) # esim. [(1, 2), (2, 3)] print(create_edges(2)) # None print(create_edges(3)) # esim. [(1, 2), (1, 3), (2, 3)]