您的位置:首页 > 其它

NS2进阶实例 8---RandomNumber Generation(NS2中随机数产生)

2014-02-28 21:58 513 查看

NS2进阶实例 8---RandomNumber Generation(NS2中随机数产生)

2011-06-19 16:09:00| 分类:

NS2学习 |举报
|字号 订阅

网络仿真中有很多场景是需要随机数作为输入或控制时刻的,为此我参考了柯老师资料,学习了NS2中产生随机数的方法,并且给出我的TCL代码,方便大家学习,也方便自己以后查询,可以拿来即用!
以下只给出产生各种随机数的基本方法,至于实际场景下应该如何设置具体的参数,应该选取何种随机数,以及各种随机数本身的特性,请自行斟酌哦!
随机数:
Pareto分布;
Constant型;
Uniform分布;
Exponential分布;
HyperExponential分布;
实际上各种分布的使用是一致的,关键还是如何选取,如何设置参数, 这将在今后的博文中给出!

实例8: (RandomTest.tcl)

#参考了柯老师的资料

set rng [new RNG]

$rng seed 1 ;#seed 为 1时生成的是伪随机数;为0时,每次执行得到的数据将不一样

set nn 5 ;#设置产生随机数的个数

#Pareto分布

puts "Testing Pareto Distribution"

set r1 [new RandomVariable/Pareto]

$r1 use-rng $rng

$r1 set avg_ 10.0

$r1 set shape_ 1.2

for { set i 1} {$i<=$nn} {incr i} {

puts [$r1 value] ;#可以在命令窗口,利用 > 将产生的随机数导入到文件中存下

}

#常数分布

puts "Testing Constant Distribution"

set r2 [new RandomVariable/Constant]

$r2 use-rng $rng

$r2 set avg_ 10.0

for { set i 1} {$i<=$nn} {incr i} {

puts [$r2 value] ;#可以在命令窗口,利用 > 将产生的随机数导入到文件中存下

}

#正态分布

puts "Testing Uniform Distribution"

set r3 [new RandomVariable/Uniform]

$r3 use-rng $rng

$r3 set min_ 0.0

$r3 set max_ 10.0

for { set i 1} {$i<=$nn} {incr i} {

puts [$r3 value] ;#可以在命令窗口,利用 > 将产生的随机数导入到文件中存下

}

#Exponential分布

puts "Testing Exponential Distribution"

set r4 [new RandomVariable/Exponential]

$r4 use-rng $rng

$r4 set avg_ 5

for { set i 1} {$i<=$nn} {incr i} {

puts [$r4 value] ;#可以在命令窗口,利用 > 将产生的随机数导入到文件中存下

}

#Hyperexponential分布

puts "Testing HyperExponential Distribution"

set r5 [new RandomVariable/HyperExponential]

$r5 use-rng $rng

$r5 set avg_ 5

for { set i 1} {$i<=$nn} {incr i} {

puts [$r5 value] ;#可以在命令窗口,利用 > 将产生的随机数导入到文件中存下

}

实验结果:



[align=center] [/align]

导入到文件中:
使用命令: $ns RandomTest.tcl > RandomTest 即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: