Bài này làm lâu rồi, hôm nay thấy nên khui lại.
Đề: Tìm bộ ba a, b, c thỏa mãn a^2+b^2=c^2, đồng thời a+b+c=X.
Mình dùng phương pháp bộ 3 số pytago tổng quát. Trong bài này thì mình sẽ lấy X=1000:D.
Công thức sau tổng quát tất cả các bộ ba số Pythagoras (không đơn trị):
a = k*(2mn)
b = k*(m2 - n2)
c = k*(m2 + n2)
trong đó m và n là hai số nguyên dương với m > n và k là số nguyên dương tùy ý.
ok, a+b+c=1000 <=> k*(2mn+2m2) = 1000 <=> k*m*(m+n)=500 (*)
Mà các số k,m,n là các số nguyên dương vậy số 1000/2 phải có ít nhất 2 ước số (k có thể bằng 1). Cách này có thể dùng để kiểm tra bài toán có nghiệm hay không với mỗi X.
Để tìm nghiệm nhanh hơn thì mình sẽ dùng ước số của 500 để chọn nhanh hơn.
Ta có 500=2.2.5.5.5 có 5 nhân tử. trong (*) ta nhận thấy có 3 thành phần là k,m và (m+n). Vậy thì có bao nhiêu cách chia 5 phần tử 2,2,5,5,5 thành 3 nhóm. Ta có thể chia 1-1-3,1-2-2, và các hoán vị.
Không có nhận xét nào:
Đăng nhận xét