Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:teme:tema2-2020 [2020/03/26 21:04]
gabriel_danut.matei
sd-ca:teme:tema2-2020 [2020/03/29 19:30] (current)
gabriel_danut.matei
Line 1: Line 1:
-====== ​Tema2 - Count-distinct problem ======+====== ​Tema 2 - Count-distinct problem ======
  
 ** Responsabili:​ ** ** Responsabili:​ **
Line 10: Line 10:
  
 == Modificări şi actualizări ==  == Modificări şi actualizări == 
 +  * **27 martie, ora 01:30** - adăugat clarificari in sectiunea **Introducere**
 +  * **27 martie, ora 21:05** - adăugat **checker** in **enunt** si pe **vmchecker**
 +  * **27 martie, ora 23:40** - modificat fisier **Makefile** din **checker**
 +  * **29 martie, ora 16:00** - adăugat precizari in **cerinta II** legate de **dimensiunea Hashtable-ului**
 +  * **29 martie, ora 18:40** - adăugat corectare in **cerinta III** legata de **definitia lui m**
 +  * **29 martie, ora 19:30** - modificat fisier **check.sh** din **checker**;​ acum partea de **valgrind** are comportamentul corect pentru toate cerintele
 +
 <​hidden>​ <​hidden>​
   * **26 martie, ora 21:00** - adăugat **checker**   * **26 martie, ora 21:00** - adăugat **checker**
Line 22: Line 29:
  
 **Problema estimarii cardinalitatii** (a numararii elementelor distincte) este, in esenta, gasirea numarului de elemente unice dintr-o colectie de elemente care se pot repeta. **Problema estimarii cardinalitatii** (a numararii elementelor distincte) este, in esenta, gasirea numarului de elemente unice dintr-o colectie de elemente care se pot repeta.
 +<note important>​
 +Pentru cerintele **I** si **II**, vom rezolva o problema si mai restrictiva:​ gasirea **numarului de aparitii** pentru fiecare element. Pentru cerinta **III**, vom vedea ca acest lucru e mai greu realizabil cand vine vorba de volume mari de date si, de aceea, ne vom rezuma la **gasirea numarului de elemente distincte**.</​note>​
 +
 +
 +**Conceptual,​ ne referim la:**
 +
 +INPUT:
 +
 +''​1,​ 34, 2, 2, 2, 3''​
 +
 +OUTPUT:
 +
 +**Pentru cerintele I si II:**
 +
 +''​1 - 1''​
 +
 +''​2 - 3''​
 +
 +''​3 - 1''​
 +
 +''​34 - 1''​
 +
 +**Pentru cerinta III:**
 +
 +''​Exista 4 elemente distincte''​
  
-Pentru primele doua subpuncte, vom rezolva o problema si mai restrictiva:​ gasirea ​**numarului de aparitii** pentru fiecare element. Pentru restul, vom vedea ca acest lucru e mai greu realizabil cand vine vorba de volume mari de date si, de aceea, ne vom rezuma la gasirea numarului de elemente distincte.+<note warning>**Fiecare** dintre cele **3** cerinte se va implementa intr-un **fisier separat**.</​note>​
  
 ===== I. Vector de frecventa - 25p ===== ===== I. Vector de frecventa - 25p =====
Line 51: Line 83:
 {{:​sd-ca:​teme:​hash3.png|}} {{:​sd-ca:​teme:​hash3.png|}}
  
-//Se garanteaza existenta a cel putin unui bucket liber in momentul fiecarei operatii de insertie.//+//Se garanteaza existenta a cel putin unui bucket liber in momentul fiecarei operatii de insertie.// ​**Pentru a satisface aceasta conditie, o idee ar fi ca dimensiunea Hashtable-ului sa fie egala cu numarul de siruri existente in fisierul de intrare.**
  
 Evident, daca in momentul unei operatii de selectie nu gasim cheia in bucketul in care ne-am astepta, vom continua cautarea secvential, aplicand un procedeu similar cu cel din momentul insertiei. Evident, daca in momentul unei operatii de selectie nu gasim cheia in bucketul in care ne-am astepta, vom continua cautarea secvential, aplicand un procedeu similar cu cel din momentul insertiei.
  
-//Se garanteaza ca lungimea maxima a oricarui este maxim **100** de caractere.//​+//Se garanteaza ca lungimea maxima a oricarui ​sir este maxim **100** de caractere.//​
  
 //Se garanteaza ca numarul de aparitii ale oricarui element este mai mic decat **256**.// //Se garanteaza ca numarul de aparitii ale oricarui element este mai mic decat **256**.//
Line 123: Line 155:
 **E** reprezinta //estimarea finala// **E** reprezinta //estimarea finala//
  
-**m** reprezinta //numarul total de bucketuri//+**m** reprezinta //numarul total de bucketuri// ​**folosite**
  
 **Z** reprezinta //media//, calculata dupa urmatoarea formula: **Z** reprezinta //media//, calculata dupa urmatoarea formula:
Line 133: Line 165:
 {{:​sd-ca:​teme:​alfa.png|}} {{:​sd-ca:​teme:​alfa.png|}}
  
 +//Pentru ultima cerinta, citirea se va face dintr-un fisier al carui nume este primit ca parametru.//​
  
 === Precizări === === Precizări ===
Line 140: Line 173:
  
 === Checker === === Checker ===
-<​hidden>​ +{{:​sd-ca:​teme:​2-distinct-count.zip|CHECKER}} 
-{{:​sd-ca:​teme:​checker-tema2-distinctcount.zip|}} ​ +
-</​hidden>​ +
-* checkerul va fi publicat in scurt timp+
  
 Temele vor fi trimise pe [[https://​elf.cs.pub.ro/​vmchecker/​ui/#​SD|vmchecker]]. ​ Temele vor fi trimise pe [[https://​elf.cs.pub.ro/​vmchecker/​ui/#​SD|vmchecker]]. ​
Line 155: Line 185:
 === Punctaj === === Punctaj ===
  
-<note warning>​**Atenite!** O temă care nu compilează va primi 0 puncte.</​note>​+<note warning>​**Atentie!** O temă care nu compilează va primi 0 puncte.</​note>​
  
   - 80p teste   - 80p teste
sd-ca/teme/tema2-2020.1585249474.txt.gz · Last modified: 2020/03/26 21:04 by gabriel_danut.matei
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0