[AI 로또 ④ ] 두 개 맞히면 예측 성공일까···AI에게 ‘우연’을 다시 물었다

백영건 기자 2026. 9. 27. 17:00
음성재생 설정 이동 통신망에서 음성 재생 시 데이터 요금이 발생할 수 있습니다. 글자 수 10,000자 초과 시 일부만 음성으로 제공합니다.
번역beta Translated by kaka i
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 가장 빠른 뉴스가 있고 다양한 정보, 쌍방향 소통이 숨쉬는 다음뉴스를 만나보세요. 다음뉴스는 국내외 주요이슈와 실시간 속보, 문화생활 및 다양한 분야의 뉴스를 입체적으로 전달하고 있습니다.

두 회차 연속 2개 번호 적중
‘맞았다’보다 중요한 것은
우연과 예측을 구분하는 일이었다

인공지능(AI)에게 로또 당첨번호를 예측하게 하면 어떤 일이 벌어질까. 여성경제신문은 단순히 AI에게 숫자 6개를 추천받는 데서 그치지 않고 실제 로또 23년치 당첨번호를 분석하는 것부터 실험을 시작했다. 많이 나온 번호와 적게 나온 번호, 연속번호와 홀짝 비율, 번호 사이의 상관관계를 조사했고, 이어 인간이 오랫동안 미래를 예측하기 위해 사용해온 주역·사주·육임과 서양점성술까지 계산 가능한 규칙으로 바꿔 실제 당첨번호와 비교했다.

실험 과정에서는 여러 차례 '법칙'처럼 보이는 결과가 나타났다. 그러나 표본을 늘리고, 무작위 추첨과 비교하고, 이미 나온 결과를 보지 않은 데이터로 다시 시험할수록 처음의 우위는 대부분 사라졌다. AI 역시 처음부터 정답을 알고 있던 것은 아니었다. 기자가 검증 조건을 하나씩 강화할 때마다 AI는 계산을 다시 했고 판단도 수정했다.

이 연재는 점술이나 점성술의 옳고 그름을 판단하기 위한 것이 아니다. 질문은 훨씬 좁다. 통계적 패턴이든 동서양의 전통적인 미래예측 체계든, 이를 AI로 계산했을 때 실제 로또6/45의 무작위성을 넘어서는 반복 가능한 예측력을 만들어낼 수 있는가. 과거 자료를 이용한 검증을 넘어 이제는 추첨 전에 번호를 확정하고 결과가 나온 뒤에는 수정하지 않는 공개 실험으로 이어간다. 기자와 AI가 벌이는 이 장기 실험의 이름은 '프로젝트 오라클'이다. [편집자 주]

[AI 로또 ① ] 23년치 로또 당첨번호 AI에 넣어봤더니
[AI 로또 ② ] 주역을 컴퓨터에 넣었다···점괘는 로또 번호가 될 수 있을까
[AI 로또 ③ ] 이번엔 서양점성술로 로또 번호를 뽑아봤다···하늘에는 로또 번호가 있을까
[AI 로또 ④ ] 두 개 맞히면 예측 성공일까···AI에게 '우연'을 다시 물었다
[AI 로또 ⑤ ] '육임'을 컴퓨터 프로그램으로 만들었다···복잡할수록 더 잘 맞을까
몇 개의 번호를 맞혀야 로또 예측에 성공인 것일까. AI로 생성한 이미지임 /챗GPT

두 개를 맞혔다. 그래서 무엇을 알 수 있을까

주역 프로그램의 첫 실험에서는 실제 당첨번호 가운데 두 개가 맞았다. 다른 방식에서도 한 개 또는 두 개가 겹치는 일이 있었다. 숫자를 보는 순간에는 꽤 그럴듯했다. 기자가 AI에게 물었다.

"숫자 6개를 뽑았는데 두 개를 맞혔다면 잘한 것 아닌가?"

하지만 비교 대상이 없으면 판단할 수 없었다. 로또6/45에서는 아무 생각 없이 숫자 6개를 선택해도 실제 당첨번호와 일부가 겹친다. 장기간 평균으로 보면 무작위로 6개를 선택했을 때 실제 본번호와 일치하는 숫자의 기대값은 0.8개다. 한 번 두 개를 맞히는 것은 충분히 일어날 수 있는 일이다.

그럼 몇 개를 맞혀야 진짜일까

기자가 다시 물었다.

"그러면 세 개를 맞히면 예측력이 있다고 할 수 있을까?"

그것도 한 번으로는 부족하다. 네 개도 마찬가지다. 어떤 드문 사건도 충분히 많은 시도를 반복하면 언젠가는 발생할 수 있기 때문이다. 문제는 한 번의 최고 기록이 아니라 장기적으로 무작위보다 얼마나 자주 좋은 결과를 내는가였다. 기자가 정리했다.

