파이썬은 객체 지향 프로그래밍 언어로 다른 언어에 비해 처음에 접하기 쉬운 언어로 평가받고 있습니다. 프로그램 언어를 익히기 위해서는 그에 맞는 문법과 명령어를 숙지해야만 하는데요. 파이썬의 문법은 우리가 사용하는 문법과 닮아있기 때문입니다.
일생에서 좋은 일이 생기면 ‘로또 됬다’며 언급할 때가 있습니다. 또는 좋은 징조가 보이면 로또를 구매하는 경우도 있습니다. 이는 그만큼 로또라는 것이 행운의 대명사가 되었기 때문입니다.
로또에 당첨된다면 참 좋겠지만 쉽지는 않습니다. 로또 1등은 800만 이상의 경우에 수 중 1개만이 존재하기 때문이죠. 다양한 변수가 존재할 수도 있습니다. 나름의 계산 방법, 추론 방법을 정립해도 일일이 직접 진행하는 것은 어려움이 있을 수 있습니다. 이런 경우, 파이썬을 이용한 로직을 구성하여 진행해 볼 수 있습니다.
파이썬을 이용한 로또 예상번호 추출 로직에 대한 생각.
로직이라는 것이 그렇게 거창한 것은 아닙니다. 단순히, 어떤 기능을 구현하는 과정을 코드로 작성하면 ‘로직’이라 부를 수 있습니다. 하나의 프로그램에 다수의 로직이 필요할 수 있으며, 이 조각들이 모여 하나의 커다란 프로그램이 완성될 수 있습니다.
로또는 6개의 번로를 맞추는 게임입니다. 외국의 경우, 더 많은 숫자(45개 이상) 중 6개 이상의 번호를 맞춰야 하는 게임 방식도 존재합니다. 국내에서는 45개 중 6개만 맞추면 되는 것이죠. 즉, 접근 방법에 따라 다양한 추론 방법이 존재할 수 있습니다.
예를 들어, 한 개의 예상 번호를 생각해 볼 수 있습니다. 전회차에 등장한 번호와 어떤 계산 방법을 도입하여 추출되는 결과를 비교하는 방법이 있습니다. 이런 방법을 계산식이라 부르게 되는데요. 연역적인 추론이 됩니다.
우리의 일반 상식에서는 상당히 불합리한 방법임에 분명합니다. 로또 게임은 독립시행의 게임으로 전회차에 등장한 번호는 다음 회차에 아무런 영향을 주지 않기 때문입니다. 하지만, 우연이 존재할 수 있습니다.
과학적으로 입증되지 않은 자연 현상은 ‘우연’이라는 표현으로 취급되었습니다. 예전 ‘기우제’에 대한 이야기를 생각해 볼 수 있습니다.
왕이 존재하던 시대, 그 시대에는 농경이 나라의 근간을 이루게 됩니다. 농사는 적당한 기후 조건이 맞아야 합니다. 하지만, 어떤 해는 비가 안 올 수도 있습니다. 이런 경우, 왕 혹은 제사장이 기후제를 지내게 됩니다.
이 기후제는 언제까지 진행하는 것일까요. 바로, 비가 올 때까지 진행합니다. A라는 제사장은 3번 기우제를 지냈는데 정말로 비가 왔습니다. B라는 제사장은 10번의 기우제를 지냈는데 5번만 왔습니다. A의 확률은 100%가 되며, B라는 제사장은 50%의 확률이 됩니다.
A가 뛰어난 것일까요. 사실 A,B를 비교할 수는 없습니다. 어떤 연관성도 없으니까요. 단지 비가 올 때까지 잘 견딘 시기가 중요할 수 있습니다. 지금과 같이 과학이 발전한 시대에는 상상하기 어려운 발상이기도 합니다. 이는 과학의 발달로 비가 오는 시점을 예측할 수 있기 때문입니다.
과학이라는 학문이 발달하기 전에는 ‘우연’에 지나지 않았을 것이지만, 이제는 그 시점을 대략적으로 예측할 수 있습니다. 로또에서 발생되는 우연, 행운도 다가올 수 있지 않을까요.
일기예보를 계산하는 컴퓨터는 단순히 성능 좋은 컴퓨터가 아닙니다. 당대 최고의 성능, 그 중에서도 더 고사양을 만들어 사용합니다. 이런 컴퓨터를 슈퍼 컴퓨터라 부르게 됩니다.
로또의 경우, 로직을 잘 구성하면 일반 데스크톱을 이용한 파이썬 코딩으로 도전해볼 수 있으리라 생각합니다. 무수히 많은 계산식에 대한 검토가 가능할 수 있으며, 어려운 수식을 만들어도 계산한 후, 확률과 통계 데이터를 확보할 수 있을 것입니다. 이렇게 얻어진 데이터를 가지고, 우연이라는 행운을 기대해볼 수 있으리라 생각합니다.