ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

Generator LOTTO i różne statystyki

Napisane przez Igor Brzeżek on 15 czerwca 2026
Napisane w: Programowanie.

Contents
  1. Narzędzia do symulacji i analizy losowań liczbowych
  2. lottery.py – generator losowań bez powtórzeń
  3. Opcje wiersza poleceń
  4. Przykłady użycia
  5. lottery_stats.py – analiza statystyczna wyników losowań
  6. Przykłady użycia
  7. lottery_common.py – wyszukiwanie wspólnych liczb w plikach CSV
  8. Tryby działania
  9. Przykłady użycia
  10. lottery_compare.py – porównywanie pojedynczego losowania z zestawami typowań
  11. Zasada działania
  12. Ważniejsze opcje
  13. Przykłady użycia
  14. Podsumowanie

Narzędzia do symulacji i analizy losowań liczbowych

Lottery to zestaw programów napisanych w Pythonie, służących do generowania losowych liczb w stylu gier liczbowych (Lotto, Multi Multi itp.) oraz do analizy statystycznej wyników takich losowań. Projekty dostępne są na GitHubie pod adresem github.com/IgorBrzezek/lottery i obejmują cztery narzędzia: główny generator losowań (lottery.py) oraz trzy programy statystyczne (lottery_stats.py, lottery_common.py, lottery_compare.py).

Do działania generatora z opcją –rndauto wymagany jest dodatkowy plik trandom.py, dostępny w repozytorium github.com/IgorBrzezek/trandom – jest to zaawansowany generator prawdziwie losowych liczb wykorzystujący wiele źródeł entropii.

lottery.py – generator losowań bez powtórzeń

Główny program pakietu. Jego zadaniem jest losowanie określonej liczby liczb z zadanego zakresu, w rundach, bez powtórzeń – aż do wyczerpania puli. Po wyczerpaniu puli następuje uzupełnienie i jedna runda finalowa, po czym program kończy działanie. Mechanizm ten odwzorowuje działanie rzeczywistych gier liczbowych, gdzie każda wylosowana liczba znika z puli w danej turze.

Program obsługuje dwa źródła losowości: domyślny generator Pythona (Mersenne Twister) oraz zewnętrzny silnik trandom.py uruchamiany przełącznikiem –rndauto, który dostarcza losowość opartą na 7 źródłach entropii sprzętowo-systemowej (jitter procesora, timing dysku, adresy pamięci, szeregowanie wątków, timing sieciowy, liczniki wydajności, systemowy CSPRNG). Dodatkowo, za pomocą opcji –mouse, –keyboard i –sensors można wzbogacić losowość o entropię z ruchów myszy, naciśnięć klawiszy lub czujników sprzętowych (temperatura CPU, prędkość wentylatorów itp.).

Opcje wiersza poleceń

Program wymaga trzech obowiązkowych argumentów: -a FROM (początek zakresu), -b TO (koniec zakresu) i -n COUNT (ile liczb losować w jednej rundzie). Do tego dostępny jest bogaty zestaw opcji modyfikujących działanie:

-nn (–noneighbor) – zapobiega występowaniu liczb sąsiadujących (różniących się o 1) w pojedynczym losowaniu.
–minlen N – ustawia minimalną odległość między dowolnymi dwoma wylosowanymi liczbami.
–nei N,M – wymaga wystąpienia dokładnie N ciągów M kolejnych liczb (np. –nei 1,2 oznacza dokładnie jedną parę sąsiadujących liczb).
–series N – powtarza cały proces losowania (wyczerpanie puli) N razy. Między seriami drukowana jest linia separatora.
–fullpool – każde losowanie odbywa się z pełnego zakresu, bez usuwania liczb z puli. Opcja –series określa liczbę losowań (domyślnie 1).
-t N (–threads N) – dzieli pracę na N wątków równoległych (wymaga –series). Każdy wątek ma własny generator PRNG. Nie działa z –rndauto.
–color – włącza kolorowe wyjście ANSI: nowe liczby na biało, powtórki na czerwono.
–colorneighbor – podświetla sąsiadujące liczby na zielono.
–seriesentropy – ponownie zbiera entropię z czujników przy każdej nowej serii (wymaga –rndauto).
–numbering cont|ext – numerowanie rund: cont (ciągłe, domyślne) lub ext (ciągłe/numer serii).
-w FILENAME (–write) – zapisuje wyniki do pliku CSV (jedna runda na linię, przecinki; pusta linia między seriami).
–wcont – przy -w zapisuje CSV bez pustych linii między seriami.
–nodisplay – wycisza wyświetlanie na terminalu (wymaga -w).
–pb (–progressbar) – pokazuje pasek postępu na stderr (wymaga –nodisplay).
-in FILE (–infile) – odczytuje i wyświetla plik CSV utworzony wcześniej przez -w.
–debug – wyświetla w nawiasach kwadratowych pozostałą pulę liczb po każdej rundzie.

Przykłady użycia

Podstawowe losowanie 6 liczb z zakresu 1-49:

python lottery.py -a 1 -b 49 -n 6

Z zapobieganiem sąsiadującym liczbom:

python lottery.py -a 1 -b 49 -n 6 -nn

Z wymogiem dokładnie jednej pary sąsiadujących liczb (np. 5,6):

python lottery.py -a 1 -b 49 -n 6 --nei 1,2

Z minimalną odległością 3 między liczbami:

python lottery.py -a 1 -b 49 -n 6 --minlen 3

Z użyciem trandom.py i entropią z myszy:

python lottery.py -a 1 -b 49 -n 6 --rndauto --mouse

Trzy serie po pełnym cyklu puli:

python lottery.py -a 1 -b 49 -n 6 --series 3

Pięć niezależnych losowań z pełnej puli:

python lottery.py -a 1 -b 49 -n 6 --fullpool --series 5

Równoległe 100 serii na 4 wątkach:

python lottery.py -a 1 -b 49 -n 6 --series 100 --threads 4

Zapis do pliku CSV z kolorami na ekranie:

python lottery.py -a 1 -b 49 -n 6 --color -w wynik.csv --colorneighbor

lottery_stats.py – analiza statystyczna wyników losowań

Program do analizy statystycznej danych z losowań liczbowych, wczytanych z pliku CSV. Oblicza procentowy udział każdej liczby we wszystkich losowaniach i prezentuje wyniki w formie tekstowej lub histogramu poziomego.

Program obsługuje pięć trybów analizy, z których należy wybrać dokładnie jeden:

-num N[,M,…] – statystyka dla jednej lub kilku konkretnych liczb.
–auto – histogram dla wszystkich liczb 1-49.
–mostfreq N – ranking N najczęściej występujących liczb.
–neighbors – wyświetlenie wierszy, w których występują liczby sąsiadujące (podświetlane na zielono).
–neighborstats – statystyka par sąsiadujących liczb (1-2, 2-3, … 48-49), sortowana według wartości pary.

Format CSV (domyślny Lotto): numer losowania, data (DD.MM.RRRR), sześć liczb. Obsługiwany jest również format niestandardowy przez opcję –format cols z podaniem indeksów kolumn (liczonych od 1).

Ważniejsze opcje:

-in FILE – plik wejściowy CSV (wymagany).
-acc N – liczba miejsc po przecinku w procentach (domyślnie 2).
–color – kolorowe wyjście ANSI.
–nosort – oryginalna kolejność liczb (bez sortowania).
–datemin i –datemax – filtrowanie według zakresu dat (tylko w trybie lotto).

Przykłady użycia

Statystyki dla konkretnej liczby:

python lottery_stats.py -in lotto.csv -num 7

Histogram dla wszystkich liczb 1-49:

python lottery_stats.py -in lotto.csv --auto

10 najczęściej występujących liczb:

python lottery_stats.py -in lotto.csv --mostfreq 10

