Jarosław Glegoła 293092
- -f -> nazwa pliku z którego chcemy wczytać dane
- -w - szerokość prostokąta
- -ht - wysokość prostokąta
- -p - liczba losowych punktów do wygenerowania
- -w - startowa szerokość prostokąta
- -ht - startowa wysokość prostokąta
- -p - startowa liczba losowych punktów do wygenerowania
- -wstep - liczba o jaką będzie się zwiększać szerokość z każdą następną iteracją
- -hstep - liczba o jaką będzie się zwiększać wysokość z każdą następną iteracją
- -pstep - liczba o jaką będzie się zwiększać liczba punktów z każdą następną iteracją
- -k - liczba iteracji
- -r - liczba powtórzen każdej z iteracji
- -bt - problem będzie rozwiązywany metododą brute force
- -io - problem będzie rozwiązywany metododą inside out
Szczegółowe informacje w dokumentacji
Do rozwiązania problemu użyłem trzech sposobów:
- Brute force - z pośród wszystkich dostępnych spełniających wymagania 1,2,4 wyszukaj największy z nich, który spełnia wymaganie 3
- Inside out - dla każdego punktu z P znajdz dla niego największą działkę która zawiera go w sobie
FixedDeque - autorska struktura danych implementująca wariację deque, czyli double-ended queue. Ma ona za zadanie dostarczać takiej samej funkcjonalności jak zwykła deque, lecz kopiowanie jej ma być w stałym czasie + nie można dodawać do niej elementów.
bisect - https://docs.python.org/2/library/bisect.html
insort - https://docs.python.org/2/library/bisect.html
.
├── data
│ ├── plots
│ │ ├── DrawSolution.py - klasa rysująca rozwiązanie na grafie
│ └── random_generator - pliki związane z generacją danych
│ └── random_problem.py
├── modes - pliki związane z wejściem użytkownika - flagi, parametry itp.
│ ├── command_line_config.py
│ ├── filemode
│ │ ├── FileMode.py
│ │ ├── FileReader.py
│ └── tablemode
│ ├── Analizer.py
└── solutions - pliki związane z rozwiązaniami problemu
├── BruteForceResolver.py - klasa rozwiącująca problem metodą brute force
├── InsideOutResolver.py - klasa rozwiącująca problem metodą Inside out
└── models
├── Side.py - enum reprezentujący poszczególne boki prostokąta
├── Square.py - klasa reprezentująca prostokąt