# Unable to properly increment variable in Python

## Question:

I am having an issue with my code. The increment in the last if statement doesn’t properly increment. My main issue is that for frac and dfrac, I receive a value of zero, which I assume is because hit is being read as zero.

```
import LT.box as B
import numpy as np
import matplotlib.pyplot as plt
import sys
import math
#width (cm)
w = 15
#length (cm)
l = 20
#distance between panels (cm)
d = 80
#number of events
n = 10000
print('Width cm:', w)
print('Length cm:', l)
print('Distance cm:', d)
print('Number of events:', n)
hit = 0
for i in range(n):
if i % 5000 == 0:
print("Event %6d out of %dr" % (i, n))
sys.stdout.flush()
# accepted number of rays
cost = np.random.random()**(1/3)
phi = np.random.random()*2.0*np.pi
xtop =np.random.random()*w
ytop = np.random.random()*l
sinp = np.sin(phi)
cosp = np.cos(phi)
sint = np.sqrt(1.0 - cost*cost)
tant = sint/cost
tantx = tant*sinp
tanty = tant*cosp
xbot = xtop-tantx*d
ybot = ytop-tanty*d
# check if event goes through both panels
if (0 <= xbot <= w) and (0 <= ybot <= l):
if (w <= xbot+d <= 2*w) and (0 <= ybot <= l):
hit +=1
frac = hit / n
dfrac = math.sqrt(hit) / n
```

I tried making an increment function and other methods of incrementation, but I wasn’t able to implement it. I either got the same value of zero in frac or I received a syntax error.

## Answers:

The problem with the original code is that the two conditions set for `xbot`

are incompatible. The first condition states that `xbot`

must be between 0 and 15, while the second condition states that `xbot + 80`

must be between 15 and 30. However, if a variable has a value between 0 and 15, adding 80 to it will never make it have a value between 15 and 30.

Here are the two conditions that `xbot`

needs to satisfy, in order for `hit`

to be incremented:

`0 <= xbot <= 15`

`15 <= xbot + 80 <= 30`

If you analyze the lower and up bounds that the first condition requires, then the smallest value `xbot`

can have is 0 and the maximum value is 15. If you add those bounds to the second condition, you would have:

- For
`xbot = 0`

:`15 <= 80 <= 30`

(FAILS) - For
`xbot = 15`

:`15 <= 95 <= 30`

(FAILS)

**Simply putting, if a variable has a value between 0 and 15, adding 80 to it will never make it have a value between 15 and 30.**

Now, I don’t know exactly what you’re trying to achieve, but the simplest solution to your problem would be to either remove one of the conditions set to `xbot`

, or find two conditions that are compatible:

```
# ...
# check if event goes through both panels
if (0 <= xbot <= w) and (0 <= ybot <= l):
hit +=1
# ...
```