Latest topics
» Tự học lập trình IOS trong vòng 24hby kenanh 27/1/2014, 22:28
» xin tài liệu một số môn học
by nguyentvvan 21/8/2013, 21:34
» [Thảo luận] Bài toán đong nước
by giathinh9x 9/1/2013, 22:39
» Học Marketing Online, Học Chuyên viên Internet Marketing Online tại iNET
by NIIT-iNET 19/6/2012, 14:23
» Học PHP nâng cao, Học lập trình web với PHP nâng cao tại học viện iNET
by NIIT-iNET 19/6/2012, 14:22
» Học PHP, học lập trình web với PHP tại iNET vào ngày 19/07/2012
by NIIT-iNET 19/6/2012, 14:20
» PHIÊN BẢN MỚI CHO THIÊN ĐƯỜNG CÁ Ô LA LA !!!
by todaytv 13/3/2012, 15:35
» [hot] game khu vườn địa đàng phiên bản mobile của KVTM
by trantinh1713 3/1/2012, 15:20
» Đề tham khảo (update phút 90)
by ndc_2209 29/12/2011, 10:26
» Học bổng Lời Dịch tuần này.
by tienganh123 1/11/2011, 13:13
» [Thảo luận] Quản lý phân công giảng dạy PTTH
by huyquang0510 5/10/2011, 09:52
» Học tiếng Nhật - Top Globis
by tuquynh 21/9/2011, 10:35
» Học tiếng Nhật - Top Globis
by tuquynh 8/8/2011, 11:19
» Order Imitrex Online
by Khách viếng thăm 4/8/2011, 18:46
» Speeds Caffeine Metabolism Up
by Khách viếng thăm 4/8/2011, 18:12
» Skin For Good Caffeine
by Khách viếng thăm 3/8/2011, 14:54
» Cheap Pvc Figures
by Khách viếng thăm 1/8/2011, 19:32
» Action Rapid Onset Zolpidem Of
by Khách viếng thăm 31/7/2011, 01:13
» TUYỂN NHÂN VIÊN KINH DOANH ( làm việc tại văn phòng )
by canhkientp 5/7/2011, 14:59
» Demo + Vài điểm thảo luận về LINQ - Nhóm 7
by ChuongTienPhat 3/7/2011, 12:19
[Thảo luận] Bài toán đong nước
5 posters
..:: Diễn đàn lớp 07CK2 - ĐH.KHTN - TP.HCM ::.. :: [ GÓC HỌC TẬP ] :: CÁC MÔN ĐÃ HỌC :: TRÍ TUỆ NHÂN TẠO
Trang 1 trong tổng số 1 trang
[Thảo luận] Bài toán đong nước
ĐỀ BÀI TOÁN ĐONG NƯỚC:
VX = 5
VY = 7
z = 4.
VX là thể tích bình 1
VY là thể tích bình 2
z là số nước cần đong.
Làm thế nào để đong đc z lít nước bằng 2 bình VX và VY?
PHÂN TÍCH:Sau một thời gian tính toán, bạn có thể sẽ đưa ra một quy trình đổ nước đại loại như :
Múc đầy bình 7
Trút hết qua bình 5 cho đến khi 5 đầy.
Đổ hết nước trong bình 5
Đổ hết nước còn lại từ bình 7 sang bình 5
Múc đầy bình 7
Trút hết qua bình 5 cho đến khi bình 5 đầy.
Phần còn lại chính là số nước cần đong.
Tổng quát:
Gọi lượng nước chứa trong bình X là x (0<=x<=VX)
Gọi lượng nước chứa trong bình Y là y (0<=y<=VY)
Như vậy, điều kiện kết thúc của bài toán sẽ là :
x = z hoặc y = z
Điều kiện đầu của bài toán là : x = 0 và y=0
Ba luật được mô tả như sau :
(L1) Nếu bình X đầy thì đổ hết nước trong bình X đi.
(L2) Nếu bình Y rỗng thì đổ đầy nước vào bình Y.
(L3) Nếu bình X không đầy và bình Y không rỗng thì hãy trút nước t? bình Y sang bình X (cho đến khi bình X đầy hoặc bình Y hết nước).
Ví dụ:
Vx = 3, Vy = 4 và z = 2
Ban đầu : x = 0, y = 0
Luật (L2) -> x = 0, y = 4
Luật (L3) -> x = 3, y = 1
Luật (L1) -> x = 0, y = 1
Luật (L3) -> x = 1, y = 0
Luật (L2) -> x = 1, y = 4
Luật (L3) -> x = 3, y = 2
Chú ý nhá, không phải số nào cũng đong được đâu nhá:
Điều kiện số nước cần đong là một bội số của ước số chung lớn nhất của thể tích hai bình.
z = n x USCLN(VX, VY) (với n nguyên dương)
Trên đây là mô tả về ý tưởng giải bài toán đong nước,
mong nhận được sự đóng góp thêm từ mọi người
VX = 5
VY = 7
z = 4.
VX là thể tích bình 1
VY là thể tích bình 2
z là số nước cần đong.
Làm thế nào để đong đc z lít nước bằng 2 bình VX và VY?
PHÂN TÍCH:Sau một thời gian tính toán, bạn có thể sẽ đưa ra một quy trình đổ nước đại loại như :
Múc đầy bình 7
Trút hết qua bình 5 cho đến khi 5 đầy.
Đổ hết nước trong bình 5
Đổ hết nước còn lại từ bình 7 sang bình 5
Múc đầy bình 7
Trút hết qua bình 5 cho đến khi bình 5 đầy.
Phần còn lại chính là số nước cần đong.
Tổng quát:
Gọi lượng nước chứa trong bình X là x (0<=x<=VX)
Gọi lượng nước chứa trong bình Y là y (0<=y<=VY)
Như vậy, điều kiện kết thúc của bài toán sẽ là :
x = z hoặc y = z
Điều kiện đầu của bài toán là : x = 0 và y=0
Ba luật được mô tả như sau :
(L1) Nếu bình X đầy thì đổ hết nước trong bình X đi.
(L2) Nếu bình Y rỗng thì đổ đầy nước vào bình Y.
(L3) Nếu bình X không đầy và bình Y không rỗng thì hãy trút nước t? bình Y sang bình X (cho đến khi bình X đầy hoặc bình Y hết nước).
Ví dụ:
Vx = 3, Vy = 4 và z = 2
Ban đầu : x = 0, y = 0
Luật (L2) -> x = 0, y = 4
Luật (L3) -> x = 3, y = 1
Luật (L1) -> x = 0, y = 1
Luật (L3) -> x = 1, y = 0
Luật (L2) -> x = 1, y = 4
Luật (L3) -> x = 3, y = 2
Chú ý nhá, không phải số nào cũng đong được đâu nhá:
Điều kiện số nước cần đong là một bội số của ước số chung lớn nhất của thể tích hai bình.
z = n x USCLN(VX, VY) (với n nguyên dương)
Trên đây là mô tả về ý tưởng giải bài toán đong nước,
mong nhận được sự đóng góp thêm từ mọi người
Re: [Thảo luận] Bài toán đong nước
hj, thanks nhé. giá như có thêm cái code nữa thì tốt quá .
nguyenbaquang_99- | Trẻ Sơ Sinh |
-
Tổng số bài gửi : 33
Age : 37
Registration date : 27/01/2009
Re: [Thảo luận] Bài toán đong nước
nguyenbaquang_99 đã viết:hj, thanks nhé. giá như có thêm cái code nữa thì tốt quá .
Hii, thì đó, Q làm cái code đi, rồi up lên anh em thảo luận thêm Chờ gì nữa
Chính việc này mới tạo nên giá trị của lập trình viên chứ, không thì mình cũng như các ss văn phòng mất rồi còn gì
Re: [Thảo luận] Bài toán đong nước
đúng đó. cái sỳ và các bạn cần có cả 2 (code và phân tích). code là để lấy điểm còn cái phân tích là để hiểu.
Sỳ sẽ copy-paste và nộp. kaka. CHÚC AE làm bt A* thật tốt nha
Sỳ sẽ copy-paste và nộp. kaka. CHÚC AE làm bt A* thật tốt nha
sylam_113- | Trẻ Sơ Sinh |
-
Tổng số bài gửi : 34
Age : 34
Location : Home
Registration date : 26/11/2008
Re: [Thảo luận] Bài toán đong nước
Thư viện khai báo của bài toán:
CODE viết bằng VB6 cho ae
Trích:
Dim sb(100) As DongNuoc
Dim X As Integer
Dim Y As Integer
Dim Z As Integer
Dim BinhX As Integer
Dim BinhY As Integer
Dim BinhZ As Integer
Dim D As Integer
Dim i As Integer
Câu lệnh nút Close:
Trích:
Private Sub cmdclose_Click()
frmChinh.Hide
MsgBoxUni ConvertToUnicode("Ca3m o7n ba5n d9a4 su73 du5ng chu7o7ng tri2nh" & vbNewLine & " " & vbNewLine & "(¯`•.(¯°•o©º°°.™ _ MO_LU _™.•o©º°.°¯)¸.•'¯)" & vbNewLine & "" & vbNewLine & "Ta1c gia3: Pha5m D9i2nh Mong " & vbNewLine & "Lo71p: K1CT1 " & vbNewLine & "Ca2c ba4n ha4y ghe1 tha8m die64n d9a2n CNTT cu3a mi2nh nha." & vbNewLine & "http://www.k1ct1.com " & vbNewLine & "See you Again"), , ConvertToUnicode("(¯`•.(¯°•o©º°°.™ _ Tho6ng ba1o _™.•o©º°.°¯)¸.•'¯)")
Unload Me
End Sub
Câu lệnh nút Giải:
Trích:
Private Sub cmdGiai_Click()
On Error GoTo Er
List1.Clear
D = 0
X = 0
Y = 0
Z = Val(txtZ)
BinhX = Val(txtBinhX)
BinhY = Val(txtBinhY)
BinhZ = Val(txtZ)
While X <> Z And Y <> Z
If X = BinhX Then
X = 0
D = D + 1
sb(D).BinhX = 0
sb(D).BinhY = sb(D - 1).BinhY
sb(D).DienGiai = ConvertToUnicode("D9o63 he61t nu7o71c o73 bi2nh X d9i")
End If
If Y = 0 Then
Y = BinhY
D = D + 1
sb(D).BinhX = sb(D - 1).BinhX
sb(D).BinhY = Y
sb(D).DienGiai = ConvertToUnicode("D9o63 d9a62y bi2nh Y")
End If
If Y > 0 Then
k = ktramin(BinhX - X, Y)
X = X + k
Y = Y - k
D = D + 1
sb(D).BinhX = X
sb(D).BinhY = Y
sb(D).NuocDo = k
sb(D).DienGiai = ConvertToUnicode("D9o63 " & k & " li1t nu7o71c tu72 bi2nh Y sang bi2nh X")
End If
Wend
For i = 1 To D
List1.AddItem ConvertToUnicode("Bu7o71c thu71 " & i & ": " & sb(i).DienGiai & ", X = " & sb(i).BinhX & " li1t, " & "Y = " & sb(i).BinhY & " li1t")
Next
Exit Sub
Er:
MsgBoxUni ConvertToUnicode("Co1 lo64i xa3y ra, ba5n ha4y cho5n so61 kha1c"), vbCritical, ConvertToUnicode("Ba1o Ca1o Lo64i")
End Sub
Câu lệnh hàm kiểm tra:
Trích:
Function ktramin(a As Integer, b As Integer) As Integer
Dim ktra As Integer
ktra = a - b
If ktra >= 0 Then
ktramin = b
Else
ktramin = a
End If
End Function
Câu lệnh nút Random:
Trích:
Private Sub cmdRandom_Click()
Randomize
txtBinhX = Int((9 * Rnd) + 1)
txtBinhY = Int((9 * Rnd) + 1)
txtZ = Int((9 * Rnd) + 0)
End Sub
Trích:
Private Sub Command1_Click()
txtBinhX.Text = ""
txtBinhY.Text = ""
txtZ.Text = ""
End Sub
Trích:
Private Sub txtBinhX_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
Trích:
Private Sub txtBinhY_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
Trích:
Private Sub txtZ_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
CODE viết bằng VB6 cho ae
Trích:
Dim sb(100) As DongNuoc
Dim X As Integer
Dim Y As Integer
Dim Z As Integer
Dim BinhX As Integer
Dim BinhY As Integer
Dim BinhZ As Integer
Dim D As Integer
Dim i As Integer
Câu lệnh nút Close:
Trích:
Private Sub cmdclose_Click()
frmChinh.Hide
MsgBoxUni ConvertToUnicode("Ca3m o7n ba5n d9a4 su73 du5ng chu7o7ng tri2nh" & vbNewLine & " " & vbNewLine & "(¯`•.(¯°•o©º°°.™ _ MO_LU _™.•o©º°.°¯)¸.•'¯)" & vbNewLine & "" & vbNewLine & "Ta1c gia3: Pha5m D9i2nh Mong " & vbNewLine & "Lo71p: K1CT1 " & vbNewLine & "Ca2c ba4n ha4y ghe1 tha8m die64n d9a2n CNTT cu3a mi2nh nha." & vbNewLine & "http://www.k1ct1.com " & vbNewLine & "See you Again"), , ConvertToUnicode("(¯`•.(¯°•o©º°°.™ _ Tho6ng ba1o _™.•o©º°.°¯)¸.•'¯)")
Unload Me
End Sub
Câu lệnh nút Giải:
Trích:
Private Sub cmdGiai_Click()
On Error GoTo Er
List1.Clear
D = 0
X = 0
Y = 0
Z = Val(txtZ)
BinhX = Val(txtBinhX)
BinhY = Val(txtBinhY)
BinhZ = Val(txtZ)
While X <> Z And Y <> Z
If X = BinhX Then
X = 0
D = D + 1
sb(D).BinhX = 0
sb(D).BinhY = sb(D - 1).BinhY
sb(D).DienGiai = ConvertToUnicode("D9o63 he61t nu7o71c o73 bi2nh X d9i")
End If
If Y = 0 Then
Y = BinhY
D = D + 1
sb(D).BinhX = sb(D - 1).BinhX
sb(D).BinhY = Y
sb(D).DienGiai = ConvertToUnicode("D9o63 d9a62y bi2nh Y")
End If
If Y > 0 Then
k = ktramin(BinhX - X, Y)
X = X + k
Y = Y - k
D = D + 1
sb(D).BinhX = X
sb(D).BinhY = Y
sb(D).NuocDo = k
sb(D).DienGiai = ConvertToUnicode("D9o63 " & k & " li1t nu7o71c tu72 bi2nh Y sang bi2nh X")
End If
Wend
For i = 1 To D
List1.AddItem ConvertToUnicode("Bu7o71c thu71 " & i & ": " & sb(i).DienGiai & ", X = " & sb(i).BinhX & " li1t, " & "Y = " & sb(i).BinhY & " li1t")
Next
Exit Sub
Er:
MsgBoxUni ConvertToUnicode("Co1 lo64i xa3y ra, ba5n ha4y cho5n so61 kha1c"), vbCritical, ConvertToUnicode("Ba1o Ca1o Lo64i")
End Sub
Câu lệnh hàm kiểm tra:
Trích:
Function ktramin(a As Integer, b As Integer) As Integer
Dim ktra As Integer
ktra = a - b
If ktra >= 0 Then
ktramin = b
Else
ktramin = a
End If
End Function
Câu lệnh nút Random:
Trích:
Private Sub cmdRandom_Click()
Randomize
txtBinhX = Int((9 * Rnd) + 1)
txtBinhY = Int((9 * Rnd) + 1)
txtZ = Int((9 * Rnd) + 0)
End Sub
Trích:
Private Sub Command1_Click()
txtBinhX.Text = ""
txtBinhY.Text = ""
txtZ.Text = ""
End Sub
Trích:
Private Sub txtBinhX_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
Trích:
Private Sub txtBinhY_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
Trích:
Private Sub txtZ_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
dungvnit-
Tổng số bài gửi : 1
Age : 35
Registration date : 29/04/2011
Re: [Thảo luận] Bài toán đong nước
dungvnit đã viết:
Câu lệnh nút Close:
Trích:
Private Sub cmdclose_Click()
frmChinh.Hide
MsgBoxUni ConvertToUnicode("Ca3m o7n ba5n d9a4 su73 du5ng chu7o7ng tri2nh" & vbNewLine & " " & vbNewLine & "(¯`•.(¯°•o©º°°.™ _ MO_LU _™.•o©º°.°¯)¸.•'¯)" & vbNewLine & "" & vbNewLine & "Ta1c gia3: Pha5m D9i2nh Mong " & vbNewLine & "Lo71p: K1CT1 " & vbNewLine & "Ca2c ba4n ha4y ghe1 tha8m die64n d9a2n CNTT cu3a mi2nh nha." & vbNewLine & "http://www.k1ct1.com " & vbNewLine & "See you Again"), , ConvertToUnicode("(¯`•.(¯°•o©º°°.™ _ Tho6ng ba1o _™.•o©º°.°¯)¸.•'¯)")
Unload Me
End Sub
Có cần phải có những dòng chữ này không?
Re: [Thảo luận] Bài toán đong nước
có bạn nào biết làm bài chuyển cơ số nhị phân sang thập phân ko.up lên mình xem vớiChuongTienPhat đã viết:nguyenbaquang_99 đã viết:hj, thanks nhé. giá như có thêm cái code nữa thì tốt quá .
Hii, thì đó, Q làm cái code đi, rồi up lên anh em thảo luận thêm Chờ gì nữa
Chính việc này mới tạo nên giá trị của lập trình viên chứ, không thì mình cũng như các ss văn phòng mất rồi còn gì
giathinh9x-
Tổng số bài gửi : 2
Age : 32
Registration date : 09/01/2013
Re: [Thảo luận] Bài toán đong nước
mình đang làm phần prolog với đề tài là chuyển cơ số nhị phân sang thập phân.bạn nào có code bai nj ko up lên mình xem với!
giathinh9x-
Tổng số bài gửi : 2
Age : 32
Registration date : 09/01/2013
..:: Diễn đàn lớp 07CK2 - ĐH.KHTN - TP.HCM ::.. :: [ GÓC HỌC TẬP ] :: CÁC MÔN ĐÃ HỌC :: TRÍ TUỆ NHÂN TẠO
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|