Hirdetés

Keresés

Új hozzászólás Aktív témák

  • F-ECT$

    titán

    válasz orbano #3796 üzenetére

    No meglett a megoldás, ha jól látom akkor 3-an dolgoztunk rajta, és mindhármunk ötleteiből van benne.

    A lényeg:
    1. Egyesével végigmegyek az UTAZÁS táblán, kiválogatom hozzá azokat a MUNKÁKAT, amik ez alatt történnek. (A már emlegetett 4 alapeset).
    2. Ha találok egy ilyet, akkor rögtön alkotok egy új intervallumot, amibe az UTAZÁS és a MUNKA közös részének eleje és vége kerül. (EXTEND-elgetem ezt az intervallum listát, amíg kell.)
    3. Ezután végigmegyek az így képzett intervallum listán, és megpróbálom ezeket összevonni. (Itt is a 4 alapeset lehetséges.)

    For I In 1..lista_hossza Loop
    For J In 2..lista_hossza Loop
    <Ha I és J összevonható, akkor összevonom őket. J-be kerül az összevont intervallum, és megjegyzem, hogy I-t a továbbiakban nem kell figyelembe venni. >

    4. Az így képzett új intervallum lista már diszjunkt időintervallumokat tartalmaz, tehát összeadható és megadja a MUNKA és UTAZÁS közös részét.

    Végeredmény: 1600000 sorra kb 10 perc alatt lefut.

Új hozzászólás Aktív témák