본문 바로가기
C#

재미로 만드는 로또 번호 생성기 #1_중복 없는 번호 생성

by 공부봇 2025. 1. 4.
반응형

로또 1등에 당첨될 확률은 약 1/8,145,060입니다.

 

아래는 C#으로 작성된, 1부터 45까지 중복 없이 6개의 숫자를 랜덤으로 뽑는 함수입니다. 이 함수는 HashSet<int>를 사용하여 중복을 방지하고, Random 객체를 활용합니다.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 랜덤 번호 생성
        List<int> lottoNumbers = GenerateLottoNumbers();
        
        // 결과 출력
        Console.WriteLine("랜덤 로또 번호: " + string.Join(", ", lottoNumbers));
    }

    static List<int> GenerateLottoNumbers()
    {
        Random random = new Random();
        HashSet<int> numbers = new HashSet<int>();
        
        // 중복 없이 6개의 번호 선택
        while (numbers.Count < 6)
        {
            int num = random.Next(1, 46); // 1부터 45까지의 랜덤 숫자
            numbers.Add(num); // 중복된 숫자는 자동으로 제외됨
        }
        
        // HashSet을 정렬된 List로 변환
        List<int> result = new List<int>(numbers);
        result.Sort(); // 번호를 오름차순 정렬
        return result;
    }
}

코드 설명:

  1. Random 객체 사용:
    • random.Next(1, 46)은 1부터 45까지의 정수를 생성합니다.
  2. HashSet<int> 사용:
    • 중복된 숫자가 자동으로 제외되므로 중복 검사가 필요 없습니다.
  3. 정렬:
    • result.Sort()를 통해 출력된 번호를 오름차순으로 정렬합니다.

실행 결과 예시:

랜덤 로또 번호: 5, 12, 23, 29, 34, 41

이 코드를 실행하면 매번 새로운 랜덤 로또 번호를 생성할 수 있습니다! 😊

 

반응형