Dodaj wpis w tym temacie
Spis tematów | Strona: 1 Wyślij wiadomość do admina |
Przewiń wpisy ↓ | [Program MultiFinder] Czym i jak warto grać? (moderator tematu: unhappy) |
2013-05-14 (17:54)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 637 636 [ CZCIONKA MONOSPACE ] Ci, którzy śledzili ten wątek: http://forum.multipasko.pl/n_viewtopic.php?id=4090 wiedzą, że chcąc pomóc Didzie napisałem prosty program do hurtowej analizy zestawów liczb. Ponieważ program ten troszkę rozwinąłem, przedstawię tutaj jego wersję 2.0 (cały czas beta). Dalszych prac nad programem w najbliższej przyszłości nie przewiduję (poza bieżącą poprawą zgłoszonych błędów i ewentualną poprawą wydajności - program był tworzony bardzo ad hoc i na obecnym etapie sam widzę, że warto by go trochę zoptymalizować)... Podobnie jak MultiLiner: http://forum.multipasko.pl/n_viewtopic.php?id=4112 nie będzie on dostępny publicznie do ściągnięcia. Zainteresowanym wysyłam go e-mailem... Wystarczy napisać (mój e-mail w profilu)... GUI wygląda tak: ![]() Co program robi? Generalnie można go wykorzystać do czterech różnych (ale wzajemnie powiązanych) celów: 1) generowania SYSTEMÓW (od 3 do 20 liczb, od 1 do 1000 wierszy w systemie) - ta opcja nie wymaga podawania żadnych plików na wejściu, 2) generowania informacji o ZBIORACH CZĘSTYCH o rozmiarze od 1 (pewniaki) do 5 (piątki) na podstawie danych historycznych (wymaga podania tylko drugiego pliku - bazy losowań, jednorazowo do maks. 2500), 3) TESTOWANIA wygenerowanych systemów na historycznych wynikach gier (wygenerowane systemy zapisywane są od razu w formacie zgodnym z wymogami programu dla pierwszego pliku), 4) testowania DOWOLNYCH zestawów liczb (maks. 100 zestawów w rozpisie na maks. 10 liczb) na wynikach historycznych... W szczególności można połączyć wszystkie te kroki w logiczną całość... W następnych postach postaram się zamieścić ilustrowane przypadki użycia tak, by wszystko stało się jasne... Ogólnie idea jest taka, że MultiFinder prezentuje podejście "od ogółu do szczegółu", czyli z masy kombinacji pozwala wybrać i przetestować "optymalne" (wg przyjętego, jakiegoś, kryterium), zaś MultiLiner odwrotnie - "od szczegółu do ogółu" (tworzymy tam zestawy poprzez obserwację zachowania i "sklejenie" pojedynczych liczb). Osoby, które "zamówiły" pierwszą wersję MultiFindera, otrzymają automatycznie obecną aktualizację... Pozostałych zapraszam do pisania e-maili... ![]() |
2013-05-15 (05:26)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 637 816 [ CZCIONKA MONOSPACE ] Ok, pierwszy, najprostszy, przypadek użycia, to wykorzystanie programu w charakterze generatora systemów... W tym celu zaznaczamy flagę "Analiza wstępna" i klikamy w "Zestawy...". Okno główne zostaje zminimalizowane, natomiast na ekranie pojawia się okienko, w którym musimy podać tylko dwie rzeczy: 1) zestaw liczb, który chcemy rozbić na zakłady wg jakiegoś systemu, 2) system numerycznie (w postaci takiej jak na stronie http://www.ccrwest.org). Przykładowo dla 10 liczb do Mini Lotto oraz systemu http://www.ccrwest.org/cover/t_pages/t3/k5/C_11_5_3.html mamy: ![]() Liczby powinny być (teoretycznie) oddzielane wybranym (lub domyślnym) separatorem, ale tak naprawdę mogą być oddzielone czymkolwiek... nawet literami (choć to cecha tzw. nieudokumentowana ![]() Po kliknięciu "Generuj" otrzymujemy: ![]() Wygenerowany zestaw możemy skopiować do schowka lub zapisać do pliku (przycisk "Zapisz..."). Ograniczenia: - liczby całkowite ze zbioru od 1 do 80 (próba wpisania np. 1,5 czy 1.5 skończy się uznaniem tego za dwie liczby: 1 i 5) - od 3 do 20 liczb - liczba wierszy w systemie od 1 do 1000 Program sprawdza, czy powyższe warunki (i parę innych) są spełnione i wyświetla komunikaty na pasku statusu u dołu okienka... Wieczorem opiszę, o co chodzi z tymi zbiorami częstymi... Tym, którzy programu jeszcze nie otrzymali, wyślę go wieczorem... PS Przetłumaczyłem wszystkie elementy standardowych okien systemowych, tak że teraz wszystko jest po polsku... |
2013-05-16 (06:38)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 638 178 [ CZCIONKA MONOSPACE ] Dziś o drugim zastosowaniu programu, czyli znajdowaniu zbiorów częstych. Zbiór częsty to nic innego jak kombinacja k liczb, występująca w podanym zbiorze wyników co najmniej zadaną (minimalną) liczbę razy. W programie ustaliłem te parametry tak, by k nie przekraczało 5 (tzn. znajdziemy co najwyżej piątki), a minimalna liczba wystąpień została skalibrowana tak, by najwięcej wyciągnąć z najmniejszych baz wyników, nawet kosztem nieco dłuższego czasu analizy (czyli np. w bazie 250 wyników Multi Multi możemy znaleźć więcej niż w bazie 5000 wyników, dlatego tę pierwszą możemy nawet przeszukiwać nieco dłużej)... Szczegóły dalej... Jak przeprowadzamy analizę? Zaznaczamy flagę "Analiza wstępna", podajemy plik z wynikami losowań (od 100 do 5000 wierszy z danymi plus wiersz nagłówkowy - zwiększyłem limit z 2500), walidujemy i klikamy przycisk... W rezultacie otrzymujemy np. takie informacje: ![]() Mamy tu kolejno: - do 10 zbiorów częstych składających się z od 1 do 5 liczb wraz z informacją o liczbie wystąpień (uporządkowane od najczęstszych); - zestawy do 15 liczb "rekomendowanych", wyznaczonych na podstawie najczęstszych zbiorów o danej liczebności (uporządkowane rosnąco). Przykładowo widzimy, że: - w podanym pliku piątka 19;42;58;66;78 wystąpiła 5 razy (plik zawiera 150 wyników, co widać w podsumowaniu walidacji (na rysunku niewidoczne)), - najczęściej występujące w piątkach 15 liczb to: 9;19;21;27;33;35;42;45;47;58;65;66;69;76;78 Jak napisałem wyżej, im zbiór mniejszy, tym dokładniej go przeszukujemy (dotyczy to zwłaszcza wyników Multi Multi i Keno; Lotto i Mini Lotto traktowane są ulgowo). Polecam stosować pliki nie większe niż 250-500, 500-1000 wyników losowań (dla Lotto i Mini Lotto do 5000). Tego typu analizy zawsze są czasochłonne, dlatego jeśli wyszukiwanie może trwać dłużej niż minutę, wyświetlam ostrzeżenie (przewiduję tylko dwa takie ostrzeżenia - sam nie lubię wyskakujących okienek, więc w programie ograniczyłem ich liczbę do minimum; reszta komunikatów wyświetlana jest na pasku statusu u dołu okna). Jednak ZAWSZE trzeba mieć na względzie to, że analiza chwilę potrwa... I choć jednocześnie można przejrzeć aż 5000 wyników, proponuję robić to z umiarem... W następnym poście wkleję przykładowe czasy trwania wyszukiwania takich zbiorów częstych dla różnych plików (mogą służyć za punkt odniesienia do oszacowania czasów analizy na Waszych komputerach - pliki, których dotyczą, dołączam do programu). A w następnym odcinku o tym, co z tymi zbiorami można dalej zrobić w programie... |
2013-05-16 (06:46)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 638 180 [ CZCIONKA MONOSPACE ] Dla każdego pliku testowego wykonywałem pomiar trzykrotnie... Niestety nie w warunkach "laboratoryjnych" (w czasie trwania analizy robiłem inne rzeczy), ale - jak widać - czasy te są mniej więcej stałe... Wykorzystanie pamięci pokazuję tylko jako ciekawostkę - sami tego raczej nie zmierzycie (Menedżer zadań zawsze będzie pokazywał wyższe zużycie)... Im lepsze macie maszyny, tym generalnie analiza powinna trwać krócej (choć zużycie procesora (chwilowe) i tak nie przekraczało w szczycie 30 paru procent). >>>>> test_zbiory_g.csv Liczba wierszy: 150 Liczba kolumn: 20 Największa wartość: 80 Maks. wykorzystanie pamięci: 12,388 MB Czas wykonania: 19,561 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 12,972 MB Czas wykonania: 18,820 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 13,126 MB Czas wykonania: 18,737 s Znaleziono zbiory o liczebności: 5 >>>>> test_zbiory_f.csv Liczba wierszy: 500 Liczba kolumn: 20 Największa wartość: 80 Maks. wykorzystanie pamięci: 55,813 MB Czas wykonania: 144,309 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 52,135 MB Czas wykonania: 143,308 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 60,272 MB Czas wykonania: 130,611 s Znaleziono zbiory o liczebności: 5 >>>>> test_zbiory_e.csv Liczba wierszy: 5000 Liczba kolumn: 6 Największa wartość: 49 Maks. wykorzystanie pamięci: 14,969 MB Czas wykonania: 48,524 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 15,329 MB Czas wykonania: 46,781 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 15,443 MB Czas wykonania: 41,989 s Znaleziono zbiory o liczebności: 5 >>>>> test_zbiory_d.csv Liczba wierszy: 2500 Liczba kolumn: 5 Największa wartość: 49 Maks. wykorzystanie pamięci: 9,560 MB Czas wykonania: 15,425 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 9,675 MB Czas wykonania: 17,194 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 9,428 MB Czas wykonania: 15,871 s Znaleziono zbiory o liczebności: 5 >>>>> test_zbiory_c.csv Liczba wierszy: 5000 Liczba kolumn: 20 Największa wartość: 80 Maks. wykorzystanie pamięci: 10,438 MB Czas wykonania: 52,505 s Znaleziono zbiory o liczebności: 3 Maks. wykorzystanie pamięci: 9,112 MB Czas wykonania: 51,736 s Znaleziono zbiory o liczebności: 3 Maks. wykorzystanie pamięci: 9,219 MB Czas wykonania: 48,025 s Znaleziono zbiory o liczebności: 3 >>>>> test_zbiory_b.csv Liczba wierszy: 1600 Liczba kolumn: 20 Największa wartość: 70 Maks. wykorzystanie pamięci: 54,788 MB Czas wykonania: 158,752 s Znaleziono zbiory o liczebności: 4 Maks. wykorzystanie pamięci: 54,010 MB Czas wykonania: 121,453 s Znaleziono zbiory o liczebności: 4 Maks. wykorzystanie pamięci: 56,258 MB Czas wykonania: 116,905 s Znaleziono zbiory o liczebności: 4 >>>>> test_zbiory_a.csv Liczba wierszy: 1000 Liczba kolumn: 20 Największa wartość: 70 Maks. wykorzystanie pamięci: 59,559 MB Czas wykonania: 228,810 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 59,153 MB Czas wykonania: 190,361 s Znaleziono zbiory o liczebności: 5 Maks. wykorzystanie pamięci: 59,084 MB Czas wykonania: 187,698 s Znaleziono zbiory o liczebności: 5 |
2013-05-19 (21:18)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 639 428 [ CZCIONKA MONOSPACE ] Dziś o funkcji wyszukiwania podzbiorów... No bo tak: znaleźliśmy najczęściej występujące piątki, czwórki itd. Co możemy z nimi jeszcze zrobić? Możemy wyszukać wszystkie wystąpienia podzbiorów zestawów o różnej długości (maks. 10). Weźmy piątki... Tworzymy plik wejściowy z 10 znalezionymi piątkami w formacie wymaganym przez program, czyli: id;v1;v2;v3;v4;v5 1;19;42;58;66;78 2;9;19;58;66;78 3;19;27;58;66;78 4;19;27;47;65;69 5;2;29;46;55;67 6;9;16;41;44;78 7;18;27;49;53;72 8;2;11;39;58;80 9;6;26;27;40;47 10;27;42;58;66;78 Podajemy ścieżkę dostępu do utworzonego pliku oraz pliku z wynikami losowań, które chcemy przeszukać (maks. 5000 wyników losowań). Wybieramy separator (jeden z trzech dostępnych, najczęściej będzie to średnik, bo tak zapisuje Excel pliki CSV dla polskich ustawień regionalnych, ale równie dobrze możemy go sami zamienić na przecinek lub kropkę - ważne by w obu plikach stosować ten sam separator) i klikamy przycisk "Waliduj". Po poprawnej walidacji obu plików otrzymamy stosowny komunikat, po czym aktywują się opcje wyszukiwania: ![]() Jeśli chcemy znaleźć wystąpienia wszystkich piątek, na kontrolce "Ilość liczb" ustawiamy "5" i klikamy "Szukaj". W efekcie otrzymujemy: ![]() Procedurę wyszukiwania możemy powtórzyć dla innych podzbiorów. Dowiemy się wtedy np. tego, w których losowaniach nasze piątki dały 4/5, 3/5 itd. Wystarczy na kontrolce ustawić 4, 3 itd. i za każdym razem kliknąć "Szukaj". Wyniki podawane są w dwóch układach: tabelarycznym (jak wyżej) lub wierszowym. W układzie wierszowym powyższy wynik będzie wyglądał tak: ![]() Wszystko, co znajduje się w obszarze roboczym możemy swobodnie edytować (kopiować, wklejać, wycinać, dopisywać, usuwać itp.) i zapisywać do pliku (przycisk "Zapisz..."), np. w celu archiwizacji. Oczywiście w ten sam sposób możemy wyszukiwać podzbiory stworzone z dowolnych zestawów (np. naszych własnych) albo... testować systemy. Rozpisujemy np. 15 znalezionych ("rekomendowanych") liczb na zestawy maks. 10-liczbowe korzystając z wbudowanego generatora zestawów (patrz wyżej pierwszy przypadek użycia) i sprawdzamy, jak dany system sprawdzał się dla tych liczb w przeszłości... By bardziej świadomie z systemów korzystać ![]() Możemy też np. wziąć "gorące dziesiątki" z sąsiedniego wątku i sprawdzić, jak się sprawowały w przeszłości (niestety z jednorazowym ograniczeniem na 5000 losowań - ze względów wydajnościowych). Itp., itd. ![]() A w ramach bonusu proponuję zestaw szczegółowych informacji o "gorących dziesiątkach" wg stanu z losowania o 14.00... Kiedy wystąpiły, kiedy dawały 9/10, 8/10 i 7/10... Owocnej analizy ![]() http://przeklej.net/file_details/94446.html W kolejnym odcinku wyjaśnię, co daje flaga "Pomiń podzbiory" i co się stanie, gdy ją odznaczymy... |
2013-05-21 (10:31)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 639 856 [ CZCIONKA MONOSPACE ] Dziś - zgodnie z zapowiedzią - o opcji pomijania podzbiorów... MultiFinder z założenia wyszukuje WSZYSTKIE podzbiory o danej liczebności ("Ilość liczb") dla wprowadzonych w pliku A zestawów. Jednak jak wiadomo, z każdego zbioru o liczebności n da się ułożyć pewną ilość zbiorów o liczebności k (k<n). W szczególności, jeśli k = n-1 mamy: ![]() Oznacza to, że np. z każdego zbioru 10-elementowego da się ułożyć 10 zbiorów 9-elementowych, z każdego 7-elementowego da się ułożyć 7 zbiorów 6-elementowych itd. Gdybyśmy więc wyszukiwali WSZYSTKIE podzbiory dla danego zestawu, w wynikach pojawiałyby się nie tylko jego wystąpienia, ale i WSZYSTKIE wystąpienia jego podzbiorów, także te, których zgodnie z powyższą zasadą się spodziewamy i o których istnieniu wiemy... Zaznaczenie opcji "Pomiń podzbiory" pomaga właśnie pominąć tak utworzone podzbiory o liczebności k = n-1, czyli o 1 mniej liczne. PRZYKŁAD Wykorzystujemy pliki: test_szukaj_a i test_szukaj_b... Z opcją "Pomiń podzbiory" otrzymujemy taki wynik wyszukiwania od 10 do 6 liczb: ![]() Jeśli zaś opcję tę odznaczymy, otrzymamy coś takiego: ![]() Jak widzimy, oprócz czterech poprzednich szóstek, w wynikach pojawiły się jeszcze te szóstki, które da się ułożyć ze znalezionych WCZEŚNIEJ siódemek. Podkreśliłem słowo WCZEŚNIEJ, bowiem jeśli szukamy PODZBIORÓW, program musi wiedzieć, że istnieją jakieś NADZBIORY. By nie wykonywać zbędnych przebiegów, zaprojektowałem tę funkcję tak, że zadziała poprawnie tylko wtedy, gdy będziemy przeprowadzali wyszukiwanie z góry na dół, czyli od zbiorów większych do mniejszych (np. od 10-elementowych w dół do 6-elementowych). Przy zaznaczeniu opcji "Pomiń podzbiory" w obszarze roboczym wyświetla się uwaga przypominająca, by zachować porządek analizy "z góry na dół". Jeśli pominiemy jakiś poziom, np. po 5-elementowych przejdziemy od razu na podzbiory 3-elementowe, po prostu w obszarze roboczym otrzymamy WSZYSTKIE zbiory 3-elementowe zbudowane ze zbiorów 4-elementowych, które kiedykolwiek wystąpiły w wynikach. NIC więc nie tracimy, najwyżej otrzymamy (nieco) więcej wyników (jeśli chcielibyśmy się z tego wycofać najmniejszym kosztem, wystarczyłoby usunąć z obszaru roboczego wyniki dla zbiorów 3- i 4-elementowych i przeprowadzić analizę dla tych poziomów ponownie (najpierw 4-elementowe, potem 3-elementowe, tzn. z góry na dół) - wtedy program "zapisze" sobie w pamięci zbiory 4-elementowe i nie wyświetli ich 3-elementowych podzbiorów). Tak samo będzie wtedy, gdy rozpoczniemy analizę od zbyt niskiego poziomu... Np. gdybyśmy w powyższym przykładzie nie wyszukiwali podzbiorów 7-elementowych, a zaczęli od razu od 6-elementowych, dostalibyśmy dla nich wyniki takie jak na drugim rysunku, POMIMO zaznaczenia flagi "Pomiń podzbiory" (bo program nic nie wie, że wcześniej dało się znaleźć w wynikach jeszcze siódemki). Takie n-krotne wyświetlenie wyniku dla różnych podzbiorów (n-1)-elementowych jest sygnałem tego, że powinniśmy zacząć od wyszukania wystąpień (co najmniej) podzbiorów (n+1)-elementowych. Bufor, w którym program zapamiętuje nadzbiory, czyszczony jest w trzech przypadkach: - wyczyszczenia obszaru roboczego (przycisk "Wyczyść") - gdybym nie czyścił bufora, mogłoby to prowadzić do nieporozumień (nadzbiorów nie mamy już na ekranie, a podzbiory są "niepełne"), - zmiany stanu flagi "Pomiń podzbiory" - to chyba oczywiste, - walidacji plików (przycisk "Waliduj") - domyślnie powinniśmy ją wykonywać tylko wtedy, gdy wczytujemy nowy plik, więc jasne jest, że musimy wtedy wyzerować całą pamięć. Z której opcji będziecie korzystać, zależy od tego, czego w wynikach szukacie. Jeśli interesują Was tylko wystąpienia różnych podzbiorów w wynikach, zaznaczycie flagę "Pomiń podzbiory". Jeśli zaś interesują Was wystąpienia WSZYSTKICH podzbiorów (np. wszystkie szóstki, bez względu na to, czy dało się z nich utworzyć siódemkę, czy nie), flagę tę odznaczycie. Gdybyście mieli jakieś pytania, piszcie e-maile... |
2013-05-21 (10:35)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 639 858 [ CZCIONKA MONOSPACE ] Sorry, pospieszyłem się trochę z tymi ramkami ![]() ![]() |
2013-05-24 (21:23)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 641 036 [ CZCIONKA MONOSPACE ] Po poprzednim mocno teoretycznym wpisie, proponuję praktyczny przykład zastosowania MultiFindera do gry w Mini Lotto na 6 zakładów rozpisanych wg tego systemu: http://www.ccrwest.org/cover/t_pages/t2/k5/C_10_5_2.html Załóżmy, że po losowaniu nr 7250 (to najwcześniejsze losowanie, jakie mogę wziąć pod uwagę, ponieważ próba testowa musi liczyć min. 100 wierszy) gracz wyszukał najczęściej występujące liczby w 150 ostatnich losowaniach, co odpowiada mniej więcej okresowi 1 roku): ![]() Następnie przygotował sobie zestaw 6 zakładów przy wykorzystaniu wbudowanego generatora zestawów i grał nimi przez kolejne 100 losowań. Łącznie wysłał więc 600 zakładów, licząc na ok. 5 "trójek". Tymczasem, jak pokazuje poniższy rysunek, trafił trójkę 9 razy: ![]() Czy to dobry rezultat? Biorąc pod uwagę, że o stopie zwrotu w Mini Lotto decyduje W PRAKTYCE ilość trójek, myślę, że tak. Czy mógłby być jeszcze lepszy? Pewnie tak ![]() |
2013-06-19 (21:27)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 651 532 [ CZCIONKA MONOSPACE ] W komplecie z MultiFinderem wysyłam programik do zarządzania wynikami losowań i generowania plików wejściowych: http://forum.multipasko.pl/n_viewtopic.php?id=4159 |
2013-06-23 (23:26)![]() Data rejestracji: 2013-01-22 Ilość postów: 359 ![]() | wpis nr 653 201 [ CZCIONKA MONOSPACE ] Instrukcja dla nowych użytkowników, którzy nie wiedzą co i jak: http://przeklej.net/file_details/107259.html Starałem się pisać językiem jak najbardziej przystępnym... Mam nadzieję, że rozwieje wszystkie wątpliwości... |
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lotto | Strona: 1 Wyślij wiadomość do admina |