#5 hlucheucho
no ono to nebude tak snadné a efektivní skládat to z nejbližších nižších např pokud chci odpor 440 složit z řady E12, tak nejjednodušší je 2x220, pokud bys to hledal po nejbližší tak bys dostal 390+47+2,7= 439,7, v E24 vy to šlo více způsoby např 430+10 nebo 330+110, otázkou je jestli možno kombinovat řady.
Já bych na řady udělal seřazené pole, pokud není hodnota v poli, vzal bych index nejbližší nižší (horní index) a k tomu bych hledal od nejnižších dokud by součet nebyl roven nebo vyšší, když vyšší uložil bych si do pole struktury(nižší hodnotu a oba indexy) snížil bych horní index a pokračoval s hledáním od spodního indexu (tím je vyřešena částečná optimalizace) proces bych opakoval dokud se indexy nesetkají.
Otázkou je zda jít s indexy k sobě nebo od sebe (nalézt nejbližsí index k Hodnota/2) od tam jít nahoru a dolů myslím, že je tam složitější test na ty hranice, v popsaném algoritmu se testuje jen jestli dolní index již není větší než horní, v druhém případě by se muselo testovat zda dolní index nedorazil na začátek a hodnota z horního není větší než požadovaná.
Postup lze použít opakovaně na pole uložených párů jako hledání nové kombinace od požadované se odečte hodnota z horního indexu a hledá se pár pro zbytek který dá trojici.
do 1M by kombinace tří měla vykrýt cca 95% hodnot.
Heh úloha by šla ještě vylepšit o dispoziční množství a počítání sad pro celé schema :D