"결국 최고 몇 개를 맞혔느냐보다 평균 성적을 봐야 하는 거네."

그렇다. 그리고 평균만 봐서도 충분하지 않았다. 얼마나 많은 회차에서 시험했는지, 규칙을 도중에 바꾸지 않았는지, 결과를 본 뒤 좋은 회차만 골라낸 것은 아닌지도 함께 봐야 했다.

잘 맞은 결과만 보여주면 모든 모델이 예언자가 된다

실험을 계속하다 보니 또 다른 함정이 보였다. 주역 프로그램에서 마음에 들지 않는 번호가 나오면 다시 점을 친다. 점성술 프로그램의 조건을 조금 바꿔 더 그럴듯한 숫자가 나올 때까지 반복한다. 수십 개 모델을 돌린 뒤 실제 당첨번호와 가장 가까웠던 하나만 기사에 쓴다. 이렇게 하면 결과는 좋아 보일 수밖에 없다.

기자가 AI에게 물었다.

"결과를 본 다음 가장 잘 맞은 모델을 고르는 것도 반칙 아닌가?"

그렇다고 봐야 했다. 예측을 검증하려면 무엇을 사용할지 결과가 나오기 전에 정해야 한다.

그래서 규칙을 바꿨다

프로젝트 오라클의 실험 규칙을 다시 만들었다. 첫째, 추첨 전에 사용할 모델을 정한다. 둘째, 번호 6개를 미리 확정한다. 셋째, 실제 추첨 뒤에는 숫자를 바꾸지 않는다. 넷째, 맞은 회차뿐 아니라 틀린 회차도 모두 기록한다. 다섯째, 무작위로 뽑은 번호와 같은 기간 동안 비교한다.

기자가 말했다.

"이제 과거 데이터를 잘 설명하는 프로그램이 아니라 실제로 다음 회차를 시험하는 프로그램이 되는 거네."

그때부터 실험의 성격이 달라졌다.

독자도 같은 조건에서 직접 비교한다

기자는 또 하나를 주문했다.

"주역과 육임과 점성술을 한 화면에서 비교할 수 있게 해보자."

그래서 독자용 통합 프로그램을 만들었다. 같은 추첨 날짜와 시각을 입력하고 주역, 육임, 서양점성술을 각각 선택하면 서로 다른 계산 규칙으로 숫자 6개가 나온다. 통합 모델은 세 방법이 각각 1부터 45까지 부여한 점수를 합쳐 공통적으로 높은 숫자를 고른다.

아래 프로그램의 목적은 어느 점술이 더 정확하다고 판정하는 것이 아니다. 서로 다른 체계를 같은 입력과 같은 1~45 조건에 올려놓고 결과를 비교하기 위한 실험 장치다.

