🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27546

Re: Interpolacja Liniowa

#27546
From: Bart Ogryczak
Date: Tue, 29 Jun 2010 09:39
43 lines
2856 bytes
On Jun 29, 11:08 am, rav <rafalgulin...@gmail.com> wrote:
> On 28 Cze, 18:49, Bart Ogryczak <b.ogryc...@gmail.com> wrote:
>
>
>
>
>
> > On Jun 26, 8:41 pm, rav <rafalgulin...@gmail.com> wrote:
>
> > > Nie dziala kiedy x2-x1 == 0 (div by zero)
> > > dlatego dodalbym sprawdzenie roznicy tych wartosci do funkcji
>
> > > def getInterpolated(x0,y0, x1, y1):
> > >     if x1 - x0 == 0:
> > >         print 'x1 i x0 can\'t be equal'
> > >         return None
> > >     a = (y1 - y0) / (x1 - x0)
> > >     b = y0 - a * x0
> > >     def interpolate(x):
> > >         return a * x + b
> > >     return None
>
> > Pythonistycznie, to raczej będzie tak:
>
> > try:
> >     a = (y2 - y1) / (x2 - x1)
> >     b = ((-x1) * (y2 - y1) - (x2 - x1) * (-y1)) / (x2 - x1)
> >     def interpolate(x):
> >         return a * x + b
> >     return interpolate
> > except ZeroDivisionError:
> >     print 'x1 i x0 can\'t be equal'
> >     return None
>
> Przy czestym x2-x1 == 0 "if" bedzie mniej kosztowny ale jezeli ten
> warunek bedzie rzadko spelniony to faktycznie wyjatek jest lepszym
> rozwiazaniem.
>
> zrodelko:http://stackoverflow.com/questions/2522005/cost-of-exception-handlers...

No, jeśli chodzi o wydajność, to się zgadza. Natomiast jeśli chodzi o
styl to
http://stackoverflow.com/questions/1835756/
Technical Details
Message-ID: <6631c75e-51c4-4f47-8ae8-246874cc351d@c10g2000yqi.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!c10g2000yqi.googlegroups.com!not-for-mail
References: <76da39d8-1875-4b7e-b66b-a1ef32499279@u26g2000yqu.googlegroups.com> <i035le$ioj$1@news.onet.pl> <b189acfc-d1de-4cb3-8831-4e11e3d87054@d8g2000yqf.googlegroups.com> <031bca8d-171b-4d28-beb8-f64b45568212@r27g2000yqb.googlegroups.com> <b523c0af-9d35-4585-b3cb-ddc4f33e7f71@t10g2000yqg.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!c10g2000yqi.googlegroups.com!not-for-mail
From: Bart Ogryczak <b.ogryczak@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Interpolacja Liniowa
Date: Tue, 29 Jun 2010 02:39:50 -0700 (PDT)
Organization: http://groups.google.com
Lines: 45
Message-ID: <6631c75e-51c4-4f47-8ae8-246874cc351d@c10g2000yqi.googlegroups.com>
References: <76da39d8-1875-4b7e-b66b-a1ef32499279@u26g2000yqu.googlegroups.com>  <i035le$ioj$1@news.onet.pl> <b189acfc-d1de-4cb3-8831-4e11e3d87054@d8g2000yqf.googlegroups.com>  <031bca8d-171b-4d28-beb8-f64b45568212@r27g2000yqb.googlegroups.com>  <b523c0af-9d35-4585-b3cb-ddc4f33e7f71@t10g2000yqg.googlegroups.com>
NNTP-Posting-Host: 94.100.112.225
Mime-Version: 1.0
X-Trace: posting.google.com 1277804392 6591 127.0.0.1 (29 Jun 2010 09:39:52 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 29 Jun 2010 09:39:52 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: c10g2000yqi.googlegroups.com; posting-host=94.100.112.225;  posting-account=1kG_1AoAAADLEA3eucGvO2J-Uo4aPCW_
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US)  AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.86 Safari/533.4,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit