Najvhodnejsi je ten, ktory ma najdlhsiu vodorovnu hranu A, ak je takych viac, tak je to ten s najdlhsou zvislou hranou B. Aktualne to riesim algoritmicky (porovnavanim hran) ale verim, ze sa da taka funkcia napisat.
Pokud by to bylo omezene a integer, tak jak tu pisi predrecnici.
Pokud konecne, neomezene a realne, tak nic mensiho nez na R* by to se obavam neslo - a ten fitness by byl A + epsilon * B kde epsilon je nejake infinitesimalni cislo.
https://en.wikipedia.org/wiki/Hyperreal_number ale to je hezka hricka, pro implementaci v pocitaci naprosto nevhodna (tam to stejne skonci dvojici integeru/realu, coz jsou v podstate ty hyperrealna cisla taky ;-) )
Taky si dovolim poznamenat, ze funkce je "neco do ceho hodis jedno nebo vice cisel a vypadne z toho dalsi cislo, hlavne to takhle nerikejte v Karline", a v programu se nejak pouzije, takze mozna by stacilo uvazovat ne o fitness, ale o funkcni, co proste dva fitness porovna (a treba se to da predhodit do qsort(), nebo hledat nejvetsi porovnanim s poslednim nejvetsim)
pak by to mohl vypadat neco jako cmp(a1,a2,b1,b2) jako a1 == a2 ? sgn(b2 - b1) : sgn(a2 - a1)
a este by ma zaujimalo, aka je najmensia mozna/pripustna hodnota vahy N, aby funkcia (N x dlzka + sirka) vracala vzdy spravny/pozadovany vysledok, zrejme to bude zavysiet na rozmeroch tych obdlznikov, to by vedel nejaky matematik odvodit...
Matematik? To je snad naprosto trivialni, N > max(sirka) za predpokladu delka je prirozene cislo (proste delka*N musi prebit vzdycky sirku, kdyz tam povolis racionalni/realna cisla, tak ti N vyleze do nekonecna protoze potrebujes, aby N*min(delka) > max(sirka) .