2014-12-16 2 views
0

나는 아래의 코드가 RH에 대해 0.9와 1.0 사이의 (준) 난수를 생성 할 것으로 기대한다.예상되는 난수의 전체 범위가 왜 표시되지 않습니까?

randno5=$((RANDOM % 100001)) 
upper_limit5=$(echo "scale=10; 1*1.0"|bc) 
lower_limit5=$(echo "scale=10; 1*0.9"|bc) 
range5=$(echo "scale=10; $upper_limit5-$lower_limit5"|bc) 
RH=`echo "scale=10; ${lower_limit5}+${range5}*${randno5}/100001" |bc` 

그러나이 코드를 실행하면 0.9에서 0.933 (3sf) 사이의 값이됩니다. 왜 이런 경우입니까?

+0

내 의견에서 'RANDOM'의 범위를 [이전 질문] (https://stackoverflow.com/questions/27134988/standard-in-1-syntax-error-in-bash-script)에 적용했습니다. –

+0

네가 그랬지.하지만 처음에는 못 봤어. –

답변

1

$RANDOM 32767, 기껏입니다 : 생성 된 모든 번호를 그 범위로 제한 될 것이다

RANDOM Each time this parameter is referenced, a random integer between 
      0 and 32767 is generated. The sequence of random numbers may be 
      initialized by assigning a value to RANDOM. If RANDOM is unset, 
      it loses its special properties, even if it is subsequently 
      reset. 

귀하의 계수가 적용되지 않습니다.

관련 문제