deep_expo_percentage.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. """Calculate resources koef"""
  2. def nth_root(num, root):
  3. """Calculte nth root"""
  4. answer = num ** (1/root)
  5. return answer
  6. def calc_resource_factor(resource_limit, koef_factor):
  7. """Calculate resource factor based on limit"""
  8. return pow(resource_limit * koef_factor / 10, 0.8)
  9. # a = (resource_limit * koef_factor / 10)**0.8
  10. # a = (m * n / c) ** d
  11. def calc_required_limit(koef, koef_factor):
  12. """Calculate amount of deep exploration points"""
  13. # m = (c * nth_root(a, d)) / n
  14. return (10 * nth_root(koef, 0.8)) / koef_factor
  15. def calc_deep_exploration(resource_limit, percentage, koef_factor, max_limit):
  16. """Calculate deep expo for resource"""
  17. initial_resource_factor = calc_resource_factor(resource_limit, koef_factor)
  18. new_resource_factor = initial_resource_factor * (percentage / 100 + 1)
  19. new_limit = calc_required_limit(new_resource_factor, koef_factor)
  20. if new_limit > max_limit:
  21. new_limit = max_limit
  22. new_resource_factor = calc_resource_factor(new_limit, koef_factor)
  23. percentage = 100 / initial_resource_factor * new_resource_factor - 100
  24. print("{:5.2f} {:4.2f} {:4.2f} {:4.0f}".format(
  25. percentage,
  26. initial_resource_factor,
  27. new_resource_factor,
  28. new_limit - resource_limit
  29. ))
  30. if __name__ == "__main__":
  31. print("% old new deep")
  32. print('Noord-Nederland')
  33. calc_deep_exploration(379, 0, 0.4, 637)
  34. print('Oost-Nederland')
  35. calc_deep_exploration(359, 50, 0.4, 637)
  36. print('West-Nederland')
  37. calc_deep_exploration(372, 20, 0.4, 637)
  38. print('Zuid-Nederland')
  39. calc_deep_exploration(366, 25, 0.4, 637)
  40. print('Amsterdam')
  41. calc_deep_exploration(418, 45, 0.4, 637)