Hướng dẫn how to check pythagorean triples in python - cách kiểm tra bộ ba pythagore trong trăn
Tôi cần một chương trình cho phép ba số được nhập và đầu ra nếu chúng có thể tạo thành một bộ ba Pythagore (ví dụ: a^2 + b^2 = c^2 / hoặc / 3^2 + 4^2 = 5^). Show
Tôi có một giải pháp, nhưng tôi cảm thấy như nó thực sự không hiệu quả và tôi đã tự hỏi nếu có một giải pháp ngắn hơn, tốt hơn có sẵn? Giải pháp của tôi cho đến nay:
Vân vân..
Đã hỏi ngày 12 tháng 3 năm 2017 lúc 20:31Mar 12, 2017 at 20:31
3 Chỉ cần sắp xếp
Đã trả lời ngày 12 tháng 3 năm 2017 lúc 20:41Mar 12, 2017 at 20:41
MaratmaratMarat 14.2k2 Huy hiệu vàng37 Huy hiệu bạc45 Huy hiệu đồng2 gold badges37 silver badges45 bronze badges Một bộ ba Pythagore là một tập hợp ba số nguyên dương A, B và C sao cho A2 + B2 = C2. Đưa ra một giới hạn, tạo ra tất cả các bộ ba Pythagore với các giá trị nhỏ hơn giới hạn đã cho. Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 20 Một giải pháp đơn giản là tạo ra các bộ ba này nhỏ hơn giới hạn được cho bằng cách sử dụng ba vòng lồng nhau. Đối với mỗi bộ ba, hãy kiểm tra xem điều kiện Pythagore có đúng không, nếu đúng, sau đó in bộ ba. Độ phức tạp thời gian của giải pháp này là O (giới hạn3) trong đó ‘giới hạn được đưa ra giới hạn.Simple Solution is to generate these triplets smaller than given limit using three nested loop. For every triplet, check if Pythagorean condition is true, if true, then print the triplet. Time complexity of this solution is O(limit3) where ‘limit’ is given limit. Một giải pháp hiệu quả có thể in tất cả các bộ ba trong thời gian O (k) trong đó k là số lượng ba bản in. Ý tưởng là sử dụng mối quan hệ tổng vuông của bộ ba Pythagore, tức là, việc bổ sung các hình vuông của A và B bằng với bình phương C, chúng ta có thể viết số này theo m và n sao cho, & nbsp; & nbsp;Efficient Solution can print all triplets in O(k) time where k is number of triplets printed. The idea is to use square sum relation of Pythagorean triplet, i.e., addition of squares of a and b is equal to square of c, we can write these number in terms of m and n such that, a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n2 Chúng ta có thể thấy rằng A2 + B2 = C2, vì vậy thay vì lặp lại cho A, B và C, chúng ta có thể lặp lại cho M và N và có thể tạo các bộ ba này. & NBSP; Dưới đây là việc thực hiện ý tưởng trên: & nbsp; & nbsp; C++
0 1 2int 4 2int 7 2 9 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 200 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 203 int Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 205 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 207 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 209 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n21 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n24 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n26 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n29 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 203 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 23 4 5 8 6 10 5 12 13 15 8 17 12 16 204 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204
1 2int nums 5 2nums 7 2nums 9 #include 03 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Java
2#include 9 void pythagoreanTriplets( int 0 2 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int void 8void 9a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int pythagoreanTriplets( 3pythagoreanTriplets( 4a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 9 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 200 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 203 int int 3int 4int 5a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 207 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 int 9pythagoreanTriplets( 4 01a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n21 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n24 07a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n26 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 11 12 13 12 15Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 23 4 5 8 6 10 5 12 13 15 8 17 12 16 204 2 25 #include 9 void 28 2 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int 33 34a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 nums 7 23 4 5 8 6 10 5 12 13 15 8 17 12 16 204 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Python3 41 42 2 44 45 void 9 47pythagoreanTriplets( 4 2 9 51Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 54 55 56Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 203 int 4 59Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 61 45 63 64 63 66 54__Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 71 45 pythagoreanTriplets( 4 64 63 64 69Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 79 45 63 64 63 84 54__Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 90a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n26 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 94 95Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 63 45 63 84 int 4a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2003 45 45 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2006 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2007 2Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2009 45 34 2Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2013 C#Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2014 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2015
2#include 9 void pythagoreanTriplets( int 0 2 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int void 8void 9a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int pythagoreanTriplets( 3pythagoreanTriplets( 4a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 9 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 200 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 203 int int 3int 4int 5Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 1a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 207 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 209 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n21 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n24 07a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n26 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2055 12a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 11 12 13 12 15Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 2 25 #include 9 void 28 23 4 5 8 6 10 5 12 13 15 8 17 12 16 204 2 1 2 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int 33 34a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 nums 7 23 4 5 8 6 10 5 12 13 15 8 17 12 16 204 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 nums.sort() # now nums[2] is the largest element if ((nums[0] ** 2) + (nums[1] ** 2) == (nums[2] ** 2)): print "It is" # or whatever # no more checks needed 41 nums.sort() # now nums[2] is the largest element if ((nums[0] ** 2) + (nums[1] ** 2) == (nums[2] ** 2)): print "It is" # or whatever # no more checks needed 42Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2084 2 44 45 void 9 47pythagoreanTriplets( 4 1 2Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2091 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 2Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2094 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 2Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2097 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2098 2 9 51Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 54 55 56Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 203 int 4 59
2 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 61 45 63 64 63 66 54__Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 71 45 pythagoreanTriplets( 4 64 63 64 69Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 79 45 63 64 63 84 54__Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 90Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 63 45 63 84 int 4a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2003 45 45 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2006 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2007 2Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2009 45 34Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n200 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n281 23 4 5 8 6 10 5 12 13 15 8 17 12 16 204 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2014 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2015 2pythagoreanTriplets( Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2087 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n291 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n292 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201int nums.sort() # now nums[2] is the largest element if ((nums[0] ** 2) + (nums[1] ** 2) == (nums[2] ** 2)): print "It is" # or whatever # no more checks needed 4a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n293 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int 7 1 2a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n298 23 4 5 8 6 10 5 12 13 15 8 17 12 16 2000 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 203 int Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2039 2 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 202 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2008 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 1Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 207 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 209 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n21 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n23 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n24 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n25 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n26 a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 int 33 34a = m2 - n2 b = 2 * m * n c = m2 + n2 because, a2 = m4 + n4 – 2 * m2 * n2 b2 = 4 * m2 * n2 c2 = m4 + n4 + 2* m2 * n27 41 42Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 Input : limit = 20 Output : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 201 3 4 5 8 6 10 5 12 13 15 8 17 12 16 206 23 4 5 8 6 10 5 12 13 15 8 17 12 16 204 3 4 5 8 6 10 5 12 13 15 8 17 12 16 204 3 4 5 8 6 10 5 12 13 15 8 17 12 16 2039
3 4 5 8 6 10 5 12 13 15 8 17 12 16 2041 Đầu ra 3 4 5 8 6 10 5 12 13 15 8 17 12 16 20 Độ phức tạp về thời gian của phương pháp này là O (k) trong đó k là số lượng ba lần được in cho một giới hạn nhất định (chúng tôi chỉ lặp cho M và N và mọi lần lặp lại đều in một bộ ba) biến of this approach is O(k) where k is number of triplets printed for a given limit (We iterate for m and n only and every iteration prints a triplet) Lưu ý: Phương pháp trên không tạo ra tất cả các bộ ba nhỏ hơn một giới hạn nhất định. Ví dụ: 9 12 12 15, đó là bộ ba hợp lệ không được in bằng phương pháp trên. Cảm ơn Sid Agrawal đã chỉ ra điều này. The above method doesn’t generate all triplets smaller than a given limit. For example “9 12 15” which is a valid triplet is not printed by above method. Thanks to Sid Agrawal for pointing this out. Bài viết này được đóng góp bởi Utkarsh Trivingi. Vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác, hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên.Utkarsh Trivedi. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. Làm thế nào để bạn kiểm tra xem đó có phải là bộ ba Pythagore không?Đưa ra một mảng các số nguyên, hãy viết một hàm trả về đúng nếu có một bộ ba (A, B, C) thỏa mãn A2 + B2 = C2.Có một bộ ba Pythagore (3, 4, 5).Không có bộ ba Pythagore.write a function that returns true if there is a triplet (a, b, c) that satisfies a2 + b2 = c2. There is a Pythagorean triplet (3, 4, 5). There is no Pythagorean triplet.
Triplet Python Pythagore là gì?Một bộ ba Pythagore là một tập hợp ba số tự nhiên, {a, b, c}, trong đó, a² + b² = c² và như vậy, a a set of three natural numbers, {a, b, c}, for which, a² + b² = c² and such that, a < b < c. For example, 3² + 4² = 9 + 16 = 25 = 5².
Làm thế nào để bạn tìm thấy bộ ba Pythagore của một số?Làm thế nào để tạo thành một bộ ba Pythagore.. Nếu số là lẻ: vuông số n và sau đó chia cho nó 2. lấy số nguyên ngay trước và sau số đó, tức là (n2/2 -0.5) và (n2/2 +0.5)..... Nếu số chẵn: lấy một nửa số N đó và sau đó vuông nó.Triplet Pythagore = N, (n/2) 2-1, (n/2) 2+1 .. |