이 방정식은 어떻게 두 값 사이에 임의의 숫자를 제공합니까?

이 방정식은 어떻게 두 값 사이에 임의의 숫자를 제공합니까?

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은 (단위 x 정수) 세트 내부에서 0이 아닌 나머지를 얻지 못하도록 합니다.

+min 폭 내에 속하는 난수를 대상 범위로 다시 이동합니다 .

관련 정보