🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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æ?
#1173
Author: =?ISO-8859-2?Q?B
Date: Wed, 18 Feb 2009 07:13
3 lines
99 bytes
Mam pytanie. Jak rozrzucic losowo elementy w tablicy. Chodzi mi o co�
odwrotnego do sortowania.

Re: =?ISO-8859-2?Q?rozrzuciæ?
#1175
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 12:22
18 lines
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æ?
#1176
Author: =?ISO-8859-2?Q?B
Date: Wed, 18 Feb 2009 13:38
20 lines
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ć
#1177
Author: Daniel Podlejski
Date: Wed, 18 Feb 2009 14:17
16 lines
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ć
#1178
Author: =?UTF-8?B?QnJvbm
Date: Wed, 18 Feb 2009 14:42
15 lines
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ć
#1181
Author: =?UTF-8?B?QnJvbm
Date: Wed, 18 Feb 2009 15:18
28 lines
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æ?
#1179
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 15:55
45 lines
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æ?
#1182
Author: =?ISO-8859-2?Q?B
Date: Wed, 18 Feb 2009 16:00
28 lines
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ć
#1180
Author: =?UTF-8?B?UmFkb3
Date: Wed, 18 Feb 2009 16:00
25 lines
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?
#1183
Author: =?iso-8859-2?B?U
Date: Wed, 18 Feb 2009 19:10
21 lines
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æ?
#1184
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 19:56
28 lines
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?
#1185
Author: =?iso-8859-2?B?U
Date: Wed, 18 Feb 2009 20:54
31 lines
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æ?
#1186
Author: =?ISO-8859-2?Q?R
Date: Wed, 18 Feb 2009 21:50
25 lines
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?
#1187
Author: =?iso-8859-2?B?U
Date: Wed, 18 Feb 2009 23:05
16 lines
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æ?
#1195
Author: =?ISO-8859-2?Q?R
Date: Sat, 21 Feb 2009 15:23
20 lines
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