2017-10-18 106 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