Thread View: pl.comp.lang.javascript
10 messages
10 total messages
Started by zlotowinfo
Tue, 29 Dec 2009 23:21
złożoność obliczeniowa
Author: zlotowinfo
Date: Tue, 29 Dec 2009 23:21
Date: Tue, 29 Dec 2009 23:21
16 lines
1592 bytes
1592 bytes
mam problem ze złożonością obliczeń
za jednym kliknięciem wykonuje
function zaokr(zaok){return parseInt(zaok*10)/10;}
function add0(cyfra,ile,ile2){cyfra=cyfra.toString();if(ile!=0){if(cyfra.indexOf('.')>=0){}else{cyfra+='.'}}ileteraz=cyfra.length-cyfra.indexOf('.')-1;for(add0licz=1;add0licz<=ile-ileteraz;add0licz++){cyfra+='0';}while(cyfra.length<ile2){cyfra=' '+cyfra;}return cyfra;}
zaokr - do pierwszego miejsca po przecinku
add0 - dodaje stringowi 0 na końcu by była liczba zawsze z dwoma miejscami, i dla porządku dodatkowo szerokość stringa do pisania w kolumnach np. textarea
--
http://zbanki.prv.pl - darmowe bankowanie
http://zlokaty.prv.pl - kalkulator lokat
http://zvoip.prv.pl - tanie voipowanie
Re: złożoność obliczeniowa
Author: Peter May
Date: Wed, 30 Dec 2009 07:29
Date: Wed, 30 Dec 2009 07:29
16 lines
1767 bytes
1767 bytes
W dniu 2009-12-30 00:21, zlotowinfo pisze:
>
> mam problem ze złożonością obliczeń
> za jednym kliknięciem wykonuje
>
>
> function zaokr(zaok){return parseInt(zaok*10)/10;}
> function add0(cyfra,ile,ile2){cyfra=cyfra.toString();if(ile!=0){if(cyfra.indexOf('.')>=0){}else{cyfra+='.'}}ileteraz=cyfra.length-cyfra.indexOf('.')-1;for(add0licz=1;add0licz<=ile-ileteraz;add0licz++){cyfra+='0';}while(cyfra.length<ile2){cyfra=' '+cyfra;}return cyfra;}
>
> zaokr - do pierwszego miejsca po przecinku
> add0 - dodaje stringowi 0 na końcu by była liczba zawsze z dwoma miejscami, i dla porządku dodatkowo szerokość stringa do pisania w kolumnach np. textarea
To teraz pytanie: a z czym masz problem?
--
Peter
Re: złożoność obliczeniowa
Author: zlotowinfo
Date: Wed, 30 Dec 2009 16:56
Date: Wed, 30 Dec 2009 16:56
24 lines
2028 bytes
2028 bytes
Użytkownik "Peter May" <peter.may@poczta.fm> napisał w wiadomości news:hhevlk$bff$1@atlantis.news.neostrada.pl...
>W dniu 2009-12-30 00:21, zlotowinfo pisze:
>>
>> mam problem ze złożonością obliczeń
>> za jednym kliknięciem wykonuje
>>
>>
>> function zaokr(zaok){return parseInt(zaok*10)/10;}
>> function add0(cyfra,ile,ile2){cyfra=cyfra.toString();if(ile!=0){if(cyfra.indexOf('.')>=0){}else{cyfra+='.'}}ileteraz=cyfra.length-cyfra.indexOf('.')-1;for(add0licz=1;add0licz<=ile-ileteraz;add0licz++){cyfra+='0';}while(cyfra.length<ile2){cyfra=' '+cyfra;}return cyfra;}
>>
>> zaokr - do pierwszego miejsca po przecinku
>> add0 - dodaje stringowi 0 na końcu by była liczba zawsze z dwoma miejscami, i dla porządku dodatkowo szerokość stringa do pisania w kolumnach np. textarea
>
> To teraz pytanie: a z czym masz problem?
>
z mocą obliczeniową użytkowników strony
--
http://zbanki.prv.pl - darmowe bankowanie
http://zlokaty.prv.pl - kalkulator lokat
http://zvoip.prv.pl - tanie voipowanie
Re: złożoność obliczeniowa
Author: fv
Date: Thu, 31 Dec 2009 10:02
Date: Thu, 31 Dec 2009 10:02
23 lines
1517 bytes
1517 bytes
zlotowinfo wrote:
> function zaokr(zaok){return parseInt(zaok*10)/10;}
> function add0(cyfra,ile,ile2){cyfra=cyfra.toString();if(ile!=0){if(cyfra.
(ciach)
Oooo stary... tyś to napisał? To jakiś koszmar...
> zaokr - do pierwszego miejsca po przecinku
> add0 - dodaje stringowi 0 na końcu by była liczba zawsze z dwoma miejscami, i dla porządku dodatkowo szerokość stringa do pisania w kolumnach np. textarea
OMG!
zaokrLiczba = Math.round(liczba);
add0 = liczba.toFixed(2);
szerokosc = ("" + liczba).length;
... nie wiem czy na 100% zadziała, ale ja bym szedł w tą stronę.
--
fv
Xbox gamertag: fastviper PL
Moto: Suzuki GSX 650F
Auto: Nissan Primera 2,0
Re: złożoność obliczeniowa
Author: zlotowinfo
Date: Thu, 31 Dec 2009 11:37
Date: Thu, 31 Dec 2009 11:37
33 lines
1963 bytes
1963 bytes
Użytkownik "fv" <fake@cybax.com> napisał w wiadomości news:hhhstr$91d$1@inews.gazeta.pl...
> zlotowinfo wrote:
>> function zaokr(zaok){return parseInt(zaok*10)/10;}
>> function add0(cyfra,ile,ile2){cyfra=cyfra.toString();if(ile!=0){if(cyfra.
> (ciach)
>
> Oooo stary... tyś to napisał? To jakiś koszmar...
>
>> zaokr - do pierwszego miejsca po przecinku
>> add0 - dodaje stringowi 0 na końcu by była liczba zawsze z dwoma miejscami, i dla porządku dodatkowo szerokość stringa do pisania w kolumnach np. textarea
>
> OMG!
>
> zaokrLiczba = Math.round(liczba);
to mi źle zaokragli
2.59 ma być 2,60 round daje 3
> add0 = liczba.toFixed(2);
to jest ok!!! liczba.toFixed(1)
> szerokosc = ("" + liczba).length;
>
tp jeszcze oblukam
> ... nie wiem czy na 100% zadziała, ale ja bym szedł w tą stronę.
>
dzięki :)
--
http://zbanki.prv.pl - darmowe bankowanie
http://zlokaty.prv.pl - kalkulator lokat
http://zvoip.prv.pl - tanie voipowanie
Re: złożoność obliczeniowa
Author: zlotowinfo
Date: Fri, 01 Jan 2010 17:36
Date: Fri, 01 Jan 2010 17:36
16 lines
1510 bytes
1510 bytes
Użytkownik "fv" <fake@cybax.com> napisał w wiadomości news:hhhstr$91d$1@inews.gazeta.pl...
> zaokrLiczba = Math.round(liczba);
> add0 = liczba.toFixed(2);
> szerokosc = ("" + liczba).length;
>
> ... nie wiem czy na 100% zadziała, ale ja bym szedł w tą stronę.
>
ciekawie wyglądało, ale nie chce działać
co przy max małej złożoności obliczeniowej
doda potrzebną mi ilość spacji
--
http://zbanki.prv.pl - darmowe bankowanie
http://zlokaty.prv.pl - kalkulator lokat
http://zvoip.prv.pl - tanie voipowanie
Re: złożoność obliczeniowa
Author: A.L.E.C
Date: Wed, 06 Jan 2010 13:45
Date: Wed, 06 Jan 2010 13:45
23 lines
1531 bytes
1531 bytes
zlotowinfo wrote:
> ciekawie wyglądało, ale nie chce działać
> co przy max małej złożoności obliczeniowej
> doda potrzebną mi ilość spacji
chodzi ci o ten fragment?
while(cyfra.length<ile2){cyfra=' '+cyfra;}
nie wiem czy da się to zrobić lepiej, to jest dość czytelne i proste ale
można bez pętli:
var len = ile2 - cyfra.length;
var pad = new Array(len > 0 ? len : 0).join(' ');
cyfra = pad + cyfra;
p.s. czy nie uważasz że słowo "liczba" bardziej tutaj pasuje niż "cyfra"? ;)
--
Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252
LAN Management System Developer http://lms.org.pl
Roundcube Webmail Developer http://roundcube.net
Re: złożoność obliczeniowa
Author: zlotowinfo
Date: Thu, 07 Jan 2010 09:31
Date: Thu, 07 Jan 2010 09:31
33 lines
1632 bytes
1632 bytes
więc pozostaje pętla, wyniki:
IE7 - pętla 1s, wersja z join 6s
SAPHARI - pętla 0s, wersja z join 1s
FIREFOX - pętla 1s, wersja z join 2s
OPERA - pętla 1s, wersja z join 2s
function r1(cyfra, ile2)
{
while(cyfra.length<ile2){cyfra=' '+cyfra;}
return cyfra;
}
function r2(cyfra, ile2)
{
var len = ile2 - cyfra.length;
var pad = new Array(len > 0 ? len : 0).join(' ');
cyfra = pad + cyfra;
return cyfra;
}
czas1 = new Date();czas1=czas1.getSeconds();
for(i=0;i<=700000;i++)
{
x=r1(1,20)
}
czas2 = new Date();czas2=czas2.getSeconds();
document.write(czas2-czas1);
Re: złożoność obliczeniowa
Author: Peter May
Date: Thu, 07 Jan 2010 13:25
Date: Thu, 07 Jan 2010 13:25
50 lines
2115 bytes
2115 bytes
W dniu 2010-01-07 10:31, zlotowinfo pisze:
> więc pozostaje pętla, wyniki:
>
> IE7 - pętla 1s, wersja z join 6s
> SAPHARI - pętla 0s, wersja z join 1s
> FIREFOX - pętla 1s, wersja z join 2s
> OPERA - pętla 1s, wersja z join 2s
>
>
>
> function r1(cyfra, ile2)
> {
> while(cyfra.length<ile2){cyfra=' '+cyfra;}
> return cyfra;
> }
Ja bym zoptymalizował to tak:
function r1(cyfra, ile2)
{
var i = ile2.length;
while(i--)
{
cyfra=' '+cyfra;
}
return cyfra;
}
Sprawdź po tym czas wykonania tego.
> function r2(cyfra, ile2)
> {
> var len = ile2 - cyfra.length;
> var pad = new Array(len> 0 ? len : 0).join(' ');
> cyfra = pad + cyfra;
> return cyfra;
> }
>
>
> czas1 = new Date();czas1=czas1.getSeconds();
> for(i=0;i<=700000;i++)
> {
> x=r1(1,20)
> }
>
> czas2 = new Date();czas2=czas2.getSeconds();
> document.write(czas2-czas1);
--
Peter
Re: złożoność obliczeniowa
Author: zlotowinfo
Date: Mon, 11 Jan 2010 11:54
Date: Mon, 11 Jan 2010 11:54
26 lines
1812 bytes
1812 bytes
Użytkownik "Peter May" <peter.may@poczta.fm> napisał w wiadomości news:hi4ng7$8kd$1@atlantis.news.neostrada.pl...
> Ja bym zoptymalizował to tak:
>
> function r1(cyfra, ile2)
> {
> var i = ile2.length;
> while(i--)
> {
> cyfra=' '+cyfra;
> }
> return cyfra;
> }
>
użycie dodatkowego przypisania sprawiło że kod:
<script>for(i=0;i<=850000;i++){x=r1(1,10)}</script>
<script>for(i=0;i<=850000;i++){x=r1(1,10)}</script>
<script>for(i=0;i<=850000;i++){x=r1(1,10)}</script>
z propozycją 1 wykonywał 5-6 sek
z propozycją 3 6-7 sek
--
http://zbanki.prv.pl - darmowe bankowanie
http://zlokaty.prv.pl - kalkulator lokat
http://zvoip.prv.pl - tanie voipowanie
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads