1보다 작은 숫자는 어떻게 생성합니까?숫자가 아닌 숫자의 Math.random
예를 들어 나는 무엇을 시도했다 0.9
0.1에서 번호를 생성하고 싶습니다 :
math.random(0.1,0.9)
1보다 작은 숫자는 어떻게 생성합니까?숫자가 아닌 숫자의 Math.random
예를 들어 나는 무엇을 시도했다 0.9
0.1에서 번호를 생성하고 싶습니다 :
math.random(0.1,0.9)
루아의 math.random()
이와 인수는 지정된 범위 내에서 정수를 반환합니다.
인수없이 호출되면 0.0 ~ 1.0 사이의 의사 랜덤 실수를 반환합니다.
지정된 범위의 실수를 얻으려면 자체 배율을 조정해야합니다. 예를 들면 :
math.random() * 0.8 + 0.1
당신에게 0.1과 0.9 사이의 임의의 실수를 줄 것이다. 더 일반적으로 : 당신이 좋아하는 경우에 당신이 당신의 자신의 기능에 래핑 할 수
math.random() * (hi - lo) + lo
.
그러나 나는 그것이 매우 특이한 범위라는 것에 주목할 것입니다. 당신이 정말로, 0.2, 0.1에서 선택된 임의의 숫자를 원하는 경우 0.3, 0.4, ..., 0.9, 당신은 9의 범위 (1)의 정수를 생성해야하고 10.0로 나누면 :
math.random(1, 9)/10.0
보관할 것 대부분의 실수가 부동 소수점으로 정확하게 표현 될 수 없다는 것을 명심하십시오.
당신은 0과 1 사이의 숫자를 생성하는 math.random()
(더 인수를) 사용할 수 없습니다, 그것을 사용하여 두 대상 번호를 섞습니다.
-- generates a random real number between a (inclusive) and b (exclusive)
function rand_real(a, b)
return a + (b - a) * math.random()
end
(math.random(10,90))/100
이렇게하면 10에서 90까지의 숫자가 생성되고 나누기는 0.1에서 0.9 사이의 숫자를 제공합니다.
예, 해당 범위 내에서만 79 (90-10 + 1) 개의 고유 값을 제공합니다. 그것은 그것이 OP가 원하는 것일 것 같지 않습니다. 실제 난수를 얻으려면 인수없이'math.random() '을 호출하십시오. 다른 두 답변을 참조하십시오. –