b.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import os, argparse, math
  2. import numpy as np
  3. def solve_task(filename):
  4. data = np.genfromtxt(filename, delimiter=',', dtype='int')
  5. sorted_data = np.sort(data)
  6. rms = np.sqrt(np.mean(data**2))
  7. mean = np.mean(data)
  8. print("The rms is: " + str(rms))
  9. print("The mean is: " + str(mean))
  10. bins = {}
  11. for k in sorted_data:
  12. if k not in bins:
  13. bins[k] = 1
  14. else:
  15. bins[k] += 1
  16. #target = np.floor(rms)
  17. target = np.floor(mean)
  18. print("Target: " + str(target))
  19. fuel = 0
  20. for k, v in bins.items():
  21. distance = abs(k-target)
  22. consumption = ((distance*distance+distance)/2)
  23. #print("Movement from " + str(k) + " consumes " + str(consumption) + " for a total of " + str(consumption*v))
  24. fuel += consumption*v
  25. print("Fuel: " + str(fuel))
  26. os.system("pause")
  27. def parse_arguments():
  28. parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
  29. parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
  30. args = parser.parse_args()
  31. return args
  32. def main():
  33. args = parse_arguments()
  34. solve_task(args.filename)
  35. if __name__ == "__main__":
  36. main()