반응형
45개의 숫자들 중에서 6개를 골라 추첨번호와 일치하면 당첨되는 로또(LOTTO) 번호 추출기는 과거에도 있었다.
다양한 확률과 트랜드, 최근 발생번호 등 다양한 숫자적 옵션들을 적용했지만
가장 중요한 핵심, 당첨에 대해서는 말을 하지 못하는 한계가 명확했다.
이 포스팅 역시 당첨을 보장하지 못한다.
당첨이 보장된다면? 왜 공개를 할까?
소프트웨어를 만드는 사람들은 예언자가 아니며 숫자를 가지고 세상을 움직이는 예측자들이다.
위 파일은 로또 번호 5개 세트를 골라주는 Windows용 앱이다(스마트폰용 아님).
실행하면 버튼이 하나 보이는데, 이 버튼을 클릭하면 5개의 로또 번호 세트를 만들어준다.
코드에 적용된 특별한 조건은 단 하나
랜덤 숫자가 선택되야하며,
당연히 6개의 숫자들은 절대 중복되면 안된다.
Public Class Form1 Private generatedSets As New List(Of List(Of Integer)) ' 생성된 숫자 세트를 저장할 리스트 Private random As New Random() ' Random 객체를 클래스 레벨로 이동 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' DataGridView에 열을 추가 DataGridView1.Columns.Clear() ' 기존 열을 모두 제거 For colIndex As Integer = 1 To 6 Dim column As New DataGridViewTextBoxColumn() column.Name = "Column" & colIndex column.HeaderText = "번호 " & colIndex DataGridView1.Columns.Add(column) Next ' DataGridView를 초기화 DataGridView1.Rows.Clear() ' 5세트의 숫자를 생성하고 DataGridView에 추가 For i As Integer = 1 To 5 Dim randomSet As List(Of Integer) = GenerateUniqueRandomSet() DataGridView1.Rows.Add(randomSet(0), randomSet(1), randomSet(2), randomSet(3), randomSet(4), randomSet(5)) Next End Sub ' 중복되지 않는 6개의 숫자로 이루진 세트 생성 Private Function GenerateUniqueRandomSet() As List(Of Integer) Dim randomSet As List(Of Integer) ' 중복되지 않는 세트를 생성할 때까지 반복 Do randomSet = GenerateRandomSet() Loop While generatedSets.Any(Function(s) s.SequenceEqual(randomSet)) ' 생성된 세트를 저장 generatedSets.Add(randomSet) Return randomSet End Function ' 1부터 45까지 중복되지 않는 랜덤한 6개의 숫자를 생성 Private Function GenerateRandomSet() As List(Of Integer) Dim usedNumbers As New List(Of Integer) Dim randomSet As New List(Of Integer) ' 6개의 중복되지 않는 숫자 생성 While randomSet.Count < 6 Dim randomNumber As Integer = random.Next(1, 46) ' 1부터 45까지의 숫자 If Not usedNumbers.Contains(randomNumber) Then randomSet.Add(randomNumber) usedNumbers.Add(randomNumber) End If End While ' 숫자를 정렬하여 반환 randomSet.Sort() Return randomSet End Function End Class
728x90
'디지털포렌식(Digital forensic) > 숫자' 카테고리의 다른 글
신비한 숫자, 카프레카(Kaprekar) 상수 (1) | 2023.12.03 |
---|---|
[리스트]국제 전화 국가 코드 (0) | 2023.10.24 |
[파일] EAN-13 바코드 만들기 (0) | 2023.10.16 |
[파일] 12자리 도어락 비밀번호 10만개 추천 (0) | 2023.10.11 |
[파일 공개] 로또 모든 번호 리스트 (1) | 2023.10.08 |