본문 바로가기
어플 개발

로또 번호 예측 앱의 기초가 되는 랜덤 숫자 발생 방법. 안드로이드 스튜디오 랜덤 숫자 발생 방법. random number generator in kotlin. 로또 번호 예측 앱의 기초가 되는 랜덤 숫자 발생 방법

by MinervaG 2020. 5. 9.

안드로이드 스튜디오를 활용하여 random 랜덤 숫자를 발생하는 방법에 대해서 소개하겠습니다.

 

코드를 먼저 공유하기 앞서, 랜덤 숫자 발생이 필요한 이유에 대해서 간략히 설명을 해 보겠습니다. 가장 단순한 예로는 로또 번호를 예측하기 위한 랜덤 숫자 발생 앱을 만들기 위해서는 랜덤 숫자 발생이 필요합니다. AI를 활용한 로또 분석, AI가 예측한 로또 번호라고 하는 것은 대부분 랜덤 숫자 발생을 기본 원리로 하고 있습니다.

 

또 다른 예로는 미사일이 날아오는데 때로는 위에서, 때로는 아래에서 등 게임을 플레이할 때마다 미사일이 날아오는 위치를 다르게 하고 싶을 경우에도 랜덤 함수를 응용할 수 있습니다. 랜덤 숫자에 따라 미사일의 위치를 바꿀 수 있으니까요. 4지 선택 문제에서도 동일하게 응용이 가능합니다. 1번부터 4번에 나오는 정답의 보기를 유저가 사용할 때마다 다르게 배치하여 같은 문제이지만 답은 항상 다른 보기에 나오도록 할 수 있게 만드는 것도 랜덤 숫자 발생을 기본으로 하여 앱 제작이 가능합니다.

 

랜덤 숫자를 생성하는 방법은 매우 다양하며 응용 또한 다양합니다. 본 포스팅에서는 가장 단순한 랜덤 숫자 발생 방법에 대해서 소개하겠습니다. Random number generator in kotlin (how to generate random number)

 

아래 그림은 PLAY 버튼을 눌렀을 때 010 사이에서 랜덤으로 숫자가 발생된 결과를 나타낸 것입니다.

 

 

MainActivity.ktcode는 아래와 같이 작성할 수 있습니다. onCreate 아래에 random 함수를 작성합니다.

 

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main) 

button.setOnClickListener({

val random = Random()

val index = random.nextInt(10-0)

val index2 = random.nextInt(10-0)

Number.text="$index"

Number2.text="$index2"

})

}

 

노란색으로 칠해진 부분이 랜덤 함수를 발생하는 가장 단순한 함수입니다. Random()이라는 함수를 선언하였고, 해당 함수에 대해 10-0 사이의 숫자를 랜덤 하게 뽑아서 index안에 넣도록 code를 작성한 부분입니다. Text 박스가 두 개 이기 때문에 Number와 Number2로 구분하여 각각 indexindex2로 데이터를 text로 입력을 하였습니다. 여기서 중요한 포인트로는 0-10으로 표기하면 에러가 발생합니다. 10-0으로 작성을 하셔서 결과 화면을 보아야 합니다.

 

만약 index 하나만 선언하여 Number, Number2 두 텍스트에 입력을 하게 되면 두 텍스트 박스 모두 같은 값을 가지게 됩니다. 따라서 index2개로 선언하여 각각 넣어 주게 되었습니다.

 

PLAY 버튼을 누를 때마다 숫자가 바뀌어야 하기 때문에 setOnClickListener 안에 random 함수를 선언하였습니다. 따라서 어플 실행 시 PLAY 버튼을 지속적으로 누르게 된다면 숫자가 계속해서 바뀌게 됩니다.

 

해당 random 함수로 발생시킨 랜덤 숫자를 array를 이용하여 저장해서 각각 다른 용도로 사용하면 매번 다른 결과를 받아 볼 수 있게 됩니다. 해쉬태크, 현재 시간, 사용자 입력 값 등을 이용하여 random 숫자에 반영을 할 수 도 있습니다. 해당 방법에 대해서는 추후 다시 한번 소개하는 것으로 하겠습니다.

 

로또 번호 예측 앱도 이러한 간단한 random 함수를 사용하여 뚝딱 만들 수가 있기 때문에 한 번쯤 앱을 직접 만들어 보는 것도 재미난 시간을 가질 수 있으리라 생각됩니다.

반응형

댓글


TOP