Thread View: pl.comp.lang.ruby
15 messages
15 total messages
Started by =?ISO-8859-2?Q?B
Wed, 18 Feb 2009 07:13
=?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?B
Date: Wed, 18 Feb 2009 07:13
Date: Wed, 18 Feb 2009 07:13
3 lines
99 bytes
99 bytes
Mam pytanie. Jak rozrzucic losowo elementy w tablicy. Chodzi mi o co� odwrotnego do sortowania.
Re: =?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 12:22
Date: Wed, 18 Feb 2009 12:22
18 lines
305 bytes
305 bytes
Od Bronis�aw Tatul pisze: > Mam pytanie. Jak rozrzucic losowo elementy w tablicy. Chodzi mi o co� > odwrotnego do sortowania. Od wersji 1.8.7: arr = (1..10).to_a arr.shuffle! Wcze�niej: arr = (1..10).to_a arr = arr.sort_by { rand } -- Rados�aw Bu�at http://radarek.jogger.pl - m�j blog
Re: =?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?B
Date: Wed, 18 Feb 2009 13:38
Date: Wed, 18 Feb 2009 13:38
20 lines
402 bytes
402 bytes
Rados�aw Bu�at pisze: > Od Bronis�aw Tatul pisze: >> Mam pytanie. Jak rozrzucic losowo elementy w tablicy. [....] > arr = (1..10).to_a > arr.shuffle! ten wykrzyknik co� daje? > Wcze�niej: > > arr = (1..10).to_a > arr = arr.sort_by { rand } Bardzo dzi�kuj�. Ciekawe czy jest co� takiego jak receptury dla ruby. No to chyba jednak nastepny kawa�ek bed� juz pisa� w ruby ;-)
Re: rozrzucić
Author: Daniel Podlejski
Date: Wed, 18 Feb 2009 14:17
Date: Wed, 18 Feb 2009 14:17
16 lines
322 bytes
322 bytes
Bronisław Tatul napisał: > > arr = (1..10).to_a > > arr.shuffle! > > ten wykrzyknik coś daje? Tak, ten wykrzyknik coś daje, ten wykrzyknik jest częścią nazwy metody i ma swoje znaczenie. Jakie? To sobie doczytaj w jakiejś książce z podstawami języka, bo wstyd o takie rzeczy pytać. -- Daniel Podlejski
Re: rozrzucić
Author: =?UTF-8?B?QnJvbm
Date: Wed, 18 Feb 2009 14:42
Date: Wed, 18 Feb 2009 14:42
15 lines
394 bytes
394 bytes
Daniel Podlejski pisze: > Bronisław Tatul napisał: > >>> arr = (1..10).to_a >>> arr.shuffle! >> ten wykrzyknik coś daje? > > Tak, ten wykrzyknik coś daje, ten wykrzyknik jest częścią > nazwy metody i ma swoje znaczenie. > > Jakie? To sobie doczytaj w jakiejś książce z podstawami > języka, bo wstyd o takie rzeczy pytać. A więc i tu zdarzają się trolle. Mówi się trudno.
[OT] Re: rozrzucić
Author: =?UTF-8?B?QnJvbm
Date: Wed, 18 Feb 2009 15:18
Date: Wed, 18 Feb 2009 15:18
28 lines
1054 bytes
1054 bytes
Radosław Bułat pisze: > Bronisław Tatul pisze: >> Daniel Podlejski pisze: >>> Bronisław Tatul napisał: >>> >>>>> arr = (1..10).to_a >>>>> arr.shuffle! >>>> ten wykrzyknik coś daje? >>> Tak, ten wykrzyknik coś daje, ten wykrzyknik jest częścią >>> nazwy metody i ma swoje znaczenie. >>> >>> Jakie? To sobie doczytaj w jakiejś książce z podstawami >>> języka, bo wstyd o takie rzeczy pytać. >> >> A więc i tu zdarzają się trolle. Mówi się trudno. > > Dlaczego tak uważasz? Akurat ma sporo racji. Jakby nie było pytasz o > podstawy języka (podobnie zresztą było na kanale #ruby.pl ;-)). IMHO > grupy są przede wszystkim do pytań typu "czy lepiej jest użyć biblioteką > A niż B", bo na te pytanie nie da się znaleźć szybko odpowiedzi (ważne > jest doświadczenie itp). Jego wypowiedź nie niesie żadnej informacji, za to jest personalnie nieobojetna. A taka właśnie jest definicja trolowania. Zapuścić wątek w którym zbesztasz interlokutora, albo wywołasz flejma i sam nic nie argumentujesz. Typowy troll-ing.
Re: =?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 15:55
Date: Wed, 18 Feb 2009 15:55
45 lines
1575 bytes
1575 bytes
Bronis�aw Tatul pisze: >> arr = (1..10).to_a >> arr.shuffle! > > ten wykrzyknik co� daje? Ruby pozwala na do��czenie do nazwy metody, na ko�cu znaku '?' lub '!'. '?' wykorzystuje si� do metod predykat�w, np. zamiast nazywa� metody 'is_red', 'is_awesome' wskazane (ale nie ma przymusu) jest napisa� 'red?', 'awesome?'. Dla wykrzyknika natomiast przyj�o si�, �e u�ywa si� go dla metod 'niebezpiecznych'. Najcz�ciej chodzi o metody, kt�re zmieniaj� stan obiektu lub robi� co� bardziej niebezpiecznego ni� odpowiednia metoda bez wykrzyknika. Zwracam jednak uwag� na to, �e bardzo cz�sto programi�ci �le interpretuj� t� regu��, tj. zapominaj� o cz�ci "ni� odpowiednia metoda bez wykrzyknika". Umieszczanie samej metody z wykrzyknikiem bez wersji jego pozbawionej nie ma sensu. Inaczej ko�czyliby�my na prawie samych metodach z wykrzyknikiem. Taki �yciowy przyk�ad z rails. ActiveRecord posiada 2 wersje metody zapisuj�cej: save i save!. Ta pierwsza zwraca true/false w zale�no�ci do tego czy zapis si� powi�d�. Ta druga rzuca wyj�tkiem w przypadku niepowodzenia. I jeszcze dla jasno�ci: dla rubiego to bez znaczenia czy Twoja metoda zawiera '?' czy '!' lub �aden z nich. To informacja dla programisty. > >> Wcze�niej: >> >> arr = (1..10).to_a >> arr = arr.sort_by { rand } > > > Bardzo dzi�kuj�. > > Ciekawe czy jest co� takiego jak receptury dla ruby. http://pleac.sourceforge.net/pleac_ruby/ -- Rados�aw Bu�at http://radarek.jogger.pl - m�j blog
Re: =?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?B
Date: Wed, 18 Feb 2009 16:00
Date: Wed, 18 Feb 2009 16:00
28 lines
912 bytes
912 bytes
Rados�aw Bu�at pisze: > Bronis�aw Tatul pisze: >>> arr = (1..10).to_a >>> arr.shuffle! >> >> ten wykrzyknik co� daje? > > Ruby pozwala na do��czenie do nazwy metody, na ko�cu znaku '?' lub '!'. > '?' wykorzystuje si� do metod predykat�w, np. zamiast nazywa� metody > 'is_red', 'is_awesome' wskazane (ale nie ma przymusu) jest napisa� > 'red?', 'awesome?'. [...] > I jeszcze dla jasno�ci: dla rubiego to bez znaczenia czy Twoja metoda > zawiera '?' czy '!' lub �aden z nich. To informacja dla programisty. Czyli jest to tylko konwencja. No c� czyta�em troche tutoriali i nawet ksi�zke (ale nie ca�� ;) I nie doczyta�em, �e jest co� takiego. Zawsze to dobrze sie czegos dowiedziec. >> Ciekawe czy jest co� takiego jak receptury dla ruby. > > http://pleac.sourceforge.net/pleac_ruby/ Fajna strona. Ni jest to http://helion.pl/ksiazki/perec2.htm ale podoba mi sie.
Re: rozrzucić
Author: =?UTF-8?B?UmFkb3
Date: Wed, 18 Feb 2009 16:00
Date: Wed, 18 Feb 2009 16:00
25 lines
816 bytes
816 bytes
Bronisław Tatul pisze: > Daniel Podlejski pisze: >> Bronisław Tatul napisał: >> >>>> arr = (1..10).to_a >>>> arr.shuffle! >>> ten wykrzyknik coś daje? >> Tak, ten wykrzyknik coś daje, ten wykrzyknik jest częścią >> nazwy metody i ma swoje znaczenie. >> >> Jakie? To sobie doczytaj w jakiejś książce z podstawami >> języka, bo wstyd o takie rzeczy pytać. > > A więc i tu zdarzają się trolle. Mówi się trudno. Dlaczego tak uważasz? Akurat ma sporo racji. Jakby nie było pytasz o podstawy języka (podobnie zresztą było na kanale #ruby.pl ;-)). IMHO grupy są przede wszystkim do pytań typu "czy lepiej jest użyć biblioteką A niż B", bo na te pytanie nie da się znaleźć szybko odpowiedzi (ważne jest doświadczenie itp). -- Radosław Bułat http://radarek.jogger.pl - mój blog
Re: =?iso-8859-2?B?cm96cnp1Y2nm?
Author: =?iso-8859-2?B?U
Date: Wed, 18 Feb 2009 19:10
Date: Wed, 18 Feb 2009 19:10
21 lines
512 bytes
512 bytes
On Wed, 18 Feb 2009 12:22:07 +0100, Rados�aw Bu�at <radarrek@poczta.fm> wrote: > Od Bronis�aw Tatul pisze: >> Mam pytanie. Jak rozrzucic losowo elementy w tablicy. Chodzi mi o co� >> odwrotnego do sortowania. > > arr = (1..10).to_a > arr = arr.sort_by { rand } nigdy tak nie rob, patrz: http://szeryf.wordpress.com/2007/06/19/a-simple-shuffle-that-proved-not-so-simple-after-all/ szegolnie ostatni podrozdzial. pzdr szeryf -- Przemys�aw ,,Szeryf'' Kowalczyk :: http://szeryf.wordpress.com/
Re: =?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 19:56
Date: Wed, 18 Feb 2009 19:56
28 lines
970 bytes
970 bytes
Przemys�aw Kowalczyk pisze: > On Wed, 18 Feb 2009 12:22:07 +0100, Rados�aw Bu�at <radarrek@poczta.fm> > wrote: > >> Od Bronis�aw Tatul pisze: >>> Mam pytanie. Jak rozrzucic losowo elementy w tablicy. Chodzi mi o co� >>> odwrotnego do sortowania. >> >> arr = (1..10).to_a >> arr = arr.sort_by { rand } > > nigdy tak nie rob, patrz: > http://szeryf.wordpress.com/2007/06/19/a-simple-shuffle-that-proved-not-so-simple-after-all/ > > > szegolnie ostatni podrozdzial. Przeczyta�em nawet ca�e :). Z pocz�tku przestraszy�em si�, �e paln��em straszn� g�upot� czy co�. Oczywi�cie mog�em doda� �e moja metoda ma z�o�ono�� O(N * log(N)), czyli tak� jak... sortowania. My�l�, �e pisanie "nigdy tak nie r�b" nie ma sensu, co zreszt� wynika z Twoich test�w, kt�re dopiero od pewnego momentu wykaza�y wi�ksz� wydajno�� innej metody. -- Rados�aw Bu�at http://radarek.jogger.pl - m�j blog
Re: =?iso-8859-2?B?cm96cnp1Y2nm?
Author: =?iso-8859-2?B?U
Date: Wed, 18 Feb 2009 20:54
Date: Wed, 18 Feb 2009 20:54
31 lines
1376 bytes
1376 bytes
On Wed, 18 Feb 2009 19:56:41 +0100, Rados�aw Bu�at <radarrek@poczta.fm> wrote: >>>> Mam pytanie. Jak rozrzucic losowo elementy w tablicy. Chodzi mi o co� >>>> odwrotnego do sortowania. >>> >>> arr = (1..10).to_a >>> arr = arr.sort_by { rand } >> nigdy tak nie rob, patrz: >> http://szeryf.wordpress.com/2007/06/19/a-simple-shuffle-that-proved-not-so-simple-after-all/ >> szegolnie ostatni podrozdzial. > > Przeczyta�em nawet ca�e :). Z pocz�tku przestraszy�em si�, �e paln��em > straszn� g�upot� czy co�. Oczywi�cie mog�em doda� �e moja metoda ma > z�o�ono�� O(N * log(N)), czyli tak� jak... sortowania. My�l�, �e pisanie > "nigdy tak nie r�b" nie ma sensu, co zreszt� wynika z Twoich test�w, > kt�re dopiero od pewnego momentu wykaza�y wi�ksz� wydajno�� innej metody. ...czyli nie przeczytales calego :) na koncu pisze o najwiekszym problemie zwiazanym z ta metoda, czyli o "skrzywieniu" wynikow. po prostu w ten sposob nie uzyskasz wszystkich permutacji z jednakowym prawdopodobienstwem. a mam wrazenie, ze OP zajmuje sie jakimis obliczeniami, wiec moze to byc dla niego istotne. zobacz tez http://www.codinghorror.com/blog/archives/001015.html jak u mnie nie jest wystarczajaco jasno :) pzdr szeryf -- Przemys�aw ,,Szeryf'' Kowalczyk :: http://szeryf.wordpress.com/
Re: =?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 21:50
Date: Wed, 18 Feb 2009 21:50
25 lines
764 bytes
764 bytes
Przemys�aw Kowalczyk pisze: > ...czyli nie przeczytales calego :) Przeczyta�em :). > na koncu pisze o najwiekszym > problemie zwiazanym z ta metoda, czyli o "skrzywieniu" wynikow. po > prostu w ten sposob nie uzyskasz wszystkich permutacji z jednakowym > prawdopodobienstwem. a mam wrazenie, ze OP zajmuje sie jakimis > obliczeniami, wiec moze to byc dla niego istotne. Ja tam widz�, �e wyst�puje to dla metody sposobu: arr.sort { rand } co zreszt� jest dosy� logiczne. Natomiast dla tego sposobu co poda�em rozk�ad jest dobry. > > zobacz tez http://www.codinghorror.com/blog/archives/001015.html jak u > mnie nie jest wystarczajaco jasno :) Jest jak najbardziej jasno. -- Rados�aw Bu�at http://radarek.jogger.pl - m�j blog
Re: =?iso-8859-2?B?cm96cnp1Y2nm?
Author: =?iso-8859-2?B?U
Date: Wed, 18 Feb 2009 23:05
Date: Wed, 18 Feb 2009 23:05
16 lines
485 bytes
485 bytes
On Wed, 18 Feb 2009 21:50:01 +0100, Rados�aw Bu�at <radarrek@poczta.fm> wrote: > > Ja tam widz�, �e wyst�puje to dla metody sposobu: arr.sort { rand } co > zreszt� jest dosy� logiczne. Natomiast dla tego sposobu co poda�em > rozk�ad jest dobry. ooops, rzeczywiscie :) to ja nie przeczytalem dokladnie tego, co napisales. nie zauwazylem, ze piszesz o sort_by. przepraszam. pzdr szeryf -- Przemys�aw ,,Szeryf'' Kowalczyk :: http://szeryf.wordpress.com/
Re: =?ISO-8859-2?Q?rozrzuciæ?
Author: =?ISO-8859-2?Q?R
Date: Sat, 21 Feb 2009 15:23
Date: Sat, 21 Feb 2009 15:23
20 lines
524 bytes
524 bytes
Bronis�aw Tatul pisze: > Rados�aw Bu�at pisze: >> Od Bronis�aw Tatul pisze: >>> Mam pytanie. Jak rozrzucic losowo elementy w tablicy. > [....] >> arr = (1..10).to_a >> arr.shuffle! > > ten wykrzyknik co� daje? Poniewa� w�a�nie napisa�em o tym wpis, zapraszam do czytania: http://radarek.jogger.pl/2009/02/21/ruby-a-metody-z-i-w-nazwie/ W zasadzie ka�dego zach�cam do przeczytania bo wi�kszo�� �le interpretuje zasad� z '!'. -- Rados�aw Bu�at http://radarek.jogger.pl - m�j blog
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