Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 14. 03. 2014 15:08 — Editoval User123456 (14. 03. 2014 15:09)

User123456
Zelenáč
Příspěvky: 3
Škola: -
Pozice: student
Reputace:   
 

Algoritmus pro hledání "optimálního" prvku v poli.

Ahoj,

mám vytvořit algoritmus, který najde v poli n vzájemně různých čísel x_1, x_2, ..., x_n optimální prvek.
Ke každému číslu je asociována hodnota w_1, w_2, .... w_n, taková, že platí

http://i.stack.imgur.com/Al5y2.gif

A pro ten optimální prvek má platit:

http://i.stack.imgur.com/zhYYO.gif

http://i.stack.imgur.com/Zwjuz.gif

Výsledný algoritmus má mít složitost O(n). Zatím mám takovýto algoritmus, který ale není asi úplně korektní, jelikož bere prvky, které mají index i < k, ale ne x_i < x_k:

proc OptimalElement(arr[])
  prevs_w := 0
  nexts_w := 0
 
  for (i = 0; i <= n; i++)
  {
    wi := arr[i].w
   
    nexts_w := 1 - prevs_w - wi
 
    IF (prevs_w < 0,5 && nexts_w <= 0,5) THEN
      return arr[i]
    ELSE
      prevs_w := prevs_w + wi
    ENDIF
  }
end

Můžete mi poradit? Máte nějaký nápad?

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson