转载 点击打开链接
//代码实现
dbTemp=rnd(0.0,dbTotal); //取一个随机数
这种算法是将随机产生的值dbTemp依次对每个城市被选中的概率做减法,减到第i个城市即相当于上述网页中提到的随机值处在第i-1个城市和第i个城市之间。假设随机值得产生是没有任何规律的,那么被选中概率大的城市,即该城市与上一个城市之间的累积和也较大,被命中的概率也较大。简而言之,这个选择过程就相当于转一个有刻度的轮盘,虽然是随机的,但是也考虑到每一块命中的概率问题。