关于Matlab函数定义的问题

img


这里有关于matlab轮盘赌的问题,像向大家资讯一下意见,关于如何定义该方程函数等。

我可以给出一个简单的轮盘赌函数的定义,代码如下:

function out = roulette(array) % 轮盘赌函数 % 输入一个数组,输出数组中元素被选中的概率与元素大小成正比 % 输出数组中选中的位置 n = length(array); sum_array = sum(array); p = array / sum_array; % 归一化 cp = cumsum(p); % 累计概率 r = rand; % 随机数 for i = 1:n if cp(i) >= r out = i; break; end end end

该函数的输入是一个数组,输出是数组中元素被选中的概率与元素大小成正比,输出数组中选中的位置。函数先将输入数组归一化,然后计算累计概率。接着生成一个随机数,根据随机数与各个元素的累计概率之间的大小关系来选定输出位置。