2017-10-18 1 views
1

이 수식을 "(rand() % (max-min)) + min;"을 C++에서 TCL/TK로 변환하여 ns2로 변환하고 싶습니다 ... 누군가 도와 줄 수 있으면 좋겠어요.임의 수식으로 변환

내 안부

답변

0

표현은 정수를 반환하는 C++의 rand() 달리 (범위 0.0 ~ 1.0 년) 부동 소수점 숫자는 Tcl의 rand() 수익률로 직접 변환 할 수 없습니다. 그러나 거의 도덕적 동등한은 이것이다 :

expr { int(rand() * ($max - $min)) + $min } 

우리는 더 쉽게 (그냥 C에서 도우미 함수를 작성 같다 ++)를 사용할 수 있도록 약간의 절차로이 포장 할 수 있습니다

proc randInRange {min max} { 
    return [expr { int(rand() * ($max - $min)) + $min }] 
} 

# Example of calling it and using the result: 
puts [randInRange 1 10] 
+0

답장을 보내 주셔서 감사합니다. 그러나 왜 우리는 (%)를 사용할 수 없습니까? 수식에서 곱셈이 아닌 모드 나누기 (%)를 사용했습니다. – Qusay

+0

Tcl의'rand()'는'0.0'과'1.0' 사이의 부동 소수점 숫자를 반환하기 때문에 C의'rand()'는 정수를 반환합니다. –

+0

Ok ... 답변과 노력에 감사드립니다. – Qusay