Creating a script that finds all triple of the Pythagorean theorem.
36 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alec Baird
el 17 de Mzo. de 2016
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 comentarios
Respuesta aceptada
John BG
el 17 de Mzo. de 2016
Editada: Jan
el 27 de Dic. de 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 comentarios
Jos (10584)
el 28 de Nov. de 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
el 27 de Dic. de 2017
A bit of a travesty to have an accepted answer on a question where nothing useful was provided.
Más respuestas (1)
Jos (10584)
el 28 de Nov. de 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 comentarios
Ver también
Categorías
Más información sobre Fixed-Point Designer en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!