forked from johannesgerer/jburkardt-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathduel_simulation.html
206 lines (173 loc) · 5.67 KB
/
duel_simulation.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<html>
<head>
<title>
DUEL_SIMULATION - Simulation of a Duel
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
DUEL_SIMULATION <br> Simulation of a Duel
</h1>
<hr>
<p>
<b>DUEL_SIMULATION</b>
is a C++ program which
simulates N instances of a duel between two players.
</p>
<p>
Player A fires at player B, and hits with a probability of A_ACCURACY.
If Player A misses, then Player B fires at Player A, hitting with
a probability of B_ACCURACY.
</p>
<p>
The duel continues with alternating shots until only one player
survives.
</p>
<p>
The simulation is intended to estimate the probabilities that a
player will survive.
</p>
<p>
The exact probability that player 1 will survive is
<blockquote>
P(1) / ( P(1) + P(2) - P(1) * P(2) )
</blockquote>
while player 2's chance is
<blockquote>
P(2) * ( 1 - P(1) ) / ( P(1) + P(2) - P(1) * P(2) ).
</blockquote>
</p>
<h3 align = "center">
Licensing:
</h3>
<p>
The computer code and data files described and made available on this web page
are distributed under
<a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a>
</p>
<h3 align = "center">
Languages:
</h3>
<p>
<b>DUEL_SIMULATION</b> is available in
<a href = "../../c_src/duel_simulation/duel_simulation.html">a C version</a> and
<a href = "../../cpp_src/duel_simulation/duel_simulation.html">a C++ version</a> and
<a href = "../../f77_src/duel_simulation/duel_simulation.html">a FORTRAN77 version</a> and
<a href = "../../f_src/duel_simulation/duel_simulation.html">a FORTRAN90 version</a> and
<a href = "../../math_src/duel_simulation/duel_simulation.html">a Mathematica version</a> and
<a href = "../../m_src/duel_simulation/duel_simulation.html">a MATLAB version</a>.
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../cpp_src/brownian_motion_simulation/brownian_motion_simulation.html">
BROWNIAN_MOTION_SIMULATION</a>,
a C++ library which
simulates Brownian motion in an M-dimensional region.
</p>
<p>
<a href = "../../cpp_src/fair_dice_simulation/fair_dice_simulation.html">
FAIR_DICE_SIMULATION</a>,
a C++ program which
simulates N tosses of 2 dice, making a histogram of the results.
</p>
<p>
<a href = "../../cpp_src/high_card_simulation/high_card_simulation.html">
HIGH_CARD_SIMULATION</a>,
a C++ program which
simulates a situation in which you see the cards in a deck one by one,
and must select the one you think is the highest and stop;
the program uses GNUPLOT for graphics.
</p>
<p>
<a href = "../../cpp_src/ising_2d_simulation/ising_2d_simulation.html">
ISING_2D_SIMULATION</a>,
a C++ program which
carries out a Monte Carlo simulation of an Ising model.
a 2D array of positive and negative charges,
each of which is likely to "flip" to be in agreement with neighbors.
</p>
<p>
<a href = "../../cpp_src/life_opengl/life_opengl.html">
LIFE_OPENGL</a>,
a C++ program which
uses OpenGL to display the evolution of John Conway's "Game of Life".
</p>
<p>
<a href = "../../cpp_src/poisson_simulation/poisson_simulation.html">
POISSON_SIMULATION</a>,
a C++ library which
simulates a Poisson process in which events randomly occur with an
average waiting time of Lambda.
</p>
<p>
<a href = "../../cpp_src/reactor_simulation/reactor_simulation.html">
REACTOR_SIMULATION</a>,
a C++ program which
a simple Monte Carlo simulation of the shielding effect of a slab
of a certain thickness in front of a neutron source. This program was
provided as an example with the book "Numerical Methods and Software."
</p>
<p>
<a href = "../../cpp_src/snakes_and_ladders/snakes_and_ladders.html">
SNAKES_AND_LADDERS</a>,
C++ programs which
simulate the game of Snakes and Ladders.
</p>
<p>
<a href = "../../cpp_src/three_body_simulation/three_body_simulation.html">
THREE_BODY_SIMULATION</a>,
a C++ program which
simulates the behavior of three planets, constrained to lie in a plane,
and moving under the influence of gravity,
by Walter Gander and Jiri Hrebicek.
</p>
<h3 align = "center">
Reference:
</h3>
<p>
<ol>
<li>
Paul Nahin,<br>
Duelling Idiots and Other Probability Puzzlers,<br>
Princeton University Press, 2000,<br>
ISBN13: 978-0691009797,<br>
LC: QA273.N29.
</li>
<li>
Martin Shubik,<br>
"Does the Fittest Necessarily Survive?",<br>
in Readings in Game Theory and Political Behavior,<br>
edited by Martin Shubik,<br>
Doubleday, 1954,<br>
LC: H61.S53.
</li>
</ol>
</p>
<h3 align = "center">
Source Code:
</h3>
<p>
<ul>
<li>
<a href = "duel_simulation.cpp">duel_simulation.cpp</a>,
the program.
</li>
<li>
<a href = "duel_simulation.sh">duel_simulation.sh</a>,
a BASH script to compile, link and load the program.
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../cpp_src.html">
the C++ source codes</a>.
</p>
<hr>
<i>
Last revised on 14 June 2011.
</i>
<!-- John Burkardt -->
</body>
</html>