我有一个算法可以在数组中随机选择元素t
而不重复。这是算法的更多细节
可以解释如下:
例如,我有一个数组A=[1,2,3,4,5,6,7,8,9], k=9 =size(A), N=12
(从1到9,数字只选择一次)。现在我想使用这个算法从数组A中随机选择数字T.这是我的代码。但是,它与算法中的第6行不相似。这样对吗?让我看看我的代码帮助我
function nonRepeat
k=9;
u=1:k; % initial value of index
N=12
gamma=k;
for j=1:N
index=randi(gamma,1); % use other choosing
t=u(index)
%%swapping
temp=u(t);
u(t)=u(gamma);
u(gamma)=temp;
gamma=gamma-1;
if gamma==0
gamma=k;
end
end
end
答案 0 :(得分:0)
我认为index=randi(gamma,1);
不正确,因为它会随机选择t
,但您随机选择index
并指定t=u(index)
。
看看它是否有效,
k = 9;
u = 1 : k;
N = 12;
gamma = k;
for j = 1 : N
t = randi(gamma,1);
temp = u(t);
u(t) = u(gamma);
u(gamma) = temp;
gamma = gamma - 1;
if gamma == 0
gamma = k;
end
end