Zbiory
|
Zbiory liczbowe (bez powtórzeń)) |
||
Od struktury typu ZBIÓR będziemy żądali niewiele : utwórz_pusty, dodaj_element, sprawdż_czy_jest . Ponadto zbiór to struktura "bez powtórzeń" tzn dodawanie kolejno np 3,2,3,3,2,3,2 utworzy zbiór {2,3} Możemy oczywiście skorzystać z klasy HashSet → dokumentacja Javy, ale co oczywiste, "wykonamy" zbiór samodzielnie. Oto on:
Posłużmy się bardzo prostym przykładem.
Losujemy 10 liczb każda z przedziału <0,9>. Aplet poniżej, w części "losuj swobodnie" pokazuje problem. Praktycznie rzecz biorąc na 10 takich losowań, w każdym następuje sytuacja powtórzeń niektórych wyników (zaznaczono kolorem czerwonym). void kazda_inna() {Zbior_liczb notuj; notuj=new Zbior_liczb( ); for(int i=0;i<10;i++) { do { los=mat.losowa_c(10); } while(notuj.nalezy(los)); notuj.dodaj(los); } } Problem oczywiście jest do rozwiązania, wystarczy wykorzystać nasz zbiór np tak jak pokazuję to w procedurze kazda_inna() . Podobny problem (i rozwiązanie) napotkamy w zadaniach typu "błądzenie losowe" . |