Efektívny algoritmus pre výpočet najrýchlejší čas na vzdialenosť interval

0

Otázka

Ja by som vedieť, či existujú nejaké efektívny algoritmus odporúčania, ktoré sú rýchle a nemajú konzumovať príliš veľa prostriedkov, výpočtovej najrýchlejší interval vzdialenosti v slede údajov. Inými slovami algoritmus vráti minimálny čas na intervale n metrov, z dátového súboru.

Napr.:

Vstup

  • data_list: [{vzdialenosť: 0, čas:0},{vzdialenosť: 1 m, čas:2s},{vzdialenosť: 4 m, čas:4s}...{vzdialenosť:10000m, čas: 3600s}]
  • distance_interval: 345m

Výstup

  • fastest_interval_start_distance: 7655 m
  • fastest_interval_end_distance: 8000 m
  • fastest_interval_time: n sekúnd

Ďakujeme

algorithm
2021-11-23 23:52:19
1

Najlepšiu odpoveď

0

Vytvoril som nasledovné riešenie, ktoré má zložitosť beží čas O(n). S pomocou memoization, aby sa zabránilo recomputing údaje, ktoré už bola prekročená.

Funguje tak, že s min max index index a, ktoré sú spojené s minimálny čas.

  1. min. index začína na index 0, čas 0, a fastest_interval_start_distance 0
  2. max index je pridelené, akonáhle distance_interval je dosiahnuť, a fastest_interval_end_distance obsahuje hodnoty vzdialenosti na takéto index
  3. súčet časový rozdiel medzi dátové položky sú uložené v fastest_interval_time
  4. min max index index a začať sa pohybovať vpred, keďže vzdialenosť sa zvyšuje s každej položky.
  5. Ak súčet časové rozdiely medzi min a max je menej ako fastest_interval_time, aktuálny výstup sa aktualizuje vrátane fastest_interval_start_distance a fastest_interval_end_distance a fastest_interval_time
  6. Okraj prípadom, keď množina údajov je prázdny alebo distance_interval je vyššia ako celková vzdialenosť. Ďakujeme!
2021-11-24 02:13:06

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................