반응형
자, 경우의 수는 모두 입력했다.

이제부터 할일은 814만건 중에서 당첨확률이 낮아 보이는 숫자를 선별하는 일이다.

기존에 로또 분석사례를 보니 당첨숫자 빈도수를 점검하는 방식으로 진행되는 것 같더라.

내가 사용할 방법은 기존에 당첨된 번호와 기당첨번호와 매우 유사한 숫자등을 선별하여

814만건의 데이터에서 추려내는 것 이다.

사실... 이 발상에도 한계는 있다. 말이 선별이지 선별의 기준도 좀 모호하고...

아무리 선별한다고 하여도 로또의 확률은 매회 1/814만 이기때문이다.

단지 편의상 기존에 당첨됐던 번호와 그 유사한 번호를 제외하는 방법을 사용했을 뿐이지...

아무튼 기당첨 번호 355건을 입력했고 그와 유사한 5자리의 번호를 체크했더니

(예를 들어 당첨번호가 1,2,3,4,5,6 이라면 1,2,3,4,5가 들어가는 모든 수 1,3,4,5,6이 들어가는 모든 수들)

대략 4만건정도가 쌓인다. 4자리 유사한 숫자와 기타 몇가지 특징이있는 숫자들을 제외할 생각인데...

처음에 구상할땐 백만건 이상 선별할 것으로 기대했으나 실제로 해보려니 그정도는 힘들 것 같다.^^

반응형
우연히 알게됀 싸이트...
한류다 뭐다 해서 한국에 관심있는 일본인이 늘어서 인지
한국인과 일본인 사이에 교류할 수있는 계기를 제공하는 사이트를 만들었나 보다.
성별,나이,국적을 선택해서 친구맺기원하는 사람을 찾을 수 있다.

참고로...

나는 남성이기때문에 20,30대 일본여성을 검색해봤더니...
80%이상이 (특히20대) 슈퍼주니어,2PM,샤이니 이런 아이돌가수 팬이더만...
아이돌 가수 노래를 제대로 알고있는게... 원더걸스 정도라서리...


흠... 


반응형
경우의 숫자 815만여건을 모두 만들었다.

아무래도 1부터 45까지 6자릿수의 경우의수를 반복해서 만드는 건 너무 오래걸리는 것 같아서

그냥 숫자생성로직을 초기화했다.

중복되는 숫자체크 확인 함수도 없애고 그냥

a,b,c,d,e,f에 대한 초기값1 대신

앞자리 + 1을 초기값으로 설정하고 한잠자고 일어나니 815만건정도의 데이터가 모두 입력돼있었다.

물론... 어찌된 영문인지 일주일넘게 켜놨던 데탑이 뻣어버리는 사태가 발생해서

회사출근도 째고 부시럭부시럭 거리며 서버를 살려놓고 DB에 접속해보니 내가 만들려고 했던 데이터가

완성되 있는 것이 아닌가...

바로 로또사이트 들어가서 로또 당첨기록 엑셀파일로 다운받아서 경우의 수에 당첨 회차 업데이트 했다. 

후후후 기본 소스는 만들어졌으니 슬슬 분석단계로 넘어가야 하는데...

사실 지금까지 만들어 놓은 것들은 기본 소스에 불과하고 지금부터가 진짜 라는거...

젠장 경우의 수 만들기는 정답이라도 있지만 이제부터는 답도 없는 아이디어의 세계다... ㅠ_ㅠ
반응형
너무 느린 것 같아서 로직을 살짝 바꿨다.
조금 빨라진 것 같긴한데 그래도 속도가 마음에 안들어서 
(대충 보니까 1초에 200에서 300건정도 입력되는 듯...)

그냥 기존 로직을 샥뜯어 고쳐서 돌리니 30분도 안돼서 백만건이 훌쩍넘어 버렸다...

어떻게 했느냐 하면...

그냥 기존에 중복확인 함수를 빼버렸다.
그리고 숫자생성부분 로직을 고쳐서 그냥 중복수가 발생하지 않게 바꿔버려서 속도가 엄청 빨라졌다.

근데 나중에 전부 입력하고 중복되는 수가 있는지 확인해봐야함...
(아마도 중복수가 안생기리라 기대하고 있지만... 개발이란게 원래 맘먹은데로 쉽게 되는게 없는 거다.
반응형

프로그램을 만들어서 무한반복(까지는 아니고) 반복문으로 
로또 경우의 수 생성하고있다.
좀 많이 무식한 방법인데...

6자리의 숫자를 생성해서
① 생성된 숫자가 DB에 존재하는지 존재여부를 검색
② 존재하면 건너뛰고 존재하지 않으면 6자리 숫자를 DB에 입력
하는 아주 단순한 로직이다.

문제는 너무 단순하다 보니까 무조건 돌리기만 한다는 거...

중복되는 숫자를 제거하고 돌리다 보니 DB에 쌓인 데이터의 양이  4,5일정도 
돌렸음에도 불구하고 30만건을 겨우 넘는 정도였다.

숫자를 생성하는 속도자체는 큰 차이가 없지만 그것을 일일이 DB에 접근해서
유효한 것인지 아닌지를 판단하다 보니 속도가 엄청 느려졌다고나 할까?

그래서...
유효성판단하는 함수에 한가지를 더 추가했다.

(a)01,(b)02,(c)03,(d)04,(e)05,(f)06 번째 자릿수의 특징 중 하나가
뒷자릿수가 앞의 자릿수보다 작은수가 올 수 없다는 것이니...

무한생성시키고 있는 숫자중에 뒷자리가 앞자리 보다 작은 숫자들은
이미 기존에 입력된 값이 있는 중복된 값이기 때문에 무조건 무시하고
생성하기로 했더니...

4,5일간 30만건 생성했던 속도가 하룻밤만에 30만건을 생성하는게 아닌가... -_-;
앞으로 추가할 로직이 몇가지 더있긴 한데... 쩝...

+ Recent posts