Creating a script that finds all triple of the Pythagorean theorem.
35 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
John BG
il 17 Mar 2016
Modificato: Jan
il 27 Dic 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 Commenti
Jos (10584)
il 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
il 27 Dic 2017
A bit of a travesty to have an accepted answer on a question where nothing useful was provided.
Più risposte (1)
Jos (10584)
il 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 Commenti
Vedere anche
Categorie
Scopri di più su Fixed-Point Designer in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!