Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
1,85 MB
Nội dung
MÔ PHỎNG TRẬN ĐỊA PHÁO CAO XẠ
1. Tên đề bài và nội dung thực hiện.
a. Tên đề bài.
Một khẩu pháo caoxạ có thể bắn m loạt đạn trong phạm vi xạ kích của mình.
Xác xuất trúng đích của mỗi loạt đạn là P. Hãy mô phỏng trận đại pháo, tìm số
pháo n cần thiết để bắn hạ mục tiêu nếu xác xuất bắn hạ là P0. Các số liệu cho
trong bảng sau:
Xác xuất bắn trúng của
mỗi loạt đạn, p
Số loạt đạn trong phạm
vi xạ kích, m
Xác xuất bắn hạ máy
bay, P0
0,1 20 0.7
0.1 20 0.8
0.2 10 0.8
0.2 10 0.9
0.3 5 0.7
0.3 5 0.8
b. Nhiệm vụ đối với sinh viên:
- Phân tích thuật toán giải
- Lưu đồ thuật toán
- Viết chương trình mô phỏng
- Kết quả mô phỏng, nhận xét, bình luận
2 . Phân tích đề bài.
Giả sử một khẩu pháo bắn được m0 loạt đạn trong thời gian T, vậy với với m
loạt đạn trong thời gian T thì cần số khẩu pháo là n = m/m0. Trong đó m0=T/t0 loạt
đạn, do đó xác suất bắn trúng của khẩu pháo bằng tổng xác suất bắn trúng của các
loạt đạn. Xác suất bắn trúng mục tiêu của cả trận địa pháo là tổng xác suất bẳn
trúng của mỗi khẩu pháo .
3. Phân tích các biến ngẫu nhiên.
Hệ thống địa pháo caoxạ là một hệ ngẫu nhiên: xác suất bắn trúng của mỗi
loạt pháo hoàn toàn ngẫu nhiên trong khoảng (0,1). Mỗi số ngãu nhiên Ui trong
khoảng (0,1) được lấy vào, nếu nhỏ hơn hoặc băng xác suất bắn trúng của mỗi khẩu
pháo p thì U
i
chính là xác suất bắn trúng của mỗi loạt đạn.
4. Phân tích thuật giải.
1. Lấy số ngẫu nhiên U
i
=U(0,1).
2. Nếu U
i
≤ p thì bắn trúng máy bay với xác suất p
i
=U
i
.
3. Mỗi khẩu pháo có thể bắn T / t loạt trong thời gian máy bay bay qua trận
địa . Vậy xác suất bắn trúng máy bay của một khẩu là :
P
i
= ∑U
i
, với điều kiện U
i
≤ p
4. Vậy xác suất bắn trúng maý bay của cả trận địa pháo là :
P
n
= ∑ P
i
, nếu P
n
≥ P
0
dẫn đến máy bay bị bắn hạ .
5.Từ đó có thể xác định được số khẩu pháo tối ưu n
tư
bắn hạ máy bay với xác
suất: P
n
= P
0
.
Ta dùng biến “dem” để đếm số khầu pháo ít nhất để có thể bắn trúng mục
tiêu với các số liệu đã nhập. Khi tìm được “dem” ta sẽ đem so sánh với số khẩu
pháo đã cho, nếu nó lớn hơn thì không bắn trúng mục tiêu ngươc lại thì trúng mục
tiêu
Ta dùng biến Lb để đếm số lần bắn của mỗi khẩu pháo (mỗi khẩu có thể bắn
T/t lượt) ở mỗi lượt bắn xác suất bắn trúng của mỗi khẩu pháo là một đại lượng
ngẫu nhiên được chứa trong biến U
i
(U
i
= U(0,1)). Từ đó ta xác định được xác suất
bắn trúng của từng khẩu pháo sau T/t lượt bắn và xác suất bắn trúng của toàn bộ
trận địa pháo.
So sánh xác suất bắn trúng của toàn bộ trận địa pháo với xác xuất bắn trúng
máy bay ta sẽ xác định được khả năng bắn trúng của trận địa pháo (nếu ∑Pi > P0
thì bắn trúng)
5. Lưu đồ tính.
6. Điều kiện mô phỏng.
Từ yêu cầu của đề bài, ta cần phải có những điều kiện sau để cho hệ thống
mô phỏng được:
Thêm các thông số sau: t0: Thời gian giữa hai lần bắn liên tiếp.
T: Thời gian máy bay bay qua
Ngoài ra cần đảm bảo các thông số nhập phải đúng
7. Viết chương trình mô phỏng.
Dim P As Single 'Xac suat ban trung
Dim m As Integer 'Loat dan trong pham vi xa kich
Dim P0 As Single 'Xac suat ban ha
Dim t0 As Single 'Thoi gian giua 2 luot ban
Dim T As Single 'Thoi gian may bay bay qua
Dim nhap_dung As Boolean
Dim ban_ha As Boolean
Dim dem As Integer
Dim n As Integer 'So phao can thiet
Dim max As Byte
Dim i As Byte
Dim max1 As Long
Private Sub Form_Load()
Reset
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdReset_Click()
tmrReset.Enabled = True
End Sub
Private Sub cmdStart_Click()
imgNo.Visible = False
TenLua
Tinh_toan
If nhap_dung = True Then tmrStart.Enabled = True
End Sub
Private Sub txtSo_Loat_Dan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
imgNo.Visible = False
TenLua
Tinh_toan
If nhap_dung = True Then tmrStart.Enabled = True
End If
End Sub
Private Sub txtTGBan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
imgNo.Visible = False
TenLua
Tinh_toan
If nhap_dung = True Then tmrStart.Enabled = True
End If
End Sub
Private Sub txtTGBay_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
imgNo.Visible = False
TenLua
Tinh_toan
If nhap_dung = True Then tmrStart.Enabled = True
End If
End Sub
Private Sub txtXSBan_ha_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
imgNo.Visible = False
TenLua
Tinh_toan
If nhap_dung = True Then tmrStart.Enabled = True
End If
End Sub
Private Sub txtXSBan_trung_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
imgNo.Visible = False
TenLua
Tinh_toan
If nhap_dung = True Then tmrStart.Enabled = True
End If
End Sub
Private Sub tmrStart_Timer()
If pic1.Top > 0 Then
pic1.Top = pic1.Top - 100
Else
pic1.Top = 0
tmrMay_bay.Interval = 2 * Int(T) + 1
tmrTen_lua.Interval = Int(t0) + 1
tmrMay_bay.Enabled = True
tmrTen_lua.Enabled = True
tmrStart.Enabled = False
End If
End Sub
Private Sub tmrMay_bay_Timer()
Select Case ban_ha
Case True
If imgMayBay.Left < imgNo.Left Then
imgMayBay.Left = imgMayBay.Left + 50
Else
imgMayBay.Left = -4000
imgNo.Visible = True
tmrMay_bay.Enabled = False
tmrTen_lua.Enabled = False
MsgBox "May bay da bi ban ha, xin chuc mung ban", , "Chuc mung"
imgNo.Visible = False
txtSo_Phao.Text = Str(n)
txtSpCan_thiet.Text = Str(dem)
TenLua
End If
Case False
If imgMayBay.Left < Me.Width Then
imgMayBay.Left = imgMayBay.Left + 50
Else
imgMayBay.Left = -4000
MsgBox "May bay chua bi ban ha, Chia buon cung ban", , "Chia buon"
tmrMay_bay.Enabled = False
tmrTen_lua.Enabled = False
txtSo_Phao.Text = Str(n)
txtSpCan_thiet.Text = Str(dem)
TenLua
End If
End Select
End Sub
Private Sub tmrReset_Timer()
If pic1.Top < 7000 Then
pic1.Top = pic1.Top + 100
Else
Reset
End If
End Sub
Private Sub tmrTen_lua_Timer()
If imgTenLua.Item(max).Top > 0 Then
For i = 0 To 20
imgTenLua.Item(i).Top = imgTenLua.Item(i).Top - 500
Next i
Else
TenLua
End If
End Sub
Private Sub Tinh_toan()
Dim m0 As Integer 'So lan ban cua 1 phao trong thoi gian T
Dim Pn As Single 'Tong xac suat ban trung cua tran dia phao
Dim Pi As Single 'Xac xuat ban trung trong 1 lan ban
Dim Luot_ban As Integer
Dim Ui As Single 'Xac suat ban trung ngau nhien
Nhap
If nhap_dung = False Then Exit Sub
m0 = Int(T / t0)
n = Int(m * t0 / T)
Pn = 0
dem = 0
Do While Pn < P0
dem = dem + 1
Pi = 0
Luot_ban = 0
Do While (Luot_ban < m0)
Ui = Rnd(1)
If Ui < P Then
Luot_ban = Luot_ban + 1
Pi = Pi + Ui
End If
Loop
Pn = Pn + Pi
Loop
If dem <= n Then
ban_ha = True
Else
ban_ha = False
End If
End Sub
Private Sub Nhap()
P = Val(txtXSBan_trung)
m = Val(txtSo_Loat_Dan)
P0 = Val(txtXSBan_ha)
t0 = Val(txtTGBan)
T = Val(txtTGBay)
If P > 1 Or P < 0 Or m > 1000 Or m < 0 Or P0 < 0 Or P0 > 1 Or t0 <= 0 Or t0 > 1000 Or T
< 0 Or T > 1000 Or t0 > T Then
nhap_dung = False
MsgBox "Thong so sai, hay nhap lai thong so", vbInformation, "Thong bao"
Exit Sub
Else
nhap_dung = True
End If
End Sub
Private Sub Reset()
txtSo_Loat_Dan = "20"
txtTGBan.Text = "1"
txtTGBay.Text = "3"
txtXSBan_ha.Text = "0.7"
txtXSBan_trung.Text = "0.1"
txtSpCan_thiet.Text = ""
txtSo_Phao.Text = ""
tmrStart.Enabled = False
tmrReset.Enabled = False
tmrMay_bay.Enabled = False
tmrTen_lua = False
imgNo.Visible = False
pic1.Top = 7000
pic1.Left = 0
imgMayBay.Left = -4000
TenLua
End Sub
Private Sub TenLua()
Randomize (1)
For i = 0 To 20
imgTenLua.Item(i).Top = Int(10000 * Rnd(1) + 6500)
Next i
End Sub
[...]... Timer3 để mô phỏng quá trình bắn của trận địa pháo, tốc độ bắn phụ thuộc vào giá trị của T và t Bộ tmrTen_lua_Timer để mô phỏng quá trình khi bắn trúng mục tiêu (khi bắn trúng hay không bắn trúng mục tiêu thì đều có hiển thị thông báo) 9 Kết quả mô phỏng *Kết quả mô phỏng với dữ liệu đã cho : Thời gian máy bay bay qua :T =3 Số loạt đạn trong phạm vi xạ kích : m = 20 Thời gian thực hiện một loạt bắn :t... bài toán và ý tưởng thuật toán ta xây dựng mô hìnhmô phỏng của trận địa pháo Giao diện chính Giao diện mô phỏng Phần mô phỏng được hiển thị nhờ Button Start trên giao diện chính Quá trình chuyển đổi giao diện được thực hiện thông qua bộ tmrStart_Timer Khi giao diện mô phỏng xuất hiện thì quá trình mô phỏng bắt đầu thực hiện Sử dụng bộ tmrMay_bay_Timer để mô phỏng quá trình bay của máy bay, tốc độ... một loạt bắn :t =1 Xác suất bắn trúng của 1 khẩu pháo : p = 0,1 Xác suất bắn hạ của máy bay : P0 = 0,7 Ta được kết quả : Máy bay sẽ bị bắn hạ Số pháo tính được theo m :n=6 Số khẩu pháo cần thiết là : ntư = 6 10 Nhận xét kết quả mô phỏng Với kết quả mô phỏng hoàn toàn phù hợp với thực tế: Nếu xác suất bắn trúng của mỗi khẩu pháo hoặc xác suất bắn hạ máy bay giảm thì khả năng bắn trúng của cả trận địa... gian máy bay bay qua trận địa càng lớn thì máy bay càng dễ bị bắn hạ, do đó số khẩu pháo tối ưu cũng giảm đi Tuy nhiên do khả năng bắn trúng của mỗi loạt đạn là một đại lượng ngẫu nhiên nên với cùng một bộ số đã cho thì kết quả mô phỏng có thể cho ra số pháo tối ưu khác nhau 11 Tài liệu tham khảo [1], Phạm Tâm Thành, Bài giảng Mô hìnhhóa hệ thống, Trường ĐHHH Việt Nam [2], Hồng Phúc – Linh Nga, Tự