Article View: pl.comp.lang.ruby
Article #1220Re: rozrzucić
From: Przemysław Kowalczyk
Date: Wed, 18 Feb 2009 19:54
Date: Wed, 18 Feb 2009 19:54
30 lines
2256 bytes
2256 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/
Technical Details
Message-ID:
<op.upkb8hzruw9fft@negative-361apc>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.task.gda.pl!not-for-mailReferences:
<gngc3r$t4t$1@atlantis.news.neostrada.pl> <gngr0v$eu$1@inews.gazeta.pl> <op.upj7gcr3uw9fft@negative-361apc> <gnhlla$54n$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.task.gda.pl!not-for-mail From: Przemysław Kowalczyk <someone@microsoft.com> Newsgroups: pl.comp.lang.ruby Subject: Re: rozrzucić Date: Wed, 18 Feb 2009 20:54:07 +0100 Organization: CI TASK http://www.task.gda.pl/ Lines: 30 Message-ID: <op.upkb8hzruw9fft@negative-361apc> References: <gngc3r$t4t$1@atlantis.news.neostrada.pl> <gngr0v$eu$1@inews.gazeta.pl> <op.upj7gcr3uw9fft@negative-361apc> <gnhlla$54n$1@inews.gazeta.pl> NNTP-Posting-Host: host-81-190-218-64.wroclaw.mm.pl Mime-Version: 1.0 X-Trace: news.task.gda.pl 1234986899 28242 81.190.218.64 (18 Feb 2009 19:54:59 GMT) X-Complaints-To: abuse@news.task.gda.pl NNTP-Posting-Date: Wed, 18 Feb 2009 19:54:59 +0000 (UTC) User-Agent: Opera Mail/9.10 (Win32) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit