How I can find a code to find (m) number form (1, n) and their sum must be different at each time.

1 vue (au cours des 30 derniers jours)
Ex : if the n = 5 and m = 4, which mean I want 4 number from (1,5) . The numbers appear are 1,2,3,4 and the sum is : 1+2=3 1+3=4 1+4=5 2+3=5 2+4=6 3+4=7 Clearly that the sum 5 is repeated so these number are rejected.

Réponse acceptée

Image Analyst
Image Analyst le 25 Sep 2021
Modifié(e) : Image Analyst le 25 Sep 2021
I know it seems obvious but did you try a simple for loop? I assume you did and got something like
n = 5;
m = 4;
numbers = linspace(1, n-1, m) % 4 numbers from 1 to m-1 (4)
for k = 1 : m
num1 = numbers(k);
for k2 = k+1 : m
num2 = numbers(k2);
fprintf('%.1f + %.1f = %f\n', num1, num2, num1+num2);
end
end
numbers =
1 2 3 4
1.0 + 2.0 = 3.000000
1.0 + 3.0 = 4.000000
1.0 + 4.0 = 5.000000
2.0 + 3.0 = 5.000000
2.0 + 4.0 = 6.000000
3.0 + 4.0 = 7.000000
but I'm wondering why this was no good. Did you need something more "sophisticated" for some reason?
  20 commentaires
Image Analyst
Image Analyst le 26 Sep 2021
Modifié(e) : Image Analyst le 26 Sep 2021
Again, you can call round(). But you must realize that you cannot divide a range of n long into m segments without the segments being fractional, except for certain special cases. Like I said:
n = 5;
m = 4;
numbers = linspace(1, n, m)
numbers = 1×4
1.0000 2.3333 3.6667 5.0000
numbers = unique(round(linspace(1, n, m)))
numbers = 1×4
1 2 4 5

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by