Informatika1-2012/HF4
A MathWikiből
A lap korábbi változatát látod, amilyen Rpalovics (vitalap | szerkesztései) 2012. október 7., 16:53-kor történt szerkesztése után volt.
4. házi feladat
Gyakori feladat, hogy két halmazról kell eldöntenünk, mennyire "hasonlóak". Például:
- meg kell mondanunk, hogy két vásárló mennyire vett azonos termékeket
- két ember mennyire olvas hasonló könyvket, hallgat azonos zenét, ...
Az alapfeladat, hogy eldöntsük Sage-ben két listáról, hogy "mennyire tartalmaznak azonos elemeket". (A listák egy-egy matematikai értelemben vett halmaznak felelnek meg.)
- Multiplicitás nélküli halmazok összehasonlításának egyik módja a Jaccard index kiszámítása. Ez egyszerűen két halmaz metszetének és uniójának hányadosa: | Jaccard index
- Írj sage függvényt, mely
- bemenetként megkap két listát,
- kiszámolja a két lista Jaccard-távolságát,
- nem dolgozik multiplicitással, tehát például a ['ferrari','mercedes','ferrari', 'mercedes'] és ['mercedes','williams','mercedes'] listák hasonlósága 1/3.
- A függvény neve legyen "jaccard_index".
- Számítsd ki a függvénnyel a ['U2','Isis', 'Slash','sleepmakeswaves', 'Coldplay', 'Maybeshewill'] és ['Isis','Slash','Amplifier', 'Led Zeppelin', 'U2'] listák hasonlóságát!
- Írj "jaccard_multi" függvényt, mely a metszet és únió számítása esetén a halmazok elemeit multiplicitással veszi figyelembe. Tehát az előző példára visszatérve: ['ferrari','mercedes','ferrari', 'mercedes'] és ['mercedes','williams','mercedes'] listák hasonlósága most 2/7.
- Segítség: a gyakorlat "szószámláló" és "szótár összehasonlító" függvényeinél látott ötletek segíthetnek. Azonban a feladat nagyon sokféleképp megoldható, és ennek megfelelően sokféle jó megoldást el tudunk fogadni.