01/10/2018, 11:23

Bài toán lớp 3 với đáp số khổng lồ

E chào ac ạ…e đang mắc 1 bài toán như này:
Tính số nghiệm của bài toán lớp 3
Với các biến a,b,c,d,e,f,g,h,i là các số nằm trong khoảng 1-9 (các biến có
thể có giá trị giống nhau), dạng biểu thức:

  a + 13 * b / c + d + 12 * e – f – 11 + g * h / i – 10 = 66

e đã thử nó bằng các vòng lặp for nhưng nó có vẻ không khả thi lắm, 9 vòng lặp lận,
a chị có cách làm hay hơn chỉ e với ạ. e cảm ơn ạ.

Nguyễn Đình Biển viết 13:33 ngày 01/10/2018

9^9~3e8 phép tính, tầm 1s thôi mà.

Trần Hoàn viết 13:34 ngày 01/10/2018

9 vòng lặp, mỗi vòng lặp 9 lần. Có đáng là bao?
Ngoài ra có thể thấy là vế trái tăng khi a, b, d, e, g, h tăng, vế trái giảm khi c, f, i tăng. Như vậy có thể giảm bớt số lần lặp của mỗi vòng bằng việc so sánh.

phamvandung viết 13:37 ngày 01/10/2018

450.000 nghiệm…có gì sai sai!

Trần Hoàn viết 13:37 ngày 01/10/2018

3359844 cách

HK boy viết 13:39 ngày 01/10/2018

9 vòng lặp lận,

Không đến mức 9 vòng lặp đâu.
Nếu / là phép chia thực, mà 13 * b / c là số nguyên, 1 <= b, c <= 9 -> b == c vì 13 nguyên tố cùng nhau với tất cả các số từ 1 đến 9.

Biểu thức trên

<-> a + 13 + d + 12 * e - f + g * h / i = 66 + 10 + 11
<-> a + d + 12 * e - f + g * h / i = 66 + 10 + 11 - 13
<-> (a + d - f + g * h / i) + 12 * e = 74

Chạy g, h, i trước, rồi mới chạy a, d, f, rồi kiểm tra e. Hoặc có thể chạy e trước với điều kiện của e: 12 * e chia hết cho 12, mà 12 * e <= 74 -> 1 <= e <= 6.

Chạy g, h, i trước:

for g in range(1, 10):
    for h in range(1, 10):
        for i in range(1, min(g * h, 9) + 1):
            if (g * h) % i == 0:
                for a...
                    for d...
                        for f...
                            twelve_e = 74 - (a + d - f + (g * h) / i)
                            if twelve_e % 12 == 0 and 12 <= twelve_e < 74:
                                print(a, b, c, d, e, f, g, h, i)  # b == c, lấy bất kì

Có 6 vòng lặp thôi chứ mấy. Thêm 1 vòng chọn 1 số b bất kì nữa là 7.

Thùy Linh viết 13:25 ngày 01/10/2018

vâng, e đã thử và cũng 9 for như này :))

Thùy Linh viết 13:30 ngày 01/10/2018

vâng, em cảm ơn ạ:))

HK boy viết 13:36 ngày 01/10/2018

Bạn nhầm rồi thì phải, đây chỉ là bài toán tìm nghiệm thôi mà? RPN đâu có tác dụng gì trong bài này?

Hà Bút viết 13:32 ngày 01/10/2018

thế chắc mình hiểu nhầm

Bài liên quan
0