Thread View: pl.comp.lang.perl
9 messages
9 total messages
Started by Anonim Anonimowy
Sun, 23 Dec 2012 11:42
Perl tablice
Author: Anonim Anonimowy
Date: Sun, 23 Dec 2012 11:42
Date: Sun, 23 Dec 2012 11:42
6 lines
338 bytes
338 bytes
Witam, czy da siê w szybki i wygodny sposób w perlu jako¶ okre¶liæ tablice w ten sposób, aby podaæ jej maksymaln± wielko¶æ, a w momencie gdy dodaje do niej element i jest pe³na to ¿eby nast±pi³o przesuniêcie elementów w prawo, skasowanie ostatniego i zwolnienie miejsca dla pierwszego (dodanego).
Re: Perl tablice
Author: Anonim Anonimowy
Date: Sun, 23 Dec 2012 13:22
Date: Sun, 23 Dec 2012 13:22
43 lines
1304 bytes
1304 bytes
W dniu niedziela, 23 grudnia 2012 21:30:16 UTC+1 u¿ytkownik Stachu 'Dozzie' K. napisa³: > On 2012-12-23, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: > > > Witam, czy da siê w szybki i wygodny sposób w perlu jako¶ okre¶liæ tablice w ten sposób, aby podaæ jej maksymaln± wielko¶æ, a w momencie gdy dodaje do niej element i jest pe³na to ¿eby nast±pi³o przesuniêcie elementów w prawo, skasowanie ostatniego i zwolnienie miejsca dla pierwszego (dodanego). > > > > Znak zapytania koñczy pytanie. > > > > To, co ty chcesz, przypomina kolejkê FIFO. Nie widzia³em jeszcze jêzyka > > ogólnego przeznaczenia, który ma to wbudowane (chyba ¿e w bibliotece > > standardowej). U¿yj CPAN albo stwórz sobie w³asny modu³ na podstawie > > Tie::Array. > > > > -- > > Secunia non olet. > > Stanislaw Klekot Nie, FIFO spe³nia zupe³nie inn± rolê, nie chce, aby pierwszy element na wej¶ciu stawa³ siê pierwszym na wyj¶ciu bo to by nie mia³o sensu. Problem rozwi±za³em w zupe³nie inny i szybki sposób korzystaj±c z zakresów, dodaje element na pocz±tku, tworzy mi siê tablica 101 elementowa, a potem sam robie z niej 100 elementow± [0..99]. Pozdrawiam.
Re: Perl tablice
Author: Anonim Anonimowy
Date: Sun, 23 Dec 2012 16:00
Date: Sun, 23 Dec 2012 16:00
100 lines
2872 bytes
2872 bytes
W dniu poniedzia³ek, 24 grudnia 2012 00:04:16 UTC+1 u¿ytkownik Stachu 'Dozzie' K. napisa³: > On 2012-12-23, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: > > > W dniu niedziela, 23 grudnia 2012 21:30:16 UTC+1 u¿ytkownik Stachu 'Dozzie' K. napisa³: > > >> On 2012-12-23, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: > > >> > > >> > Witam, czy da siê w szybki i wygodny sposób w perlu jako¶ okre¶liæ tablice w ten sposób, aby podaæ jej maksymaln± wielko¶æ, a w momencie gdy dodaje do niej element i jest pe³na to ¿eby nast±pi³o przesuniêcie elementów w prawo, skasowanie ostatniego i zwolnienie miejsca dla pierwszego (dodanego). > > >> > > >> > > >> > > >> Znak zapytania koñczy pytanie. > > >> > > >> > > >> > > >> To, co ty chcesz, przypomina kolejkê FIFO. Nie widzia³em jeszcze jêzyka > > >> > > >> ogólnego przeznaczenia, który ma to wbudowane (chyba ¿e w bibliotece > > >> > > >> standardowej). U¿yj CPAN albo stwórz sobie w³asny modu³ na podstawie > > >> > > >> Tie::Array. > > > > > Nie, FIFO spe³nia zupe³nie inn± rolê, nie chce, aby pierwszy element > > > na wej¶ciu stawa³ siê pierwszym na wyj¶ciu bo to by nie mia³o sensu. > > > Problem rozwi±za³em w zupe³nie inny i szybki sposób korzystaj±c > > > z zakresów, dodaje element na pocz±tku, tworzy mi siê tablica 101 > > > elementowa, a potem sam robie z niej 100 elementow± [0..99]. > > > > A teraz opisz, w jaki sposób siê ró¿ni twoje rozwi±zanie od FIFO. > > > > I wyja¶nij, czemu uwa¿asz przepisywanie za ka¿dym razem wszystkich stu > > elementów (i to dwukrotnie!) za szybkie. > > > > -- > > Secunia non olet. > > Stanislaw Klekot Ty zak³adasz, ¿e ja chcê w pewien sposób kolejkowaæ odczytywane elementy, a mi zale¿y na tablicy któr± bêdê móg³ odczytaæ w dowolny sposób, np. ¶rodkowy element w czasie rzeczywistym, zapyta³em ogólnie, a nie do konkretnego zastosowania. Po drugie jakie jakie dwukrotne przepisywanie?! Matematyka siê k³ania... Za³ó¿my, ¿e mam tablice i wykonam takie operacje: @array = (1..10); @array = @array[0..3]; Gdzie tu dwukrotne przepisanie? Co wiêcej g³owy sobie uci±æ nie dam, ¿e perl nie jest wyczulony na tego typu operacje i nie przepisze danych na zupe³nie nowe adresy tylko po prostu skróci tablice zamiast ca³± przepisywaæ. Moja tablica bêdzie po prostu z czasem zape³niana elementami, a mi zale¿y na tym, ¿eby tych elementów nigdy nie by³o wiêcej ni¿ 100, dodanie nowego elementu nie wi±¿e siê z tym, ¿e na pewno w tym samym czasie chce odczytaæ tablice...
Re: Perl tablice
Author: Anonim Anonimowy
Date: Sun, 23 Dec 2012 17:09
Date: Sun, 23 Dec 2012 17:09
113 lines
2890 bytes
2890 bytes
W dniu poniedzia³ek, 24 grudnia 2012 01:39:48 UTC+1 u¿ytkownik Stachu 'Dozzie' K. napisa³: > On 2012-12-24, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: > > [...] > > >> A teraz opisz, w jaki sposób siê ró¿ni twoje rozwi±zanie od FIFO. > > >> > > >> I wyja¶nij, czemu uwa¿asz przepisywanie za ka¿dym razem wszystkich stu > > >> elementów (i to dwukrotnie!) za szybkie. > > > > > Ty zak³adasz, ¿e ja chcê w pewien sposób kolejkowaæ odczytywane elementy, a mi zale¿y na tablicy któr± bêdê móg³ odczytaæ w dowolny sposób, np. ¶rodkowy element w czasie rzeczywistym, zapyta³em ogólnie, a nie do konkretnego zastosowania. > > > > Bo wiesz, FIFO o sta³ym maksymalnym rozmiarze siê nie da zrobiæ na > > tablicy. Tylko cicho o tym, bo jak siê mój kod o tym dowie, to > > przestanie dzia³aæ. > > > > A ten "czas rzeczywisty", mój drogi, to siê nazywa czasem sta³ym > > ("O(1)"). > > > > > Po drugie jakie jakie dwukrotne przepisywanie?! Matematyka siê k³ania... > > > Za³ó¿my, ¿e mam tablice i wykonam takie operacje: > > > @array = (1..10); > > > @array = @array[0..3]; > > > > > > Gdzie tu dwukrotne przepisanie? > > > > A jak dok³adasz element na pocz±tku tablicy, jeszcze przed tym kodem, to > > niby co siê robi? Hyc, i system operacyjny alokuje miejsce przed > > tablic±? W garbate anio³ki mo¿e wierzysz? > > > > > Co wiêcej g³owy sobie uci±æ nie dam, ¿e perl nie jest wyczulony na tego typu operacje i nie przepisze danych na zupe³nie nowe adresy tylko po prostu skróci tablice zamiast ca³± przepisywaæ. > > > > Tego by siê mo¿na spodziewaæ po pop(), a nie po przypisaniu z zakresem. > > Nie za du¿o ty wymagasz od optymalizatora, który ma byæ przede wszystkim > > szybki, a nie dawaæ szybki kod? > > > > > Moja tablica bêdzie po prostu z czasem zape³niana elementami, a mi > > > zale¿y na tym, ¿eby tych elementów nigdy nie by³o wiêcej ni¿ 100, > > > dodanie nowego elementu nie wi±¿e siê z tym, ¿e na pewno w tym samym > > > czasie chce odczytaæ tablice... > > > > To po prostu ignoruj dopisanie wszystkiego, co próbuje wle¼æ do > > zape³nionej tablicy. Chyba ¿e znowu spieprzy³e¶ sprawê nieprecyzyjnie > > opisuj±c oczekiwany skutek. > > > > -- > > Secunia non olet. > > Stanislaw Klekot Mogliby¶my tak jeszcze do rana wymieniaæ siê pogl±dami... Tak czy owak operacja na 100 elementach nie jest godna jakiej¶ optymalizacji bo w tym przypadku nawet siê nie odczuje ró¿nicy, a pos³u¿y za to fakt, ¿e kod jest krótki i nie trzeba ³adowaæ nowych modu³ów. Pozdrawiam.
Re: Perl tablice
Author: "Stachu 'Dozzie'
Date: Sun, 23 Dec 2012 20:30
Date: Sun, 23 Dec 2012 20:30
14 lines
715 bytes
715 bytes
On 2012-12-23, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: > Witam, czy da si� w szybki i wygodny spos�b w perlu jako� okre�li� tablice w ten spos�b, aby poda� jej maksymaln� wielko��, a w momencie gdy dodaje do niej element i jest pe�na to �eby nast�pi�o przesuni�cie element�w w prawo, skasowanie ostatniego i zwolnienie miejsca dla pierwszego (dodanego). Znak zapytania ko�czy pytanie. To, co ty chcesz, przypomina kolejk� FIFO. Nie widzia�em jeszcze j�zyka og�lnego przeznaczenia, kt�ry ma to wbudowane (chyba �e w bibliotece standardowej). U�yj CPAN albo stw�rz sobie w�asny modu� na podstawie Tie::Array. -- Secunia non olet. Stanislaw Klekot
Re: Perl tablice+ [TIEARRAY?]
Author: Andrzej Adam Fil
Date: Sun, 23 Dec 2012 21:35
Date: Sun, 23 Dec 2012 21:35
15 lines
641 bytes
641 bytes
Anonim Anonimowy <amkrankruleuen@gmail.com> pisze: > Witam, czy da się w szybki i wygodny sposób w perlu jakoś określić > tablice w ten sposób, aby podać jej maksymalną wielkość, a w momencie > gdy dodaje do niej element i jest pełna to żeby nastąpiło przesunięcie > elementów w prawo, skasowanie ostatniego i zwolnienie miejsca dla > pierwszego (dodanego). Popatrz na "perldoc -f tie" fragment TIEARRAY. Można zdefiniować klasę/pakiet "udające" tablice. To powyżej nie jest specjalnie pomocne dla "średnio zaawansowanych" ale powinno dostarczyć słów kluczowych do szukania bardziej "łopatologicznych" wersji.
Re: Perl tablice
Author: "Stachu 'Dozzie'
Date: Sun, 23 Dec 2012 23:04
Date: Sun, 23 Dec 2012 23:04
35 lines
1505 bytes
1505 bytes
On 2012-12-23, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: > W dniu niedziela, 23 grudnia 2012 21:30:16 UTC+1 u�ytkownik Stachu 'Dozzie' K. napisa�: >> On 2012-12-23, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: >> >> > Witam, czy da si� w szybki i wygodny spos�b w perlu jako� okre�li� tablice w ten spos�b, aby poda� jej maksymaln� wielko��, a w momencie gdy dodaje do niej element i jest pe�na to �eby nast�pi�o przesuni�cie element�w w prawo, skasowanie ostatniego i zwolnienie miejsca dla pierwszego (dodanego). >> >> >> >> Znak zapytania ko�czy pytanie. >> >> >> >> To, co ty chcesz, przypomina kolejk� FIFO. Nie widzia�em jeszcze j�zyka >> >> og�lnego przeznaczenia, kt�ry ma to wbudowane (chyba �e w bibliotece >> >> standardowej). U�yj CPAN albo stw�rz sobie w�asny modu� na podstawie >> >> Tie::Array. > Nie, FIFO spe�nia zupe�nie inn� rol�, nie chce, aby pierwszy element > na wej�ciu stawa� si� pierwszym na wyj�ciu bo to by nie mia�o sensu. > Problem rozwi�za�em w zupe�nie inny i szybki spos�b korzystaj�c > z zakres�w, dodaje element na pocz�tku, tworzy mi si� tablica 101 > elementowa, a potem sam robie z niej 100 elementow� [0..99]. A teraz opisz, w jaki spos�b si� r�ni twoje rozwi�zanie od FIFO. I wyja�nij, czemu uwa�asz przepisywanie za ka�dym razem wszystkich stu element�w (i to dwukrotnie!) za szybkie. -- Secunia non olet. Stanislaw Klekot
Re: Perl tablice
Author: orcus@pwr.wroc.p
Date: Sun, 23 Dec 2012 23:20
Date: Sun, 23 Dec 2012 23:20
21 lines
926 bytes
926 bytes
On 2012-12-23, Stachu 'Dozzie' K. <dozzie@go.eat.some.screws.spammer.invalid> wrote: >> Nie, FIFO spełnia zupełnie inną rolę, nie chce, aby pierwszy element >> na wejściu stawał się pierwszym na wyjściu bo to by nie miało sensu. >> Problem rozwiązałem w zupełnie inny i szybki sposób korzystając >> z zakresów, dodaje element na początku, tworzy mi się tablica 101 >> elementowa, a potem sam robie z niej 100 elementową [0..99]. > > A teraz opisz, w jaki sposób się różni twoje rozwiązanie od FIFO. AFAIR FIFO ma dwie operacje - dodawanie na koniec i pobieranie z początku. Dostępu do dowolnego elementu w czasie stałym nie gwarantuje. Co więcej autor nie mówi nic o wyjmowaniu elementów. Taką implementację łatwo stworzyć - wystarczy trzymać indeks początku, wstawiając element obniżać go o jeden i liczyć modulo wielkość "kolejki", czyli w tym wypadku 100. -- Pozdrawiam orcus
Re: Perl tablice
Author: "Stachu 'Dozzie'
Date: Mon, 24 Dec 2012 00:39
Date: Mon, 24 Dec 2012 00:39
46 lines
2106 bytes
2106 bytes
On 2012-12-24, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote: [...] >> A teraz opisz, w jaki spos�b si� r�ni twoje rozwi�zanie od FIFO. >> >> I wyja�nij, czemu uwa�asz przepisywanie za ka�dym razem wszystkich stu >> element�w (i to dwukrotnie!) za szybkie. > Ty zak�adasz, �e ja chc� w pewien spos�b kolejkowa� odczytywane elementy, a mi zale�y na tablicy kt�r� b�d� m�g� odczyta� w dowolny spos�b, np. �rodkowy element w czasie rzeczywistym, zapyta�em og�lnie, a nie do konkretnego zastosowania. Bo wiesz, FIFO o sta�ym maksymalnym rozmiarze si� nie da zrobi� na tablicy. Tylko cicho o tym, bo jak si� m�j kod o tym dowie, to przestanie dzia�a�. A ten "czas rzeczywisty", m�j drogi, to si� nazywa czasem sta�ym ("O(1)"). > Po drugie jakie jakie dwukrotne przepisywanie?! Matematyka si� k�ania... > Za��my, �e mam tablice i wykonam takie operacje: > @array = (1..10); > @array = @array[0..3]; > > Gdzie tu dwukrotne przepisanie? A jak dok�adasz element na pocz�tku tablicy, jeszcze przed tym kodem, to niby co si� robi? Hyc, i system operacyjny alokuje miejsce przed tablic�? W garbate anio�ki mo�e wierzysz? > Co wi�cej g�owy sobie uci�� nie dam, �e perl nie jest wyczulony na tego typu operacje i nie przepisze danych na zupe�nie nowe adresy tylko po prostu skr�ci tablice zamiast ca�� przepisywa�. Tego by si� mo�na spodziewa� po pop(), a nie po przypisaniu z zakresem. Nie za du�o ty wymagasz od optymalizatora, kt�ry ma by� przede wszystkim szybki, a nie dawa� szybki kod? > Moja tablica b�dzie po prostu z czasem zape�niana elementami, a mi > zale�y na tym, �eby tych element�w nigdy nie by�o wi�cej ni� 100, > dodanie nowego elementu nie wi��e si� z tym, �e na pewno w tym samym > czasie chce odczyta� tablice... To po prostu ignoruj dopisanie wszystkiego, co pr�buje wle�� do zape�nionej tablicy. Chyba �e znowu spieprzy�e� spraw� nieprecyzyjnie opisuj�c oczekiwany skutek. -- Secunia non olet. Stanislaw Klekot
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