Trong bài toán này, chúng ta được cho hai số và chúng ta cần tìm tích của các số đó bằng cách sử dụng bốn phương diện tích bình phương của Euler.
Bản sắc bốn hình vuông của Euler là phương pháp để tìm tích của hai số có thể được biểu diễn bằng tổng của bốn hình vuông của số nếu các số có thể được biểu diễn dưới dạng tổng của bốn hình vuông.
Tích a * b có thể được biểu diễn dưới dạng tổng của bốn hình vuông nếu
a =x1
2
+ x2
2
+ x3
2
+ x4
2
b =y1
2
+ y2
2
+ y3
2
+ y4
2
a * b =z1
2
+ z2
2
+ z3
2
+ z4
2
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào:
a =54 =2 * 2 + 3 * 3 + 4 * 4 + 5 * 5
b =10 =1 * 1 + 2 * 2 + 1 * 1 + 2 * 2
Đầu ra: 1 * 1 + 1 * 1 + 3 * 3 + 23 * 23
Giải thích:
Tích của a và b =540,
có thể được biểu diễn theo nhiều cách. Chúng tôi sẽ xem xét một giải pháp ở đây,
540 =1 * 1 + 1 * 1 + 3 * 3 + 23 * 23 =1 + 1 + 9 + 529
Phương pháp tiếp cận Giải pháp -
Một giải pháp đơn giản cho vấn đề này là sử dụng phương pháp thử để thử từng tổ hợp bốn ô vuông để giải quyết vấn đề. Đối với điều này, chúng tôi sẽ sử dụng các vòng lặp lồng nhau, một vòng lặp lồng nhau cho mỗi giá trị bình phương. Và sau đó tìm giá trị được tính toán và in tất cả các kết hợp có thể có của biểu diễn tổng.
Giải pháp này hơi phức tạp và thời gian phức tạp theo thứ tự
O ((a * b)
4
).
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
Ví dụ
#includeusing namespace std; void findEulerSquareNumberValue (int a, int b) {int prod =a * b; int sumSquare =0; for (int x =0; x <=sqrt (prod); x ++) {for (int y =x; y <=sqrt (prod); y ++) {for (int z =y; z <=sqrt (prod); z ++) {for (int k =z; k <=sqrt (prod); k ++) {sumSquare =(x * x) + (y * y) + (z * z) + (k * k); if (sumSquare ==prod) {cout <<"Sản phẩm" < Đầu ra -
a =(2 * 2) + (3 * 3) + (4 * 4) + (5 * 5) =54b =(1 * 1) + (2 * 2) + (1 * 1) + ( 2 * 2) =10 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 1 * 1 + 3 * 3 + 23 * 23 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 3 * 3 + 13 * 13 + 19 * 19 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 5 * 5 + 15 * 15 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 7 * 7 + 7 * 7 + 21 * 21 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 9 * 9 + 13 * 13 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 4 * 4 + 6 * 6 + 22 * 22 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 4 * 4 + 14 * 14 + 18 * 18 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 6 * 6 + 10 * 10 + 20 * 20 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 12 * 12 + 14 * 14 + 14 * 14 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 3 * 3 + 9 * 9 + 21 * 21 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 7 * 7 + 11 * 11 + 19 * 19 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 9 * 9 + 15 * 15 + 15 * 15 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 11 * 11 + 11 * 11 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị dưới dạng 4 * 4 + 10 * 10 + 10 * 10 + 18 * 18 Sản phẩm 54 * 10 =540 r được biểu thị là 5 * 5 + 5 * 5 + 7 * 7 + 21 * 21 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 11 * 11 + 13 * 13 + 15 * 15 Sản phẩm 54 * 10 =540 được biểu thị là 6 * 6 + 6 * 6 + 12 * 12 + 18 * 18 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 7 * 7 + 9 * 9 + 19 * 19 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 9 * 9 + 11 * 11 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị là 9 * 9 + 11 * 11 + 13 * 13 + 13 * 13 Sản phẩm 54 * 10 =540 được biểu thị là 10 * 10 + 10 * 10 + 12 * 12 + 14 * 14Khác Phương pháp để giải quyết vấn đề với thời gian ít phức tạp hơn là sử dụng ba vòng lặp lồng nhau và kiểm tra giá trị thứ tư, nếu số còn lại là bình phương hoàn hảo thì giá trị căn là số thứ tư nếu không thì không thể giải được. Phương pháp này có thể sẽ loại bỏ vòng lặp thứ tư và làm cho giải pháp hiệu quả.
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
Ví dụ
#includeusing namespace std; void findEulerSquareNumberValue (int a, int b) {int prod =a * b; int sumSquare =0; for (int x =0; x <=sqrt (prod); x ++) {for (int y =x; y <=sqrt (prod); y ++) {for (int z =y; z <=sqrt (prod); z ++) {sumSquare =(x * x) + (y * y) + (z * z); float k =sqrt (prod - sumSquare); if (floor (k) ==ceil (k)) {cout <<"Sản phẩm" < Đầu ra -
a =(2 * 2) + (3 * 3) + (4 * 4) + (5 * 5) =54b =(1 * 1) + (2 * 2) + (1 * 1) + ( 2 * 2) =10 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 1 * 1 + 3 * 3 + 23 * 23 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 1 * 1 + 23 * 23 + 3 * 3 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 3 * 3 + 13 * 13 + 19 * 19 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 3 * 3 + 19 * 19 + 13 * 13 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 3 * 3 + 23 * 23 + 1 * 1 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 5 * 5 + 15 * 15 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 5 * 5 + 17 * 17 + 15 * 15 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 7 * 7 + 7 * 7 + 21 * 21 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 7 * 7 + 21 * 21 + 7 * 7 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 9 * 9 + 13 * 13 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 9 * 9 + 17 * 17 + 13 * 13 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 13 * 13 + 17 * 17 + 9 * 9 Sản phẩm 54 * 10 =540 được biểu thị là 1 * 1 + 13 * 13 + 19 * 19 + 3 * 3 Sản phẩm 54 * 10 =540 đại diện là 1 * 1 + 15 * 15 + 17 * 17 + 5 * 5 Sản phẩm 54 * 10 =540 đại diện ed dưới dạng 2 * 2 + 4 * 4 + 6 * 6 + 22 * 22 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 4 * 4 + 14 * 14 + 18 * 18 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 4 * 4 + 18 * 18 + 14 * 14 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 4 * 4 + 22 * 22 + 6 * 6 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 6 * 6 + 10 * 10 + 20 * 20 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 6 * 6 + 20 * 20 + 10 * 10 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 6 * 6 + 22 * 22 + 4 * 4 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 10 * 10 + 20 * 20 + 6 * 6 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 12 * 12 + 14 * 14 + 14 * 14 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 14 * 14 + 14 * 14 + 12 * 12 Sản phẩm 54 * 10 =540 được biểu thị là 2 * 2 + 14 * 14 + 18 * 18 + 4 * 4 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 3 * 3 + 9 * 9 + 21 * 21 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 3 * 3 + 21 * 21 + 9 * 9 Sản phẩm 54 * 10 =540 được biểu thị dưới dạng 3 * 3 + 7 * 7 + 11 * 11 + 19 * 19 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 7 * 7 + 19 * 19 + 11 * 11 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 9 * 9 + 15 * 15 + 15 * 15 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 9 * 9 + 21 * 21 + 3 * 3 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 11 * 11 + 11 * 11 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị dưới dạng 3 * 3 + 11 * 11 + 17 * 17 + 11 * 11 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 11 * 11 + 19 * 19 + 7 * 7 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 13 * 13 + 19 * 19 + 1 * 1 Sản phẩm 54 * 10 =540 được biểu thị là 3 * 3 + 15 * 15 + 15 * 15 + 9 * 9 Sản phẩm 54 * 10 =540 được biểu thị là 4 * 4 + 6 * 6 + 22 * 22 + 2 * 2 Sản phẩm 54 * 10 =540 được biểu thị là 4 * 4 + 10 * 10 + 10 * 10 + 18 * 18 Sản phẩm 54 * 10 =540 được biểu thị là 4 * 4 + 10 * 10 + 18 * 18 + 10 * 10 Sản phẩm 54 * 10 =540 được biểu thị là 4 * 4 + 14 * 14 + 18 * 18 + 2 * 2 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 5 * 5 + 7 * 7 + 21 * 21 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 5 * 5 + 21 * 21 + 7 * 7 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 7 * 7 + 21 * 21 + 5 * 5 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 11 * 11 + 13 * 13 + 15 * 15 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 11 * 11 + 15 * 15 + 13 * 13 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 13 * 13 + 15 * 15 + 11 * 11 Sản phẩm 54 * 10 =540 được biểu thị là 5 * 5 + 15 * 15 + 17 * 17 + 1 * 1 Sản phẩm 54 * 10 =540 được biểu thị là 6 * 6 + 6 * 6 + 12 * 12 + 18 * 18 Sản phẩm 54 * 10 =540 được biểu thị là 6 * 6 + 6 * 6 + 18 * 18 + 12 * 12 Sản phẩm 54 * 10 =540 được biểu thị là 6 * 6 + 10 * 10 + 20 * 20 + 2 * 2 Sản phẩm 54 * 10 =540 được biểu thị là 6 * 6 + 12 * 12 + 18 * 18 + 6 * 6 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 7 * 7 + 9 * 9 + 19 * 19 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 7 * 7 + 19 * 19 + 9 * 9 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 7 * 7 + 21 * 21 + 1 * 1 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 9 * 9 + 11 * 11 + 17 * 17 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 9 * 9 + 17 * 17 + 11 * 11 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 9 * 9 + 19 * 19 + 7 * 7 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 11 * 11 + 17 * 17 + 9 * 9 Sản phẩm 54 * 10 =540 được biểu thị là 7 * 7 + 11 * 11 + 19 * 19 + 3 * 3 Sản phẩm 54 * 10 =540 được biểu thị là 9 * 9 + 11 * 11 + 13 * 13 + 13 * 13 Sản phẩm 54 * 10 =540 được biểu thị là 9 * 9 + 11 * 11 + 17 * 17 + 7 * 7Sản phẩm 54 * 10 =540 đại diện ed là 9 * 9 + 13 * 13 + 13 * 13 + 11 * 11 Sản phẩm 54 * 10 =540 được biểu thị là 9 * 9 + 13 * 13 + 17 * 17 + 1 * 1 Sản phẩm 54 * 10 =540 được biểu thị là 9 * 9 + 15 * 15 + 15 * 15 + 3 * 3 Sản phẩm 54 * 10 =540 được biểu thị là 10 * 10 + 10 * 10 + 12 * 12 + 14 * 14 Sản phẩm 54 * 10 =540 được biểu thị là 10 * 10 + 10 * 10 + 14 * 14 + 12 * 12 Sản phẩm 54 * 10 =540 được biểu thị là 10 * 10 + 10 * 10 + 18 * 18 + 4 * 4 Sản phẩm 54 * 10 =540 được biểu thị là 10 * 10 + 12 * 12 + 14 * 14 + 10 * 10 Sản phẩm 54 * 10 =540 được biểu thị là 11 * 11 + 11 * 11 + 17 * 17 + 3 * 3 Sản phẩm 54 * 10 =540 được biểu thị là 11 * 11 + 13 * 13 + 13 * 13 + 9 * 9 Sản phẩm 54 * 10 =540 được biểu thị là 11 * 11 + 13 * 13 + 15 * 15 + 5 * 5 Sản phẩm 54 * 10 =540 được biểu thị là 12 * 12 + 14 * 14 + 14 * 14 + 2 * 2