我想随机产生一组1~100的整数。排序整数后,每个整数之间的最小间隔不应小于2.例如
2,4,8,10
满足要求,而以下设置
2,4,5,7
不会,因为4到5之间的间隔小于2。 有没有办法实现这个目标?谢谢!
答案 0 :(得分:4)
N = 10; % number of integers required
delta = 2; % minimum difference required
a = randperm(100);
idx = 1;
b = a(idx);
while(length(b) < N && idx < length(a))
idx = idx+1;
c = abs(b - a(idx));
if any(c < delta)
continue;
end
b = [b; a(idx)];
end
b