2017-10-18 105 views
1

我想将此方程“(rand() % (max-min)) + min;”从C++转换为TCL/TK,并将它转换为ns2 ...我希望有人能帮助我。将此方程转换为随机

我此致

回答

0

表达不能被直接翻译,作为Tcl的rand()返回浮点数(范围在0.0至1.0)不象C++的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

感谢您的回答Donal,但为什么我们不能使用(%),由于在方程中它使用了模式除法(%)而不是乘法。 – Qusay

+0

由于Tcl的'rand()'将返回一个介于'0.0'和'1.0'之间的浮点数,而C的'rand()'将返回一个整数。 –

+0

好的......感谢您的回答和努力。 – Qusay