Creating a script that finds all triple of the Pythagorean theorem.
35 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I'm new to Matlab, and completely stuck on this one. I'm supposed to generate a script that finds all combinations of the Pythagorean triples with integers <= 50. I got most of the way there, but I can't figure out out to get rid of the repeating numbers. Here's what I have.
n=1;
for a_ = 1:50
for b_ = 1:50
c_=sqrt(a_^2+b_^2);
if c_==round(c_)
if c_<=50
a(n)=a_;
b(n)=b_;
c(n)=c_;
n=n+1;
end
end
clear c_
end
end
Pyth=[a',b',c'];
disp(Pyth)
2 commentaires
Réponse acceptée
John BG
le 17 Mar 2016
Modifié(e) : Jan
le 27 Déc 2017
Alec
use the very useful function combinator, available from MATLAB CENTRAL, i copy it here at the end of my answer.
Pytha_triple=uint64(combinator(50,3,'p','r'))
=
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
...
50 50 45
50 50 46
50 50 47
50 50 48
50 50 49
50 50 50
If you find this answer of any help solving your question, please click on the thumbs-up vote link,
thanks in advance
John
2 commentaires
Jos (10584)
le 28 Nov 2017
This merely shows the combinations of three integers from 1 to 50, not only Pythagorean integer triplets,like [3 4 5].
John D'Errico
le 27 Déc 2017
A bit of a travesty to have an accepted answer on a question where nothing useful was provided.
Plus de réponses (1)
Jos (10584)
le 28 Nov 2017
ab = nchoosek(1:50,2) ; % all unique combinations of values
c = sqrt(sum(ab.^2,2)) ; % hypothenuse
tf = c == fix(c) & c <= 50 ; % check for integer and limits
PythgoreanIntegerTriplets = [ab(tf,:) c(tf)]
0 commentaires
Voir également
Catégories
En savoir plus sur Fixed-Point Designer 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!