<독자 실험 프로그램>PROJECT ORACLE주역·육임·점성술 통합 번호 6개세 모델이 1~45에 부여한 점수를 합쳐 공통적으로 높은 숫자 6개를 보여줍니다.추첨 날짜 추첨 시각 장소 서울부산인천대구광주대전제주 번호 6개 보기  이 프로그램은 연구·오락 목적의 공개 실험입니다. 당첨 가능성을 보장하지 않습니다.(function(){ const root = document.getElementById("oracle-ensemble"); if(!root) return; const $ = (sel) => root.querySelector(sel); const dateEl = $(".oracle-date"); const timeEl = $(".oracle-time"); const placeEl = $(".oracle-place"); const btn = $(".oracle-btn"); const ballsEl = $(".oracle-balls"); const metaEl = $(".oracle-meta"); const now = new Date(); const next = new Date(now.getTime() + 3*86400000); dateEl.value = next.toISOString().slice(0,10); function hash32(s){ let h=2166136261>>>0; for(let i=0;i>>0; } function prng(seed){ let a=seed>>>0; return ()=>{ a|=0; a=a+0x6D2B79F5|0; let t=Math.imul(a^a>>>15,1|a); t=t+Math.imul(t^t>>>7,61|t)^t; return ((t^t>>>14)>>>0)/4294967296; }; } function jdFromDate(d){ return d.getTime()/86400000 + 2440587.5; } function wrap360(x){ x%=360; return x({n:i+1,s})) .sort((a,b)=>b.s-a.s||a.n-b.n) .slice(0,6) .map(x=>x.n) .sort((a,b)=>a-b); } function ichingEngine(key){ const rng=prng(hash32(key+"|iching")); const lines=[]; for(let i=0;iarr[0]+2*arr[1]+4*arr[2]; const hex=triVal(primaryBits.slice(0,3))*8+triVal(primaryBits.slice(3,6))+1; const changed=triVal(changedBits.slice(0,3))*8+triVal(changedBits.slice(3,6))+1; const changing=lines.map((v,i)=>(v===6||v===9)?i+1:0).filter(Boolean); const scores=baseScores(); for(let n=1;nMath.floor(wrap360(v)/30)+1; return { nums:scoreToNums(scores), scores:scores, detail:"태양 "+L.sun.toFixed(1)+"° · 달 "+L.moon.toFixed(1)+"° · 태양궁 "+z(L.sun)+"번째 궁" }; } function mergeEngines(list){ const scores=baseScores(); list.forEach(e=>e.scores.forEach((v,i)=>scores[i]+=v)); return {nums:scoreToNums(scores),scores:scores,detail:"주역 · 육임 · 점성술 점수 합산"}; } btn.addEventListener("click",function(){ const ds=dateEl.value; const ts=timeEl.value||"20:35"; if(!ds) return; const parts=placeEl.value.split(",").map(Number); const lat=parts[0], lon=parts[1]; const d=new Date(ds+"T"+ts+":00+09:00"); const key=ds+"|"+ts+"|"+lat+"|"+lon; const a=ichingEngine(key); const l=liurenEngine(key,d); const s=astroEngine(key,d,lat,lon); let r, name; if("ensemble"==="iching"){ r=a; name="주역"; } else if("ensemble"==="liuren"){ r=l; name="육임"; } else if("ensemble"==="astro"){ r=s; name="서양점성술"; } else { r=mergeEngines([a,l,s]); name="통합"; } ballsEl.innerHTML=r.nums.map(n=>''+n+'').join(""); metaEl.textContent=name+" 실험 결과 · "+r.detail+" · 같은 입력값에서는 같은 계산 규칙을 사용합니다."; });})();

과거 당첨번호를 학습시키면 더 좋아질까

기자는 다시 욕심을 냈다.

"전통 규칙만 쓰지 말고 1236회 당첨번호까지 학습시키면 어떨까?"

AI는 과거 데이터에서 비슷한 조건일 때 어떤 번호가 자주 나왔는지를 추가할 수 있었다. 처음에는 성적이 좋아졌다. 하지만 익숙한 문제가 돌아왔다. 과거에 맞도록 보정할수록 과거 성적은 올라갔다. 새로운 기간으로 옮기면 우위가 줄어들었다.

기자가 물었다.

"그러면 학습을 많이 시킬수록 좋은 것이 아니라 과거 답을 외워버릴 수도 있다는 뜻인가?"

바로 그 문제였다. AI 분야에서는 이런 현상을 과적합이라고 부른다. 복잡한 모델일수록 과거 문제집에서는 높은 점수를 받을 수 있다. 하지만 처음 보는 시험지에서도 잘 풀어야 예측 모델이다.

우리가 찾는 것은 한 번의 대박이 아니다

프로젝트 오라클이 찾으려는 것은 특정 회차에서 우연히 세 개나 네 개가 맞는 모델이 아니다. 그런 일은 언젠가 무작위에서도 발생할 수 있다. 찾아야 하는 것은 훨씬 까다롭다.

규칙을 미리 고정했을 때, 결과를 보기 전에 번호를 공개했을 때, 오랜 기간 시험했을 때, 무작위 선택보다 반복해서 높은 성적을 내는가. 이 조건을 통과해야 비로소 예측력이라는 말을 꺼낼 수 있다. 지금까지 시험한 통계 패턴과 주역, 사주, 점성술은 그 문턱을 안정적으로 넘지 못했다.

그렇다면 아직 제대로 시험하지 않은 것은 무엇일까

기자가 이전 실험 목록을 다시 살펴봤다. 주역과 사주는 여러 요소를 섞어 시험했다. 점성술도 별자리와 행성 위치를 이용했다. 그 과정에서 계속 이름이 등장했지만 하나의 독립된 프로그램으로 충분히 떼어보지 않았던 체계가 있었다. 육임이었다.

기자가 물었다.

"이번에는 다른 것을 섞지 말고 육임만으로 프로그램을 만들면 어떨까?"

AI는 가능하다고 답했다. 하지만 곧 경고했다. 육임은 주역보다 계산 구조가 훨씬 복잡했다. 기자의 다음 질문은 자연스러웠다.

"복잡하면 컴퓨터가 더 잘할 수 있는 것 아닌가?"

프로젝트 오라클의 다섯 번째 실험이 시작됐다.

*이 기사는 기자가 기획하고 AI의 도움을 받아 작성되었습니다. 

여성경제신문 백영건 기자
younghon93@seoulmedia.co.kr

*여성경제신문 기사는 기자 또는 외부 필자가 작성 후 AI를 이용해 교정·교열하고 문장을 다듬었음을 밝힙니다. 기사에 포함된 이미지 중 AI로 생성한 이미지는 사진 캡션에 밝혀두었습니다.