1
私はこの式 "(rand() % (max-min)) + min;
"をC++からTCL/TKに変換してns2に変換したいと思っています。誰か助けてくれれば幸いです。この式をランダムに変換する
宜しく
私はこの式 "(rand() % (max-min)) + min;
"をC++からTCL/TKに変換してns2に変換したいと思っています。誰か助けてくれれば幸いです。この式をランダムに変換する
宜しく
発現は整数を返す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]
答えてくれてありがとうDonal、しかしなぜ私たちは(%)を使うことができないのですか?方程式のなかで、乗算ではなくモード分割(%)を使いました。 – Qusay
Tclの 'rand()'は '0.0'と' 1.0'の間の浮動小数点数を返しますが、Cの 'rand()'は整数を返します。 –
Ok ...あなたの答えと努力に感謝します。 – Qusay