1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
Vector = bsxfun(@minus,P(:,1:3),Origine);
Normes = sqrt(sum(Vector.^2, 2));
[best_ways(1),idx(1)] = min(Normes);
Normes(idx(1)) = inf;
[best_ways(2),idx(2)] = min(Normes);
P(idx(1),4) = 1;
P(idx(2),4) = 1;
planete_visitee(1,:) = P(idx(1),:);
planete_visitee(2,:) = P(idx(2),:);
P(idx(1),:) = P(1,:);
P(idx(2),:) = P(2,:);
P(1,:) = planete_visitee(1,:);
P(2,:) = planete_visitee(2,:);
Planetes_visitees = [P(1,:);P(2,:)];
if all(Planetes_visitees(1,1:3)) == all(Terre(1,1:3)) || all(Planetes_visitees(2,1:3)) == all(Terre(1,1:3))
Terre_trouvee = true;
end
exposant = zeros(1,100);
exposant(1) = 2;
for i = 2:length(exposant)
exposant(i) = exposant(i-1)*2;
end
j = 1;
k = 3;
l = 1;
while Terre_trouvee == false
for i = 1:exposant(j)
Vector = zeros(Indices(N),3);
Vector(k:end,1) = P(exposant(j)+(k - exposant(j)):end,1) - P(l,1);
Vector(k:end,2) = P(exposant(j)+(k - exposant(j)):end,2) - P(l,2);
Vector(k:end,3) = P(exposant(j)+(k - exposant(j)):end,3) - P(l,3);
Normes = sqrt(sum(Vector.^2, 2));
[best_ways(1),idx(1)] = min(Normes(k:end));
idx(1) = idx(1) + (k-1);
Normes(idx(1)) = inf;
[best_ways(2),idx(2)] = min(Normes(k:end));
idx(2) = idx(2) + (k-1);
P(idx(1),4) = 1;
P(idx(2),4) = 1;
planete_visitee(1,:) = P(idx(1),:);
planete_visitee(2,:) = P(idx(2),:);
P(idx(1),:) = P(k,:);
P(idx(2),:) = P(k+1,:);
P(k,:) = planete_visitee(1,:);
P(k+1,:) = planete_visitee(2,:);
Planetes_visitees = [Planetes_visitees;P(k,:);P(k+1,:)];
if all(P(k,1:3)) == all(Terre(1,1:3)) || all(P(k+1,1:3)) == all(Terre(1,1:3))
Terre_trouvee = true;
break;
end
k = k+2;
l = l+1;
end
j = j+1;
end |
Partager