Eh bien, je sais que cela a déjà été analysé et je ne suis pas parvenu à une conclusion particulièrement remarquable. Pourtant, si j'étudie Python, je vais essayer.
Je ne peux pas faire de copier-coller manuel, j'ai donc décidé de le gratter. Les dernières données à ce jour (20/10/09) sont les 1524.
Dans LOTO6, 6 nombres réels et 1 numéro bonus seront tirés, mais cette fois nous ne jouerons qu'avec ce numéro. Les numéros tirés seront 1-43 et ne seront pas dupliqués.
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
Un fichier texte délimité par TAB comme celui-ci sera généré.
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
En l'utilisant comme fichier d'entrée, le traitement suivant est effectué.
--Calculer σ à partir de la somme de chaque temps
Puisque la moyenne du total de chaque fois jusqu'au 1524e temps est de 131,94 et que σ est de 28,37, -σ à σ est compris entre 103,57 et 160,31.
Le nombre de données | Pourcentage | |
---|---|---|
-σ~σ | 1,042 | 68.37% |
-2σ~2σ | 407 | 95.08% |
-3σ~3σ | 73 | 99.87% |
En d'autres termes, la probabilité que la valeur totale des 6 nombres se situe entre 104 et 160 est d'environ 2/3. Les résultats de loterie tels que [1, 2, 3, 4, 5, 6] sont 21 au total et s'écartent de 3σ, vous pouvez donc presque les ignorer (≒ abandonner si cela se produit).
pyloto6.py
import math
import random
import numpy as np
appearance_count = {} #Nombre d'occurrences de chaque numéro
for i in range(44):
appearance_count[i] = 0
sums = [] #Tableau de valeurs totales à chaque fois
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)) #Puisque tableau est un tableau str, convertissez-le en tableau int
sums.append(sum(array_n))
for i in array_n:
appearance_count[i] = appearance_count[i] + 1
#Trier par ordre décroissant en fonction du nombre d'occurrences
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) #écart-type des sommes
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])
#Les 4 autres sont aléatoires(En d'autres termes, il n'y a aucune base pour le ramassage)
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:
#Le total des 6 numéros ramassés est-Adopté dans la gamme de σ à σ
break
print(f"{asum}{a}")
La sortie ressemble à ceci.
Résultat d'exécution
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]
Puisqu'il est de 200 yens par unité, c'est 1000 yens pour 5 unités, donc je l'ai réglé à 5 unités, mais j'ai l'impression d'avoir lu que 3 unités sont les meilleures pour LOTO 6 quelque part (j'ai oublié la base ...)
Même si vous visualisez les numéros d'apparence 1524 fois, vous ne pouvez voir aucune tendance, de sorte que la méthode de loterie par machine physique peut ne pas avoir de stratégie. Si c'est le cas, cela fait 20 ans, il semble donc que les ancêtres l'aient déjà découvert. Les jours de loterie sont deux fois par mois et le jeudi!
Recommended Posts