로또예상번호

로또 935회 예상번호 python으로 추출하기

NeoAlchemist 2020. 10. 27. 03:14
728x90
반응형

youtu.be/rRo7spRUqWo

 

youtu.be/i5ko10eG5Pk

로또 삽질 시리즈~~

파이썬을 이용해서 확률 높은 로또번호를 추출하기 위해 노력중입니다.

3주째 하고 있는데 아직 실적이 좋지 않네요 ㅜㅜ

 

3.로또-935회(예상).xlsx
6.76MB

                                                      기존 3등당첨번호 비교로  리소스 사용량이 매우 큽니다.  ㅜㅜ

 

           

3.로또-935회(예상)-3등비교 제거.xlsx
4.66MB

                                                      3등 번호 비교기능 제거로 조금 가벼워진 파일 입니다.

1. 첫번째 추출 방법

import pandas as pd
import itertools
import random

allNum = list(range(1,46))   
#1~45까지의 리스트 생성

p=0
m=1
while p<50:
    arr = sorted(random.sample(allNum,12))  
    #45개볼중 12개 무작위로 선택
    #print(arr)
    a = list(itertools.combinations(arr,6))  
    #선택한 12개볼로의 모든 결과값 도출
    l = len(arr)
    k = len(a)
    #print(l,k)  #12개선택, 924가지 경우의 
    
    #반복문 시작 (12개 선택 후 아래 조건에 맞는 값만 출력하고 
    #다시 12개선택 조건에 맞는값만 출력 반복 총 3000개 게임 출력 (+알파 추가 출력됨)
    i=0
    j=1
    while i<k:        
        b=sorted(list(a[i]))
        sum=b[0]+b[1]+b[2]+b[3]+b[4]+b[5]
        if(b[0]<15 and b[5]>23): 
        #첫숫자가 15보다 작고, 마지막 숫자가 25보다 큰 경우
            if(sum>98 and sum<178): 
            # 6개의 숫자합이 118보다 크고 158보다 작은 경우(범위 조정)
             print(p,m,j,i+1,sum,b[0],b[1],b[2],b[3],b[4],b[5])
             m=m+1
             j=j+1
            if(m>3000):
              break 
        i=i+1  
    p=p+1


 

추출번호 엑셀파일 정리

 

총 3,000개의 번호를 추출한 후 과거 1,2,3등 결과와 비교.

기존 1등 당첨번호 1개, 기존 2등당첨번호 8개, 기존 3등 당첨번호 72개 포함됨

# 각 조건 설명

1) 첫자리 숫자는 15 이하의 값으로 선택하고 6번재 볼은 25보다 큰 볼을 선택

     (기존 당첨번호 출현 빈도표 참고 - 아래)

당첨번호 출현 빈도 정리표

 

2) 추출 번호 6개의 값은 98보다 크고 178보다 작은 결과만 선택

   (높은 빈도의 범위로 임의 지정하여 선택 - 아래 숫자합 분포 그래프 참고)

 

 

 

2. 두번째 추출방법

 

 첫번재 추출 방법의 조건 1),2) 동일하게 적용

3. 추출 번호의 1,2,3번째 수의 합과 4,5,6번째 수의 비 지정 추출 (1.4보다 크고 5.5보다 작은 결과 도출)

    - 아래 그래프 참고

 

import pandas as pd
import itertools
import random

#df = pd.read_csv("record-rotto.csv")

allNum = list(range(1,46))
a = list(itertools.combinations(allNum,6))

selNum = list(range(1,8145061))  
#로또 총 경우의 수 리스트생성 (8,145,060 가지)

s = random.sample(selNum,25000)  
#임의의 추출결과 25000개 추출

i = len(a)


#print(i)
#print(s)

j=0
k=1
while j<25000:
    b=sorted(list(a[s[j]]))
    sum=b[0]+b[1]+b[2]+b[3]+b[4]+b[5]
    subsum01 = b[0]+b[1]+b[2]
    subsum02 = b[3]+b[4]+b[5]
    sumRatio = subsum02/subsum01  
    #큰수 작은수 합의 비 
    if(b[0]<15 and b[5]>25): 
    #첫숫자가 15보다 작고, 마지막 숫자가 25보다 큰 경우
        if(sum>92 and sum<180): 
        # 6개의 숫자합이 92보다 크고 180보다 작은 경우
            if(sumRatio>1.4 and sumRatio<5.5):
                print(k,j,sum,b[0],b[1],b[2],b[3],b[4],b[5],s[j])
                k=k+1
                if(k>7000):
                 break
    j=j+1

 

두번째 추출 결과

 

기존 1등 당첨번호 1개, 2등 당첨번호 7개, 3등 당첨결과 134개 포함 총 7,000개의 결과

 

 

### 마지막으로 지금까지 당첨 결과 결과입니다.  ㅜㅜ

1,2,3 등 결과 도출 실패 ㅠㅠ 

매회 로직 추가 및 조건 조정으로 1등 당첨번호를 도출할 수 있도록 계속 삽질하겠습니다.

즐거운 하루 보내세요 ^^

 

728x90
반응형