# import random library and set seed
import random
random.seed(123456)
# Step 1.
# Define a function which randomly draws a ball with an integer between 1 and 100 on it;
# then returns True if Player
# wins and returns False if House wins.
# Add a print statement to function to print random integer and test out function
# Add comment statements to function
#
Ball = 0
def ballGame():
Ball = random.randint(1,100)
print (f'{Ball}')
if (Ball >= 52):
print ('Win')
return True
else:
print ('Loss')
return False
print (ballGame())
38
Loss
False
# Step 2.
# Create a function which simulates playing the game n_plays times; keep track of number of wins and losses
#
def gameSim(plays, money, bet):
wins = 0
losses = 0
for i in range(0,plays):
if (ballGame()==True):
money+=bet
wins+=1
else:
money-=bet
losses+=1
return [money,wins,losses]
print (gameSim(5,10000,100))
4
Loss
23
Loss
1
Loss
85
Win
10
Loss
[9700, 1, 4]
totalWins = 0
totalLosses = 0
totalMoney = 0
Results = [0,0,0]
for i in range(100):
Results = gameSim(5,10000,100)
totalMoney += Results[0]
totalWins += Results[1]
totalLosses += Results[2]
avgMoney = totalMoney/100
print (f'{avgMoney} is the average amount of funds left after playing 5 games.')
discreteWin = totalWins/500
discreteLoss = 1-discreteWin
print (f'The discrete probability of winning is: {discreteWin}, losing is: {discreteLoss}')
99
Win
15
Loss
91
Win
20
Loss
45
Loss
1
Loss
74
Win
32
Loss
22
Loss
44
Loss
16
Loss
69
Win
47
Loss
77
Win
22
Loss
63
Win
22
Loss
19
Loss
76
Win
16
Loss
45
Loss
32
Loss
48
Loss
53
Win
54
Win
31
Loss
23
Loss
59
Win
33
Loss
98
Win
4
Loss
61
Win
12
Loss
98
Win
54
Win
82
Win
77
Win
27
Loss
55
Win
30
Loss
71
Win
82
Win
44
Loss
63
Win
27
Loss
27
Loss
25
Loss
70
Win
8
Loss
41
Loss
91
Win
90
Win
26
Loss
84
Win
87
Win
51
Loss
58
Win
81
Win
67
Win
5
Loss
17
Loss
35
Loss
57
Win
19
Loss
94
Win
31
Loss
21
Loss
44
Loss
4
Loss
44
Loss
68
Win
45
Loss
30
Loss
19
Loss
75
Win
36
Loss
77
Win
43
Loss
71
Win
53
Win
76
Win
40
Loss
35
Loss
28
Loss
49
Loss
56
Win
61
Win
41
Loss
97
Win
41
Loss
54
Win
74
Win
21
Loss
98
Win
35
Loss
72
Win
82
Win
10
Loss
53
Win
63
Win
32
Loss
70
Win
56
Win
4
Loss
84
Win
72
Win
49
Loss
99
Win
79
Win
11
Loss
27
Loss
30
Loss
72
Win
25
Loss
38
Loss
98
Win
80
Win
88
Win
14
Loss
3
Loss
1
Loss
22
Loss
4
Loss
57
Win
33
Loss
72
Win
95
Win
20
Loss
91
Win
37
Loss
52
Win
100
Win
77
Win
93
Win
3
Loss
25
Loss
67
Win
13
Loss
16
Loss
13
Loss
27
Loss
39
Loss
22
Loss
91
Win
93
Win
15
Loss
71
Win
40
Loss
62
Win
23
Loss
57
Win
46
Loss
17
Loss
64
Win
54
Win
40
Loss
55
Win
32
Loss
65
Win
67
Win
24
Loss
84
Win
36
Loss
50
Loss
27
Loss
82
Win
66
Win
73
Win
67
Win
84
Win
63
Win
62
Win
52
Win
42
Loss
2
Loss
57
Win
15
Loss
9
Loss
77
Win
46
Loss
14
Loss
25
Loss
86
Win
61
Win
34
Loss
19
Loss
7
Loss
40
Loss
12
Loss
75
Win
59
Win
51
Loss
62
Win
88
Win
37
Loss
17
Loss
10
Loss
43
Loss
31
Loss
33
Loss
7
Loss
66
Win
12
Loss
59
Win
58
Win
39
Loss
77
Win
19
Loss
41
Loss
56
Win
86
Win
58
Win
45
Loss
77
Win
18
Loss
54
Win
89
Win
77
Win
6
Loss
1
Loss
32
Loss
69
Win
43
Loss
9
Loss
24
Loss
85
Win
99
Win
28
Loss
40
Loss
44
Loss
35
Loss
49
Loss
95
Win
31
Loss
77
Win
78
Win
13
Loss
29
Loss
83
Win
63
Win
14
Loss
74
Win
37
Loss
21
Loss
63
Win
39
Loss
6
Loss
60
Win
95
Win
68
Win
8
Loss
72
Win
48
Loss
7
Loss
65
Win
5
Loss
71
Win
83
Win
28
Loss
57
Win
23
Loss
66
Win
22
Loss
12
Loss
8
Loss
58
Win
78
Win
83
Win
46
Loss
80
Win
76
Win
50
Loss
12
Loss
71
Win
41
Loss
43
Loss
75
Win
31
Loss
76
Win
15
Loss
40
Loss
10
Loss
33
Loss
75
Win
49
Loss
33
Loss
1
Loss
49
Loss
46
Loss
85
Win
77
Win
5
Loss
47
Loss
48
Loss
16
Loss
45
Loss
4
Loss
80
Win
51
Loss
61
Win
29
Loss
1
Loss
6
Loss
99
Win
36
Loss
61
Win
94
Win
53
Win
76
Win
20
Loss
40
Loss
93
Win
22
Loss
77
Win
7
Loss
62
Win
94
Win
37
Loss
16
Loss
4
Loss
19
Loss
50
Loss
2
Loss
54
Win
96
Win
67
Win
37
Loss
32
Loss
34
Loss
34
Loss
22
Loss
66
Win
51
Loss
57
Win
28
Loss
89
Win
95
Win
74
Win
67
Win
33
Loss
6
Loss
72
Win
2
Loss
56
Win
83
Win
43
Loss
93
Win
42
Loss
54
Win
23
Loss
72
Win
72
Win
15
Loss
64
Win
18
Loss
86
Win
65
Win
52
Win
20
Loss
100
Win
52
Win
98
Win
5
Loss
18
Loss
64
Win
67
Win
31
Loss
80
Win
36
Loss
39
Loss
8
Loss
77
Win
27
Loss
95
Win
72
Win
12
Loss
7
Loss
10
Loss
30
Loss
92
Win
96
Win
2
Loss
39
Loss
20
Loss
47
Loss
79
Win
4
Loss
81
Win
43
Loss
11
Loss
20
Loss
71
Win
81
Win
99
Win
66
Win
55
Win
68
Win
9
Loss
84
Win
98
Win
75
Win
72
Win
72
Win
92
Win
14
Loss
97
Win
29
Loss
76
Win
98
Win
85
Win
36
Loss
17
Loss
67
Win
6
Loss
60
Win
46
Loss
66
Win
14
Loss
2
Loss
2
Loss
32
Loss
94
Win
80
Win
22
Loss
59
Win
32
Loss
95
Win
100
Win
22
Loss
35
Loss
75
Win
40
Loss
81
Win
93
Win
53
Win
23
Loss
65
Win
47
Loss
48
Loss
12
Loss
45
Loss
89
Win
73
Win
48
Loss
28
Loss
89
Win
36
Loss
29
Loss
77
Win
26
Loss
5
Loss
38
Loss
73
Win
15
Loss
18
Loss
26
Loss
27
Loss
62
Win
97
Win
44
Loss
66
Win
96
Win
87
Win
16
Loss
28
Loss
21
Loss
13
Loss
97
Win
73
Win
45
Loss
66
Win
72
Win
25
Loss
9
Loss
36
Loss
59
Win
21
Loss
19
Loss
26
Loss
28
Loss
97
Win
89
Win
24
Loss
68
Win
30
Loss
78
Win
34
Loss
48
Loss
51
Loss
18
Loss
99
Win
96
Win
66
Win
86
Win
5
Loss
47
Loss
61
Win
63
Win
63
Win
82
Win
9966.0 is the average amount of funds left after playing 5 games.
The discrete probability of winning is: 0.466, losing is: 0.534
#More games are required for the sample
games = 5
rounds = 1000000
totalGames = games*rounds
Results = gameSim(totalGames,10000,100)
totalMoney = Results[0]
totalWins = Results[1]
totalLosses = Results[2]
discreteWin = totalWins/totalGames
discreteLoss = 1-discreteWin
avgMoney = totalMoney/totalGames
print (f'{avgMoney} is the average amount of funds left after playing {totalGames} games.')
print (f'The discrete probability of winning is: {discreteWin}, losing is: {discreteLoss}')
Loss
27
Loss
9
Loss
31
Loss
29
Loss
99
Win
18
Loss
92
Win
100
Win
95
Win
42
Loss
76
Win
21
Loss
28
Loss
42
Loss
24
Loss
51
Loss
71
Win
93
Win
77
Win
31
Loss
18
Loss
26
Loss
64
Win
82
Win
90
Win
11
Loss
64
Win
99
Win
63
Win
90
Win
60
Win
28
Loss
21
Loss
53
Win
87
Win
41
Loss
26
Loss
33
Loss
23
Loss
53
Win
74
Win
22
Loss
21
Loss
35
Loss
47
Loss
41
Loss
2
Loss
80
Win
100
Win
12
Loss
24
Loss
71
Win
26
Loss
49
Loss
17
Loss
46
Loss
38
Loss
27
Loss
17
Loss
25
Loss
69
Win
2
Loss
59
Win
91
Win
3
Loss
13
Loss
19
Loss
74
Win
74
Win
94
Win
41
Loss
71
Win
27
Loss
83
Win
99
Win
32
Loss
2
Loss
1
Loss
59
Win
5
Loss
48
Loss
79
Win
75
Win
12
Loss
9
Loss
33
Loss
93
Win
36
Loss
4
Loss
75
Win
22
Loss
14
Loss
93
Win
41
Loss
32
Loss
100
Win
55
Win
18
Loss
72
Win
96
Win
46
Loss
76
Win
69
Win
66
Win
66
Win
23
Loss
77
Win
4
Loss
62
Win
67
Win
5
Loss
16
Loss
37
Loss
73
Win
29
Loss
56
Win
4
Loss
39
Loss
77
Win
63
Win
49
Loss
58
Win
63
Win
22
Loss
48
Loss
9
Loss
40
Loss
85
Win
24
Loss
57
Win
26
Loss
42
Loss
48
Loss
87
Win
38
Loss
69
Win
62
Win
17
Loss
65
Win
6
Loss
17
Loss
86
Win
72
Win
38
Loss
24
Loss
78
Win
14
Loss
78
Win
37
Loss
23
Loss
66
Win
11
Loss
58
Win
26
Loss
89
Win
43
Loss
81
Win
77
Win
63
Win
19
Loss
29
Loss
15
Loss
91
Win
70
Win
80
Win
90
Win
17
Loss
3
Loss
22
Loss
41
Loss
41
Loss
44
Loss
57
Win
54
Win
93
Win
28
Loss
10
Loss
80
Win
60
Win
32
Loss
65
Win
14
Loss
12
Loss
28
Loss
38
Loss
98
Win
85
Win
81
Win
44
Loss
40
Loss
27
Loss
13
Loss
24
Loss
54
Win
98
Win
77
Win
6
Loss
56
Win
60
Win
23
Loss
87
Win
50
Loss
91
Win
83
Win
94
Win
22
Loss
21
Loss
87
Win
29
Loss
56
Win
73
Win
63
Win
36
Loss
9
Loss
84
Win
49
Loss
36
Loss
92
Win
59
Win
26
Loss
76
Win
2
Loss
74
Win
47
Loss
41
Loss
16
Loss
83
Win
1
Loss
73
Win
7
Loss
71
Win
57
Win
100
Win
44
Loss
8
Loss
68
Win
4
Loss
75
Win
93
Win
73
Win
61
Win
6
Loss
54
Win
94
Win
40
Loss
70
Win
16
Loss
30
Loss
2
Loss
50
Loss
41
Loss
19
Loss
19
Loss
55
Win
56
Win
19
Loss
70
Win
96
Win
61
Win
25
Loss
5
Loss
41
Loss
100
Win
95
Win
9
Loss
73
Win
19
Loss
40
Loss
97
Win
82
Win
60
Win
92
Win
59
Win
38
Loss
26
Loss
20
Loss
39
Loss
77
Win
1
Loss
76
Win
28
Loss
53
Win
38
Loss
11
Loss
22
Loss
61
Win
10
Loss
79
Win
6
Loss
32
Loss
66
Win
43
Loss
36
Loss
33
Loss
74
Win
21
Loss
50
Loss
8
Loss
60
Win
95
Win
65
Win
100
Win
96
Win
23
Loss
41
Loss
3
Loss
82
Win
48
Loss
84
Win
22
Loss
82
Win
16
Loss
89
Win
43
Loss
47
Loss
7
Loss
86
Win
37
Loss
3
Loss
68
Win
18
Loss
39
Loss
68
Win
32
Loss
62
Win
42
Loss
76
Win
1
Loss
72
Win
32
Loss
65
Win
3
Loss
9
Loss
27
Loss
1
Loss
41
Loss
19
Loss
87
Win
29
Loss
25
Loss
62
Win
45
Loss
9
Loss
88
Win
10
Loss
17
Loss
73
Win
81
Win
31
Loss
79
Win
42
Loss
91
Win
83
Win
44
Loss
33
Loss
55
Win
85
Win
87
Win
67
Win
50
Loss
32
Loss
53
Win
3
Loss
18
Loss
16
Loss
18
Loss
40
Loss
68
Win
8
Loss
32
Loss
73
Win
41
Loss
7
Loss
23
Loss
95
Win
68
Win
36
Loss
36
Loss
2
Loss
33
Loss
14
Loss
17
Loss
32
Loss
22
Loss
78
Win
65
Win
68
Win
15
Loss
29
Loss
38
Loss
72
Win
83
Win
34
Loss
78
Win
84
Win
86
Win
62
Win
77
Win
36
Loss
42
Loss
97
Win
65
Win
72
Win
60
Win
86
Win
30
Loss
80
Win
5
Loss
82
Win
50
Loss
33
Loss
49
Loss
37
Loss
35
Loss
23
Loss
99
Win
57
Win
63
Win
61
Win
56
Win
6
Loss
44
Loss
4
Loss
41
Loss
25
Loss
71
Win
5
Loss
84
Win
94
Win
47
Loss
30
Loss
51
Loss
91
Win
97
Win
81
Win
2
Loss
73
Win
35
Loss
96
Win
72
Win
11
Loss
4
Loss
93
Win
11
Loss
16
Loss
100
Win
90
Win
97
Win
33
Loss
68
Win
72
Win
18
Loss
17
Loss
27
Loss
50
Loss
47
Loss
99
Win
56
Win
41
Loss
90
Win
91
Win
24
Loss
46
Loss
52
Win
63
Win
4
Loss
96
Win
39
Loss
25
Loss
69
Win
39
Loss
55
Win
19
Loss
40
Loss
4
Loss
100
Win
44
Loss
54
Win
90
Win
50
Loss
44
Loss
9
Loss
84
Win
76
Win
57
Win
40
Loss
69
Win
55
Win
4
Loss
2
Loss
24
Loss
45
Loss
43
Loss
28
Loss
64
Win
51
Loss
15
Loss
4
Loss
-1.9624 is the average amount of funds left after playing 5000000 games.
The discrete probability of winning is: 0.490178, losing is: 0.509822
# 1. import random and set seed
# 2. Input target sales and number of sales persons for upcoming year; low and high
# percentages of sales for generating random numbers
# 3. Generate a random sales amount for each rep and check that it is in the correct range
# Use a for loop; round answer to nearest cent
# 4. Add to your loop in # 3 to determine the commission for each rep
# (you need an if-elif-else construct to determine rate); keep a running tab of
# the sum of all commissions
# round all dollar amounts to nearest cent
#
# 5. Add a loop around your code in # 4 to do 10,000 simulations
# Only print out the average commission for all 10,000 simulations
# Don't print out all the information from Step # 4 - it will be way too much so remove
# or comment out those print statements
#