PDA

View Full Version : Xin hỏi thuật toán đổ nước khi có các bình có dung lượng xác định



Kijuto Riddle
15-10-2004, 10:12
Thuật toàn nào để giải bài toàn đổ nước đạt được một dung lượng nhất định khi cho các bình có dung lượng cho trước. Ai đó giúp tui với, chỉ cần một cái tên thôi là được, cả tên tiếng Việt lẫn Anh thì quá tốt.

tumickey
15-10-2004, 10:15
hè trong pcworld có đó tìm lại trong cách số năm 2004 là có .tui nhớ là dùng thuật toán bàn bida hình bình hành thì phải

Kijuto Riddle
16-10-2004, 10:16
Xin các bạn, chỉ một cái tên thôi! Tôi biết tìm ở PC world nào cơ chứ!

tinhthl
22-10-2004, 17:21
cuốn "giải 1 bài toán như thế nào" của GSTS Hoàng Kiếm (cuốn 1) có thuật toán rất đơn giản.

Samir Duran
29-10-2004, 18:03
Đúng là có thể giải - bằng tay - bài toán đong sữa với các bình có dung lượng cho trước bằng thuật toán "bắn bida". :D Tuy nhiên em không biết có thể chuyển nó thành đại số để lập trình hay không vì quyết định quỹ đạo phản xạ của hòn bi thì phức tạp (có lẽ mình tạo ma trận tọa độ Decac rồi tính vị trí phản xạ của nó - nhưng phê lắm). Nếu anh Kijuto Riddle muốn tìm hiểu thêm về nó thì nói em biết nhé :D.

cntt19001570
31-10-2004, 16:19
tìm kiếm sâu, rộng

hello_pn
09-11-2004, 10:13
Hic ! sao hổng ai trả lời rõ ràng hết vậy ? tui cung đang bí bài này nè ....

Rikku
09-11-2004, 17:55
Tui không biết Bida Bidiếc gì hết, nhưng lúc lam bài dạng này thầy tui đều bảo dùng BrFS, duyệt mọi trường hợp có thể xảy ra, thêm chút cận..., tui nhớ trong 1 quyển toán nào đó (quên tên rồi) có nói tới 2 cách để giải bài này cũng đều là duyệt cả.

hello_pn
12-11-2004, 10:40
Hình như là dùng thuật toán vét cạn , sử dụng danh sách liên kết đơnm duyệt mọi trường hợp xảy ra như Rikku đã nói đó

thanhck
15-11-2004, 10:24
mấy anh có thể giải bài đó dùm em được không? mà dùng danh sách liên kkết nhen viết bằng vc++ nhen thanhk!

Rikku
15-11-2004, 18:35
Chỉ nói giải thuật thôi, code thì bạn phải tự luyện cho có kinh nghiệm chứ.

hello_pn
20-11-2004, 12:56
Đúng rồi! chỉ nói thuật toán thôi chứ giải hết bài thì lập trình không thể khá lên được đâu

bichduyen_nt
22-11-2004, 17:26
Chỉ nói giải thuật thôi, code thì bạn phải tự luyện cho có kinh nghiệm chứ.
Giải thuật cũng được mà, bạn có không?, cho mình xin đi

Naughty_boy9x
18-05-2008, 09:38
Nếu em không nhần thì có 3 luật để giải bài toán loại này (đọc ở đâu ý, không nhớ nữa T_T)
Giả sử bình 1 có thể tích nhỏ hơn bình 2
1- Nếu bình 2 rỗng (y=0) thì đổ đầy nước cho bình 2
2- Nếu bình 1 có đầy nước (x=V1) thì đổ hết nước ở bình 1 này đi
3- Nếu bình 2 không rỗng (y>0) thì đổ nước từ bình 2 sang bình 1 cho đến khi bình 2 hết nước hoặc bình 1 đầy.
Làm theo 3 cái luật này là ra ^_^

Vd: Cho 2 bình thể tích là 3 lit và 4 lit. Cần lấy 2 lit sau 1 số lần đong.
Dùng vòng lặp điều kiện để vòng lặp dừng lại là (x=2) or (y=2)
Lúc đầu có lượng nước bình 1 là 0 (x=0), lượng nước bình 2 cũng là 0 (y=0)
y=0 => theo 1 thì phải đổ đầy nước vào bình này => y=Vy hay y=4
>> x=0, y=4
Lúc này y=4 > 0 => theo 3 ta sẽ đổ nước và được
>> x=3, y=1
Lần này bình 1 có x=Vx hay bình 1 đầy nước, theo 2 ta được
>> x=0, y=1
Tiếp theo lại theo 3 có
>> x=1, y=0
Theo 1 có
>> x=1, y=4
Theo 3 ta co
>> x=3, y=2
Đó y=2 hay bình 2 đã thu được lượng nước ta cần là 2 lit

Em chỉ biết làm thế thui, ai có cách khác hay chỉ cho em với ^_^

NgôiSaoMayMắn
22-05-2008, 21:46
Bạn xem cuốn "Giải một bài toán trên máy tính như thế nào" tập 3 nhé.
Mấy hiệu sách ở trường KHTN có bán đấy (nếu ở TP.HCM)