4. Excavadora amb bateria

Una empresa constructora fa servir una excavadora automatitzada per obrir túnels. L’excavadora treballa en cicles i excava una quantitat de metres que disminueix amb cada cicle degut al desgast. Cada cicle consumeix energia de la bateria. Es vol saber si amb l’energia disponible és possible excavar com a mínim una distància determinada.

La quantitat de metres excavats en el cicle n-èssim es calcula amb la fórmula:

\[metres = \frac{6}{1 + 0.5 \cdot (n - 1)}\]

És a dir:

  • Al cicle 1, excava 6.0 metres.

  • Al cicle 2, excava 4.0 metres.

  • Al cicle 3, excava 3.0 metres.

  • I així successivament.

L’energia consumida per cada cicle és igual als metres excavats en aquell cicle.

Dissenya la funció següent i desa-la al fitxer excavadora.py:

excavadora.cicles_per_excavar(d, energia_maxima)

Retorna el nombre mínim de cicles necessaris per excavar com a mínim d metres sense superar el total d’energia disponible.

Si no és possible arribar a la distància desitjada amb l’energia donada, la funció ha de retornar -1.

Paràmetres:
  • d (float) – Distància mínima a excavar.

  • energia_maxima (float) – Energia total disponible.

Tipus de retorn:

int

Retorna:

Nombre mínim de cicles necessaris per arribar o superar la distància d, o -1 si no és possible amb l’energia disponible.

Els següents doctests mostren exemples del que ha de fer la funció:

>>> cicles_per_excavar(15, 20)
4

>>> cicles_per_excavar(10, 10)
2

>>> cicles_per_excavar(30, 40)
18

Nota

Disposes de més tests al fitxer test-cicles-per-excavar.txt

Disposeu de solucions al fitxer excavadora.py