이 방정식은 어떻게 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
너비 내에 있는 난수를 대상 범위로 다시 이동합니다 .