diff options
| author | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:07:58 +0200 |
|---|---|---|
| committer | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:07:58 +0200 |
| commit | 967be9e750221ab2ab783f95df79bb26d290a45e (patch) | |
| tree | 6802900a5e975f9f68b169f0f503f040056d6952 /ero1/src/demo/demo_stats.py | |
Diffstat (limited to 'ero1/src/demo/demo_stats.py')
| -rw-r--r-- | ero1/src/demo/demo_stats.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/ero1/src/demo/demo_stats.py b/ero1/src/demo/demo_stats.py new file mode 100644 index 0000000..d8dc78c --- /dev/null +++ b/ero1/src/demo/demo_stats.py @@ -0,0 +1,64 @@ +import math +import parameters + +def stats_deneigeuses(all_costs): + ''' + Calcule les statistiques des déneigeuses. + Parameters: + all_costs : Liste des coûts des déneigeuses. + Returns: + Un dictionnaire contenant les statistiques des déneigeuses. + ''' + result = { + "list":all_costs + } + result["number"] = len(all_costs) + result["dist"] = { + "max": max(d["dist"] for d in all_costs) / 1000, + "min": min(d["dist"] for d in all_costs) / 1000, + "total": sum(d["dist"] for d in all_costs) / 1000 + } + result["dist"]["avg"] = result["dist"]["total"] / result["number"] + result["time"] = {} + result["time"]["real"] = {"t1": {}, "t2": {}} + result["time"]["real"]["t1"]["avg"] = result["dist"]["avg"] / parameters.TYPE_I_SPEED + result["time"]["real"]["t2"]["avg"] = result["dist"]["avg"] / parameters.TYPE_II_SPEED + result["time"]["real"]["t1"]["max"] = result["dist"]["max"] / parameters.TYPE_I_SPEED + result["time"]["real"]["t2"]["max"] = result["dist"]["max"] / parameters.TYPE_II_SPEED + + + def coutHoraireTypeI(heures): + return heures * parameters.TYPE_I_COST_HOUR_UNDER_8 if heures <= 8 else 8 * parameters.TYPE_I_COST_HOUR_UNDER_8 + (heures - 8) * parameters.TYPE_I_COST_HOUR_ABOVE_8 + + def coutHoraireTypeII(heures): + return heures * parameters.TYPE_II_COST_HOUR_UNDER_8 if heures <= 8 else 8 * parameters.TYPE_II_COST_HOUR_UNDER_8 + (heures - 8) * parameters.TYPE_II_COST_HOUR_ABOVE_8 + + coutTotalTypeI = ( + parameters.TYPE_I_COST_FIXED * (result["number"]) + + parameters.TYPE_I_COST_KILO * result["dist"]["total"] + + coutHoraireTypeI(result["time"]["real"]["t1"]["avg"] * result["number"])) + + + coutTotalTypeII = ( + parameters.TYPE_II_COST_FIXED * result["number"] + + parameters.TYPE_II_COST_KILO * result["dist"]["total"] + + coutHoraireTypeII(result["time"]["real"]["t2"]["avg"] * result["number"]) + ) + result["cost"] = { + "t1":coutTotalTypeI, + "t2":coutTotalTypeII + } + return result + +def stats_drone(cost): + ''' + Calcule les statistiques du drone. + Parameters: + cost : Dictionnaire contenant les coûts du drone. + Returns: + Un dictionnaire contenant les statistiques du drone. + ''' + cost["distKM"] = cost["dist"] / 1000 + cost["time"]["real"] = (cost["distKM"] / parameters.SUPER_DRONE_SPEED) * 60 + cost["cost"] = parameters.SUPER_DRONE_COST_FIXED + parameters.SUPER_DRONE_COST_KILO * (cost["dist"] / 1000) + return cost
\ No newline at end of file |
