Message Boards Message Boards

0
|
5678 Views
|
5 Replies
|
2 Total Likes
View groups...
Share
Share this post:

How do I cross reference a set of rules against pythagorean triples?

Posted 9 years ago

I used the following code to generate a list of pythagorean triples followed by the difference of a and b:

Do[Print[m^2 - n^2, ",", 2 m n, ",", m^2 + n^2, ";", 
  m^2 - n^2 - 2 m n], {n, 100}, {m, n + 1, 100}]

I want to be able to check if a certain list of rules apply to any four sets of triples. For example to generate a list of triples of which a^2+b^2=c^2 applies, which would be all of them, except I have a series of rules of all which would need to be met to qualify. I have no clue as to how to do this. If more information is required, demand and I will supply. (Note that if required, I do have excel available if I need to import it into a table & that I am an absolute newbie to mathematica)

Thanks in advance!

Update:

The rules are the following:

a12+b12=c12

a22+b22=c22

a32+b32=c32

a42+b42=c42

a1=b4

b1=a2

b2=a3

b3=a4

a1+b2=L

b1+a4=L

a2+b3=L

a3+b4=L

When all values for a, b, c, and L are whole numbers. Obviously we’re using m & n to determine the triplets and not a, b, and c, but do I need to define a, b & c from the table? What you gave me is really helpful, but I don’t know how to test with different triples simultaneously. Sorry if I’m incoherent. Thanks once again!

P.S.

the last four equations/rules just want to determine that a+b is an integer, otherwise L doesn’t matter

Here I make an array (still have zeros, haven't thought a way around that for this one yet):

PythagArrayAn = Array[
  If[#3 == 1, 1, 0] (#1^2 - #2^2) +
    If[#3 == 2, 1, 0] (2 #1 #2) +
    If[#3 == 3, 1, 0] (#1^2 + #2^2) + 
    If[#3 == 4, 1, 0] (#1^2 - #2^2 - 2 #1 #2)
   &, {10, 10, 4}, 1]
(*Pardon The Pun*)

Here is the code that was generously given by Sean Clarke (I only added in Abs[ ] aka absolute value to find the distance between a & b):

    generateValues[m_, n_] := {m^2 - n^2, 2 m n, m^2 + n^2, 
       Abs[m^2 - n^2 - 2 m n]};
    Table[generateValues[m , n], {n, 1, 20}, {m, n + 1, 20}] 
(*Makes a table of generated pythagorean triplets*)

and

    isItPythagorean[list_] := (list[[1]]^2 + list[[2]]^2 == list[[3]]^2);
    Table[isItPythagorean[generateValues[m, n]], {n, 1, 20}, {m, n + 1, 
      20}] 
(*This simply is testing if it is pythagorean or not as an example as how one might test if a rule applies. Thanks Sean!*)
POSTED BY: Jeffery Cole
5 Replies
Posted 9 years ago
POSTED BY: Paul Cleary
Posted 9 years ago
POSTED BY: Updating Name
POSTED BY: Jeffery Cole
POSTED BY: Sean Clarke

Thank You Soo Much! You have been extremely helpful. :-)

However the rules that I am using are to find multiple triplets (Sorry for not being clear enough in the original post).

The rules are the following:

a12+b12=c12

a22+b22=c22

a32+b32=c32

a42+b42=c42

a1=b4

b1=a2

b2=a3

b3=a4

a1+b2=L

b1+a4=L

a2+b3=L

a3+b4=L

When all values for a, b, c, and L are whole numbers. Obviously we’re using m & n to determine the triplets and not a, b, and c, but do I need to define a, b & c from the table? What you gave me is really helpful, but I don’t know how to test with different triples simultaneously. Sorry if I’m incoherent. Thanks once again!

p.s.

the last four equations just want to determine that a+b is an integer, otherwise L doesn’t matter

POSTED BY: Jeffery Cole
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract