루아의 랜덤 함수  math.random

루아의 랜덤 함수에 대해서 알아보겠습니다.

 

루아의 랜덤 함수는 소프트웨어적으로 생성한 의사 난수입니다. 

 

난수 생성

 

무작위의 숫자를 생성하기 위해 사용합니다.

temp = math.random()
print("basic random() : " .. temp)

temp = math.random(10)
print("random(10) : " .. temp)

temp = math.random(10, 50)
print("random(10, 50) : " .. temp)

매개변수를 주면 범위를 지정합니다.

 

함수가 오버로드되어있습니다.

 

 ▶ 매개변수가 없는 랜덤 함수는 0에서 1까지

 

 ▶ 한 개의 매개변수는 1에서 N 까지의 범위의 정수를 반환하고

 

 ▶ 두 개의 매개변수는 N~ M까지의 범위로 반환합니다.

 

이들은 의사 난수 생성방식이라서 성능이 좋지 않은데 시드(seed)를 활용하면 분포도가 개선된 난수를 생성할 수 있습니다. 난수를 생성하기 전에 randomseed 메소드에 시간(os.time())을 seed 로 넣으면 좋습니다.

math.randomseed(os.time())

math 라이브러리

math 라이브러리에는 기본적인 수학함수가 들어있습니다.

 

모든 라이브러리 함수에 대한 설명은 하지 않겠습니다. 라이브러리의 상세사항은 루아의 공식문서(documentation)을 활용하는 것을 추천합니다. 공식문서에 성지순례하는 것은 프로그래밍 언어를 배울 때의 기본 자세입니다. 공식문서를 읽으면 언어를 개발한 사람들의 생각과 방향성도 함께 읽을 수 있습니다.

 

math 라이브러리에는 다른 프로그래밍 언어에서도 볼 수 있는 일반적인 수학 함수를 사용할 수 있다. 일반적인 함수들이므로 어떤 프로그래밍을 하더라도 유용하게 사용할 수 있습니다.

 

-> 절대값 구하기

print(math.abs (-10))
print(math.abs (10))

결과값 : 10, 10

 

->  파이상수 , 자연로그 e, 제곱근 함수

print( math.pi )

print(math.exp( 1 ))

print(math.sqrt( 9 ))

 

-> 소수점 내림과 올림

print(math.floor(9.7))

print(math.ceil(9.7))

이밖에 최대값을 구하는 max, min나 삼각비 함수 등이 math 라이브러리에 기본으로 들어있습니다.

 

Lua의 공식문서를 참조합니다.

 

lua-users wiki: Math Library Tutorial (lua-users.org)

 

lua-users wiki: Math Library Tutorial

The math library is documented in section 6.7 of the Reference Manual.[1] Below is a summary of the functions and variables provided. Each is described, with an example, on this page. math.abs math.acos math.asin math.atan math.ceil math.cos math.deg math.

lua-users.org

 

공유하기

facebook twitter kakaoTalk kakaostory naver band