Wyświetlenie wierszy z liczbami sąsiadującymi – tylko od 2000 roku:

python lottery_stats.py -in lotto.csv --neighbors --color --datemin 01.01.2000

Statystyki par sąsiadujących:

python lottery_stats.py -in lotto.csv --neighborstats --color

Pobranie danych z niestandardowego pliku CSV (liczby w kolumnach 3-8):

python lottery_stats.py -in dane.csv --auto --format "cols 3,4,5,6,7,8"

lottery_common.py – wyszukiwanie wspólnych liczb w plikach CSV

Program do analizy danych z losowań, który umożliwia trzy tryby działania: porównywanie dwóch plików CSV w poszukiwaniu wspólnych liczb, wyszukiwanie konkretnych zestawów liczb, oraz analizę częstości występowania kombinacji (par, trójek, czwórek itd.).

Tryby działania

Tryb pierwszy: porównanie dwóch plików (opcja -ina i -inb). Każdy wiersz pliku A jest porównywany z każdym wierszem pliku B. Jeśli mają wspólne liczby, oba wiersze są wyświetlane obok siebie, a wspólne liczby są podświetlane na czerwono (z –color).

Tryb drugi: wyszukiwanie konkretnych liczb (–searchnumbers lub -sn). Można podać listę liczb oddzielonych przecinkami. Opcja –searchm all (domyślnie) wymaga, aby wszystkie podane liczby występowały w wierszu; –searchm one wyświetla wiersze zawierające przynajmniej jedną z podanych liczb.

Tryb trzeci: analiza częstości kombinacji (-sf N, –searchfreq N). Dla zadanej liczby N program znajduje i zlicza wszystkie unikalne kombinacje N liczb występujące w pliku B. Wyniki mogą być sortowane rosnąco (–sort asc) lub malejąco (–sort desc). Opcja –top N ogranicza liczbę wyświetlanych wyników.

Ważniejsze opcje wspólne:

-inb FILE – plik B (wymagany we wszystkich trybach).
–lotto – skrót dla –colsb 3,4,5,6,7,8 (kolumny z liczbami w standardzie Lotto).
–color – kolorowe podświetlanie pasujących liczb na czerwono.
–pause – zatrzymanie po każdej stronie (tylko Windows).
–from i –to – filtrowanie według roku (data w kolumnie 2 pliku B).
-t N – liczba wątków do równoległego przetwarzania (tryb porównania).
-w FILE – zapis wyniku do pliku.

Przykłady użycia

Najczęstsze pary w historii Lotto:

python lottery_common.py -inb lotto2.csv --lotto -sf 2 --sort desc --top 10

Najczęstsze trójki w latach 2020-2026:

python lottery_common.py -inb lotto2.csv --lotto -sf 3 --sort desc --top 10 --from 2020 --to 2026

Wyszukanie wszystkich losowań zawierających liczby 1, 17 i 38:

python lottery_common.py -inb lotto2.csv --lotto --color --searchnumbers 1,17,38 --searchm all

Porównanie dwóch plików z użyciem 4 wątków:

python lottery_common.py -ina wynik1000.csv -colsa 1,2,3 -inb lotto2.csv --lotto -t 4 --color

lottery_compare.py – porównywanie pojedynczego losowania z zestawami typowań

Program porównuje pojedynczy wiersz losowania (plik A) z wieloma wierszami typowań (plik B). Plik B może zawierać wiele zestawów typowań oddzielonych pustymi wierszami. Program wyświetla, które typy trafiły określoną liczbę liczb, z kolorowym oznaczeniem liczby trafień.

Zasada działania

Plik A zawiera jedno lub więcej losowań. Za pomocą –seta (domyślnie 1) wybiera się, który wiersz ma być wzorcem. Plik B zawiera wiersze typowań; pierwsza kolumna to identyfikator typowania, pozostałe to liczby. Puste wiersze oddzielają zestawy (sety). Opcja –setb wybiera zestawy do porównania – może to być lista numerów lub „all”.

