|
@@ -0,0 +1,48 @@
|
|
|
+"""Calculate resources koef"""
|
|
|
+
|
|
|
+
|
|
|
+def nth_root(num, root):
|
|
|
+ """Calculte nth root"""
|
|
|
+ answer = num ** (1/root)
|
|
|
+ return answer
|
|
|
+
|
|
|
+def calc_resource_factor(resource_limit, koef_factor):
|
|
|
+ """Calculate resource factor based on limit"""
|
|
|
+ return pow(resource_limit * koef_factor / 10, 0.8)
|
|
|
+ # a = (resource_limit * koef_factor / 10)**0.8
|
|
|
+ # a = (m * n / c) ** d
|
|
|
+
|
|
|
+def calc_required_limit(koef, koef_factor):
|
|
|
+ """Calculate amount of deep exploration points"""
|
|
|
+ # m = (c * nth_root(a, d)) / n
|
|
|
+ return (10 * nth_root(koef, 0.8)) / koef_factor
|
|
|
+
|
|
|
+def calc_deep_exploration(resource_limit, percentage, koef_factor, max_limit):
|
|
|
+ """Calculate deep expo for resource"""
|
|
|
+ initial_koef = calc_resource_factor(resource_limit, koef_factor)
|
|
|
+ new_koef = initial_koef * (percentage / 100 + 1)
|
|
|
+
|
|
|
+ required_limit = calc_required_limit(new_koef, koef_factor)
|
|
|
+ print(required_limit)
|
|
|
+ if required_limit > max_limit:
|
|
|
+ required_limit = max_limit
|
|
|
+ print("{:5.2f} {:4.2f} {:4.2f} {:4.0f}".format(
|
|
|
+ percentage,
|
|
|
+ initial_koef,
|
|
|
+ new_koef,
|
|
|
+ required_limit - resource_limit
|
|
|
+ ))
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ print("% old new deep")
|
|
|
+ print('Noord-Nederland')
|
|
|
+ calc_deep_exploration(379, 0, 0.4, 637)
|
|
|
+ print('Oost-Nederland')
|
|
|
+ calc_deep_exploration(359, 80, 0.4, 637)
|
|
|
+ print('West-Nederland')
|
|
|
+ calc_deep_exploration(372, 25, 0.4, 637)
|
|
|
+ print('Zuid-Nederland')
|
|
|
+ calc_deep_exploration(366, 25, 0.4, 637)
|
|
|
+ print('Amsterdam')
|
|
|
+ calc_deep_exploration(418, 45, 0.4, 637)
|
|
|
+ calc_deep_exploration(439, 35, 0.4, 637)
|