![이 방정식은 어떻게 두 값 사이의 난수를 제공합니까?](https://linux55.com/image/88503/%EC%9D%B4%20%EB%B0%A9%EC%A0%95%EC%8B%9D%EC%9D%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%91%90%20%EA%B0%92%20%EC%82%AC%EC%9D%B4%EC%9D%98%20%EB%82%9C%EC%88%98%EB%A5%BC%20%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
이 방정식은 어떻게 max
과 사이의 min
난수를 제공합니까?divisibleBy
echo $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))
답변1
divsibleBy
단위에 정수를 곱하는 단계로 작업한다고 생각하세요 .
지금은 RANDOM을 무시하면 이는 (max-min+divisbleBy)/divisibleBY
(단위 x 정수)가 아닌 일반 정수 범위의 너비이므로 (max-min+divisibleBy)
(단위 x 정수)의 너비 입니다.
(단위 x 정수) (0에서 32767 사이) %
너비 내의 숫자를 제공하는 모듈로 연산자 입니다 .RANDOM
이 /divisibleBy*divisibleBy
부분은 세트 내에서 0이 아닌 나머지를 얻지 않도록 보장합니다(단위 x 정수).
+min
너비 내에 있는 난수를 대상 범위로 다시 이동합니다 .