[Python] 파이썬으로 랜덤(random) 사용 및 로또 만들기

    랜덤 모듈은 난수값을 생성하기 위한 기능을 담고 있는 모듈로 다양한 랜덤 관련 함수를 제공하고 있다. 랜덤 모듈의 경우 게임등에서도 활용할 수 있지만 데이터 분석에서도 다양한 결과를 실험하기 위해서도 쓰일 수 있으며 화면에서 데이터들을 랜덤으로 노출하고 싶을 때에도 사용할 수 있는 등 활용 방법은 매우 다양하다.

     

    랜덤 사용 방법

    import random
    
    random.random()	# 0~1의 실수값

    기본적으로 random.random() 함수를 사용하면 0~1의 실수값을 호출하게 된다. 위의 random을 호출한 결과는 그때그때 다르겠지만

     

    random()을 호출하면 0~1의 실수가 나온다.

    이와같이 모두 0~1사이의 실수가 나오는 것은 확인할 수 있다.

     

    값의 범위 지정하기

    0~1의 값을 이용하여 다양한 랜덤을 구현할 수도 있겠지만, 값의 범위를 지정하여 보다 정교한 랜덤을 구현할 수 있다.

     

    uniform

    >>> random.uniform(1,6)
    1.8382400407104706
    >>> random.uniform(1,6)
    1.6911172903066283
    >>> random.uniform(1,6)
    4.609651815893047

    random() 함수 대신 uniform 함수를 사용하면, 첫번째 값부터 마지막 값의 사이의 실수값을 리턴한다.

     

    정수 사용하기

    실수값을 정수값으로 변형하여 사용할 수 있겠지만, 정수값으로 리턴해주는 함수 역시 지원하고 있다. uniform의 경우 데이터 분석에서는 활용할 수 있지만, 우리가 보편적으로 랜덤을 사용하는 것은 정수값을 리턴하는 경우가 많다.

     

    randint

    >>> random.randint(1,6)
    2
    >>> random.randint(1,6)
    5
    >>> random.randint(1,6)
    3

    이와 같이 주사위와 같은 기능을 매우 쉽게 구현할 수 있다.

     

    심화, 로또 번호 생성하기

    import random
    
    lotto_set = set([])
    while len(lotto_set) < 6:
        lotto_set.add(random.randint(1, 45))
    
    print(lotto_set)
    
    # {33, 5, 8, 12, 23, 26}

    로또 번호는 중복된 값이 나올 수 없는 구조이기 때문에 중복이 될 수 없는 set형태로 값을 담으며, set 사이즈가 6이 넘어가면 중단하는 간단한 알고리즘이다.

     

    연관포스팅

    2020/12/08 - [Language/Java] - [Java] 자바 랜덤함수(Random) 및 Seed 설명

    2020/11/26 - [Language/Java] - [Java] 자바로 로또 번호 생성하기

     

    반응형

    댓글

    Designed by JB FACTORY