Wynik porównania: obok siebie wyświetlane są liczby z losowania i liczby z typowania. Liczby zgodne z losowaniem są kolorowane. Liczba trafień ma odrębny kolor: 0 – szary, 1 – jasnobiały, 2 – żółty, 3 – zielony, 4 – cyjan, 5 – czerwony, 6 – niebieski.

Opcja –stat włącza statystyki trafień dla każdego zestawu. Jeśli porównujemy wiele zestawów, na końcu wyświetlane jest podsumowanie łączne dla wszystkich zestawów (Overall Hits).

Ważniejsze opcje

–seta N – wybór wiersza z pliku A do analizy (liczone od 1).
–setb all – porównanie ze wszystkimi zestawami z pliku B.
–stat – statystyki trafień dla każdego zestawu.
–mono – wyjście ASCII bez kolorów ANSI.
–rownumbers – wyświetlanie identyfikatorów typowań.
–summaryonly – pokazuje tylko łączne podsumowanie trafień.
–showdata – wyświetla pełne wiersze danych z pliku B z numerami linii.
–colsa i –colsb – wybór kolumn do dopasowywania z plików A i B.
–displcolsa i –displaycolsb – wybór kolumn do wyświetlania (nie wpływa na dopasowywanie).

Przykłady użycia

Podstawowe porównanie losowania z pierwszym zestawem typowań:

python lottery_compare.py -a lotto.csv -b moje.csv

Porównanie ze wszystkimi zestawami i statystykami:

python lottery_compare.py -a lotto.csv -b moje.csv --setb all --stat

Same łączne podsumowanie trafień (bez wyświetlania poszczególnych zestawów):

python lottery_compare.py -a lotto.csv -b moje.csv --setb all --summaryonly

Porównanie z użyciem określonych kolumn w obu plikach (kolumny 3-8 z A i 2-7 z B):

python lottery_compare.py -a result1000_a.csv -b result1000_b.csv --colsa 3-8 --colsb 2-7

Wyświetlenie numerów typowań i zestawów z kolorowymi separatorami:

python lottery_compare.py -a lotto.csv -b moje.csv --setb all --rownumbers --ppcolor

Podsumowanie

Pakiet Lottery to kompletne rozwiązanie dla każdego, kto interesuje się symulacją gier liczbowych lub analizą statystyczną wyników losowań. Generator lottery.py oferuje zaawansowane mechanizmy losowania, w tym różne źródła prawdziwej losowości dzięki integracji z trandom.py, ograniczenia na odległości między liczbami i wsparcie dla równoległego przetwarzania na wielu wątkach. Programy statystyczne (lottery_stats.py, lottery_common.py, lottery_compare.py) pozwalają na dogłębną analizę danych – od prostych statystyk częstości, przez wyszukiwanie kombinacji i porównywanie zestawów, po szczegółowe raporty trafień typowań. Wszystkie programy obsługują kolorowe wyjście ANSI, co znacznie ułatwia interpretację wyników w terminalu. Źródła są w pełni dostępne na GitHubie na licencji MIT, gotowe do użycia i modyfikacji.

Źródła: github.com/IgorBrzezek/lottery

Nawigacja

← nanogen – generowanie obrazów za pomocą NanoBanana ale przez WWW
Generator liczb (prawie) losowych – trandom.py →
  • Szukaj

  • Kategorie

    • IT ogólnie (158)
      • AI (1)
      • Bezpieczeństwo (20)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (47)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Monitorowanie sieci (3)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (5)
        • Tunelowanie ruchu (6)
          • Tunele GRE (2)
          • Tunele SSH (4)
        • WLAN / WiFi (7)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Opencode – darmowe kredyty
    • Tunel SSH – zwrotny (remote forwading)
    • GNS3 – Interfejsy sieciowe
    • GNS3 – Konfiguracja urządzenia IOU (L2/L3)
    • Tunel GRE + EoIP na Cisco
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y

Powered by
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by