create a function of Pythagorean triples
8 views (last 30 days)
Show older comments
hi. i'm trying to create a function of Pythagorean triples, i need to be able to input the sum of the sides (a,b,c) into my function and retrieve an output of all the different combinations of sides that add to that sum. i'm only just of recently learning how to use MatLab and this is driving me insane, so i came here hoping someone could point me in the right direction. any answers will help, thanks! this is what i have so far (i have no idea):
% code
function [ T ] = PTriple( x )
for a = 1:x
for b = 1:x
for c = 1:x
if c == sqrt(a^2 + b^2)
fprintf ('(%d,%d,%d)\n',a,b,c');
end
end
end
end
end
% code
0 Comments
Answers (2)
John D'Errico
on 28 Mar 2016
I know that I've seen this question before. In fact, I answered it then , and attached pythagsum.m to my answer. I had to tweak it as I recall to make sure it generated all possible solutions, but it will work as posted.
If your intent is to use a nested loop, then your loops can be made more efficient.
1. Since all triples have side lengths at least 3, start with 3, not 1.
2. No triples ever have two sides that are the same length.
3. For uniqueness, we can require that a<b<c
4. If X is the sum of the side lengths, then the smallest side length could never be larger than X/3.
5. Since you KNOW the sum, there is NO need to use a triple loop at all. A double loop will suffice.
therefore the limits for your loops might be more intelligently chosen as:
for a = 3:(X/3)
for b = (a+1):((X - a)/2)
c = X - a - b;
if (a^2 + b^2) == c^2
something like that might work.
0 Comments
Anil Badiger
on 5 Jun 2019
function flag = isRightAngled1(a,b,c)
flag = false;
m = max(max(a,b),c)
m = m*m; a = a*a; b= b*b; c = c*c;
if m == a+b
flag = true;
elseif m == b+c;
flag = true;
elseif m == c+a;
flag = true;
end
end
Use this, it might help you.
0 Comments
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!