eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAlgorytmiczny problem lamera... :-) › Re: Algorytmiczny problem lamera... :-)
  • X-Received: by 10.140.102.110 with SMTP id v101mr36210qge.6.1413113986888; Sun, 12
    Oct 2014 04:39:46 -0700 (PDT)
    X-Received: by 10.140.102.110 with SMTP id v101mr36210qge.6.1413113986888; Sun, 12
    Oct 2014 04:39:46 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    uq10no9172096igb.0!news-out.google.com!i10ni84qaf.0!nntp.google.com!dc16no22857
    58qab.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 12 Oct 2014 04:39:46 -0700 (PDT)
    In-Reply-To: <m1dmig$8km$1@node1.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.253.61.68;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 77.253.61.68
    References: <1...@g...com>
    <m0s8le$lfc$1@node2.news.atman.pl>
    <4...@g...com>
    <m18osf$4gt$1@node1.news.atman.pl>
    <2...@g...com>
    <m1cdr5$18m$1@node1.news.atman.pl>
    <1...@g...com>
    <m1dmig$8km$1@node1.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <a...@g...com>
    Subject: Re: Algorytmiczny problem lamera... :-)
    From: "M.M." <m...@g...com>
    Injection-Date: Sun, 12 Oct 2014 11:39:46 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:206740
    [ ukryj nagłówki ]

    On Sunday, October 12, 2014 12:53:04 PM UTC+2, bartekltg wrote:

    > Jeśli zawsze i wszędzie masz 30, może array<int,30> coś poprawi.
    Bedę mial jeszcze wieksza sieczke, tamto na pastebin stanowi tylko
    zgrubny test. Docelowo mniej / wiecej:

    struct A {
    QVector<int> iv;
    QVector<float> fv;
    };

    struct B {
    QVector< A > vs;
    };


    B b;
    for( i=0 ; i<b.vs.size() ; i++ ) {
    bool all = true;
    int j = 0;
    while( all && j<b.vs[i].iv.size() ) {
    all = b.vs[i].vi[j] >= mini[j] && b.vs[i].vi[j] <= maxi[j];
    j++;
    }
    j = 0;
    while( all && j<b.vs[i].fv.size() ) {
    all = b.vs[i].vf[j] >= minf[j] && b.vs[i].vf[j] <= maxf[j];
    j++;
    }
    if( all ) coś();
    }


    > Albo nawet adresować wszytko liniowo (skoro nie boisz się
    > bawić wskaźnikami, i to nie powinno być problemem.)
    Pewnie druga wersja bedzie na samych wskaznikach i malloc.


    > Poza tym,
    > vector[i][j] >= min[j] && vector[i][j] >= min[j]
    > To imho dwa razy to samo.
    Mialo byc
    vector[i][j] >= min[j] && vector[i][j] <= max[j]
    Na pastebinie jest troche lepsza wersja.

    > Czysto estetycznie, może drugiego fora zastąpić while,
    > (albo nawet std::find_if, w końcu szukasz pierwszego
    > elementu nie spełniającego pewnego kryterium), początkowo
    > patrząc na ten kod 'nie widziałem' tego, że for kręci pustą
    > instrukcją.
    Tak, puste instrukcje nie sa zbyt czytelne.


    > To się cudownie równoległa;-)
    Tak! Ale to potem.

    Ciekawe czy na dlugich rejestrach by sie dalo sprawdzic kilka
    warunkow w jednej iteracji. Na karcie grafiki tez powinno
    niezle przyspieszyc, ale moja ksiazka do CUDA lezy od ponad
    roku na polce i jeszcze do teraz smierdzi drukarnia :D

    Pozdrawiam

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: