Fordern Sie LOTO 6 mit Python ohne Disziplin heraus

Vorwort

Nun, ich weiß, dass es bereits analysiert wurde und ich nicht zu einem besonders bemerkenswerten Ergebnis gekommen bin. Wenn ich Python studiere, werde ich es trotzdem versuchen.

Entwicklungsumgebung

Erfassung früherer Daten

Ich kann nicht manuell kopieren und einfügen, also habe ich beschlossen, es zu kratzen. Die letzten Daten von heute (20.10.09) sind die 1524.

In LOTO6 werden 6 reelle Zahlen und 1 Bonuszahl gezogen, aber diesmal spielen wir nur mit dieser Zahl. Die gezogenen Zahlen sind 1-43 und werden nicht dupliziert.

scloto6.py


import requests
from bs4 import BeautifulSoup

r = requests.get('http://hogehoge.com/loto6/data/list1/')
soup = BeautifulSoup(r.content, "html.parser")
numbers = soup.find_all('td', class_='w4')

i = 1
with open('index.txt','w') as f:
    for number in numbers:
        s = number.text.replace('\t', '')
        s = s.replace('\n', '')

        if len(s) == 1:
            s = '0' + s
        if (i % 6) != 0:
            s = s + '\t'
        else:
            s = s + '\n'
        f.write(s)
        i += 1

Eine durch TAB getrennte Textdatei wie diese wird generiert.

index.txt


02 08 10 13 27 30
01 09 16 20 21 43
01 05 15 31 36 38
16 18 26 27 34 40
09 15 21 23 27 28

Mit dieser als Eingabedatei wird die folgende Verarbeitung durchgeführt.

--Berechnen Sie σ aus der Summe jedes Mal --Zählen Sie die Anzahl der Vorkommen jeder Zahl (1..43) und sortieren Sie sie in absteigender Reihenfolge ――Ich werde 5 Einheiten kaufen ――Zwei der sechs Zahlen für eine Einheit werden aus den Top-10-Auftritten ausgewählt.

Da der Durchschnitt der Gesamtzahl jedes Mal bis zum 1524. Mal 131,94 beträgt und σ 28,37 beträgt, liegt -σ bis σ im Bereich von 103,57 bis 160,31.

Die Anzahl der Daten Prozentsatz
-σ~σ 1,042 68.37%
-2σ~2σ 407 95.08%
-3σ~3σ 73 99.87%

Mit anderen Worten, die Wahrscheinlichkeit, dass der Gesamtwert der 6 Zahlen zwischen 104 und 160 liegt, beträgt ungefähr 2/3. Die Lotterieergebnisse wie [1, 2, 3, 4, 5, 6] sind insgesamt 21 und weichen von 3σ ab, sodass Sie sie fast ignorieren können (≒ geben Sie auf, wenn dies passiert).

pyloto6.py


import math
import random
import numpy as np

appearance_count = {}       #Anzahl der Vorkommen jeder Anzahl

for i in range(44):
    appearance_count[i] = 0

sums = []       #Array von Gesamtwerten jedes Mal

with open('C:\\Python\\scloto6\\index.txt', 'r') as f:
    lines = f.readlines()
    for line in lines:
        array = line.split('\t')
        array_n = list(map(int, array))     #Da Array ein str-Array ist, konvertieren Sie es in ein int-Array
        sums.append(sum(array_n))

        for i in array_n:
           appearance_count[i] = appearance_count[i] + 1

#Sortieren Sie in absteigender Reihenfolge nach der Anzahl der Vorkommen
sorted_appearance_count = sorted(appearance_count.items(), key=lambda x:x[1], reverse=True)

avg = sum(sums) / len(sums)
print(f"AVG:{avg}")

sigma = np.std(sums)        #Standardabweichung der Summen
sigmalower = avg - sigma
sigmaupper = avg + sigma
print(f"σ:{sigma}({sigmalower}~{sigmaupper})")

for index in [0, 2, 4, 6, 8]:
    while True:
        a = []

        a.append(sorted_appearance_count[index][0])
        a.append(sorted_appearance_count[index + 1][0])

        #Die restlichen 4 sind zufällig(Mit anderen Worten, es gibt keine Grundlage für die Abholung)
        while len(a) < 6:
            no = random.randint(10, 32)
            value = sorted_appearance_count[no][0]
            if not value in a:
                a.append(value)

        asum = sum(a)

        if sigmalower <= asum and asum <= sigmaupper:
            #Die Summe der 6 abgeholten Nummern ist-Angenommen im Bereich von σ bis σ
            break

    print(f"{asum}{a}")

Die Ausgabe sieht so aus.

Ausführungsergebnis


AVG:131.93635170603673
σ:28.37024181798044(103.56610988805629~160.30659352401716)
123[6, 38, 22, 26, 11, 20]
128[10, 27, 39, 21, 26, 5]
108[37, 12, 2, 16, 21, 20]
126[24, 15, 39, 35, 5, 8]
129[19, 43, 25, 3, 23, 16]

Nachwort

Da es 200 Yen pro Einheit sind, sind es 1000 Yen für 5 Einheiten, also habe ich es auf 5 Einheiten eingestellt, aber ich habe das Gefühl, dass ich gelesen habe, dass 3 Einheiten irgendwo das Beste für LOTO 6 sind (ich habe die Basis vergessen ...)

Selbst wenn Sie die Erscheinungsnummern 1524 Mal visualisieren, können Sie keine Tendenz erkennen, sodass die Lotteriemethode für physische Maschinen möglicherweise keine Strategie hat. Wenn ja, ist es seit 20 Jahren so, also scheinen die Vorfahren es bereits entdeckt zu haben. Die Lotterietage sind zweimal im Monat und Donnerstag!

Recommended Posts

Fordern Sie LOTO 6 mit Python ohne Disziplin heraus
Drucken Sie mit python3 ohne Unterbrechungen
Herausforderung Problem 5 mit Python: Lambda ... Ich habe mich entschieden, ohne zu kopieren
FizzBuzz in Python3
Scraping mit Python
[Python] Fordere 100 Schläge heraus! (015 ~ 019)
Statistik mit Python
Scraping mit Python
Python mit Go
[Python] Fordere 100 Schläge heraus! (030-034)
[Python] Fordere 100 Schläge heraus! (006-009)
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
[Python] Fordere 100 Schläge heraus! (000-005)
AES256 mit Python
Getestet mit Python
[Python] Fordere 100 Schläge heraus! (010-014)
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
[Python] Fordere 100 Schläge heraus! (025-029)
Python-Challenge-Tagebuch ①
Excel mit Python
Mikrocomputer mit Python
[Python] Fordere 100 Schläge heraus! (020-024)
Mit Python besetzen
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Python-Anfänger fordern Cpaw CTF Q14 mit Blasensortierung heraus
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
[Kleine Geschichte] Mit Python ohne Multithreading synchronisieren (eingeschränkte Verwendung)
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Scraping mit Python + PhantomJS
Tweets mit Python posten
Fahren Sie WebDriver mit Python
Verwenden Sie Mecab mit Python 3