Guest User

сел и сгорел

a guest
Dec 13th, 2013
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.85 KB | None | 0 0
  1. cars = [0.0]
  2. b1 = 1.0
  3. n = 1
  4. q = 1.0 - 0.2
  5.  
  6. def geom_sum(q, b1, n):
  7.     'Сколько ещё нужно места для остатка бесконечной последовательности медведей после n'
  8.     prev_sum = b1*(q**n-1)/(q-1)
  9.     total_sum = b1/(1-q)
  10.     return total_sum - prev_sum
  11.  
  12. while True:
  13.     last_car = cars[-1]
  14.     bn = b1*(q**(n-1))
  15.     if last_car + bn > 1.0:
  16.         # медведь не влез, берём следующую машину
  17.         cars.append(0.0)
  18.         last_car = 0.0
  19.  
  20.     last_car += bn
  21.     cars[-1] = last_car
  22.  
  23.     carspace = 1.0 - last_car
  24.     if geom_sum(q, b1, n) < carspace:
  25.         # остальные медведи влезут в последнюю машину
  26.         last_car += geom_sum(q, b1, n)
  27.         break
  28.  
  29.     n += 1
  30.  
  31. print(cars)
  32. print(len(cars))
Advertisement
Add Comment
Please, Sign In to add comment