eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingszybki logarytmRe: szybki logarytm
  • X-Received: by 10.140.32.227 with SMTP id h90mr392qgh.26.1406107988646; Wed, 23 Jul
    2014 02:33:08 -0700 (PDT)
    X-Received: by 10.140.32.227 with SMTP id h90mr392qgh.26.1406107988646; Wed, 23 Jul
    2014 02:33:08 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!news.glorb.com!h18no5981697igc.0!news-out.g
    oogle.com!cz11ni6302qab.1!nntp.google.com!v10no2022681qac.1!postnews.google.com
    !glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 23 Jul 2014 02:33:08 -0700 (PDT)
    In-Reply-To: <lqmenj$s69$1@node2.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.30.96.46;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 78.30.96.46
    References: <lqh403$k4t$1@node2.news.atman.pl> <lqmenj$s69$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <d...@g...com>
    Subject: Re: szybki logarytm
    From: firr <p...@g...com>
    Injection-Date: Wed, 23 Jul 2014 09:33:08 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:206405
    [ ukryj nagłówki ]

    W dniu wtorek, 22 lipca 2014 21:40:32 UTC+2 użytkownik feldmarszałek tusk napisał:
    > trochę zboczyliśmy z tematu...
    >
    >
    >
    > pytanie jest takie, jak uzyskać równomierny rozkład punktów na osi x,
    >
    > gdy skala jest logarytmiczna...
    >
    >
    >
    > nie wiem czy Ktoś mnie zrozumie, ale może...

    to jest podstawowka (moze liceum, nie pamietam):

    jesli masz np liczby z zakresu 32bit czyli do okolo 2G, logarytm okresla jakby
    dlugosc zapisu pozycyjnego


    log 1 = 0
    log 10 = 1
    log 100 = 2
    log 1000 = 3
    log 1 000 000 000 = 9

    nie wiem czy posiadasz liczby z zakresow 0-1
    lub mniejsze od zera ale pewnie nie wiec mozna ich nie rozwazac *

    masz wiec na osi x 10 kratek od 0 do 10
    odpowiadajace liczbom 1-10 000 000 000
    (mozna to przeskalowac - rozciagnac by bylo
    dluzse ale na osi x oznaczalbym kreseczki 0,1,2,3,4,5,6,7,8,9,10;

    dla danego punktu - bierzesz np 3.7 i liczysz
    10 do potegi 3.7 (okolo 5011) czyli odpowiadajacy temu punktowi 3.7 jest x= 5011

    jesli rysujesz wykres y=f(x) w tej skali to robisz cos takkiego

    for(float x = 0; x < 10; x += 10./width)
    {
    y = f( pow(10,x) );
    Setpixel(x*width/10., y*height/maxy);
    }

    jesli z kolei chcesz wstawic dane (np z tablicy) na wykres to robisz cos w stylu

    SetPixel(log(x)*width/10, y*height/maxy)

    * log ma ta ceche ze dla liczb z zakresu 0-1
    podeje ujemne wartosci to jest troche sprzeczne z tym zastosowaniem tutaj - gdzie
    bardziej by pasowalo by np liczby od 0-1 dawaly wartosci tez od 0 do 1 (odpowiadajace
    koncepcji tej dlugosci zapisu) w tym sensie
    chyba nalezaloby dobrac jakas lekko inna funkcje niz czysty logarytm ale nie wiem co
    by to bylo

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: