/ / Zlepšiť „rozlíšenie“ náhodných údajov - rubín, náhodne

Zlepšiť "rozlíšenie" náhodných údajov - rubínový, náhodný

Pracujem na MPD frontend v Ruby, s možnosťou prehrať náhodný album.

album = all[(rand*all.length).floor]

Kde all je skupina mien všetkých albumov v knižnici, vyberie album, ktorý sa má prehrať.

Toto funguje, ale myslím, že hrá niektoré albumyviac ako ostatní a niekedy veľmi očividne (videl som, že hrá to isté album dvakrát za sebou, viackrát, moja knižnica má niekoľko stoviek albumov, takže toto by malo byť štatisticky veľmi nepravdepodobné, že sa tak stane) a na druhej strane sa veľa albumov nikdy nehrá.

Existuje nejaký spôsob, ako môžem získať náhodnejšie číslo? Existuje klenot, ktorý implementuje lepší algoritmus náhodných čísel? Musím zmeniť osivo?

odpovede:

8 pre odpoveď č. 1

Namiesto toho, aby ste zakaždým vykonali nový náhodný výber, zoznam zamiešajte jedenkrát a potom albumy z tohto zamiešaného poradia iba odoberajte, až kým nebudete mať chuť ich resetovať.

queue = albums.sort_by{rand}
while next = queue.pop
play next
end

2 pre odpoveď č. 2

Neviem, či to zlepší výsledky, alebo nie, ale môžete to urobiť rand(all.length) aby ste dostali celé číslo priamo.


2 pre odpoveď č. 3

Je zaujímavé, že veľa ľudí si myslí, že náhodné zamíchání přehrávače IPod Shuffle tiež nie je náhodné. Takže to vám dáva dobrú spoločnosť. :-)

http://www.npr.org/templates/story/story.php?storyId=89408926&ft=1&f=1006

http://www.cnet.com.au/itunes-just-how-random-is-random-339274094.htm?omnRef=NULL

Hlavným bodom vyššie uvedených článkov je chybný ľudský zmysel pre to, čo je náhodné. Pravdepodobne máte náhodný výber.

Možno však budete chcieť implementovať podobnú funkciu „náhodného prehrávania, ale bez opakovania“, akú má program IPod Shuffle. Alebo „náhodné, ale zaujaté voči obľúbeným“.


1 pre odpoveď č. 4

Čo chcete, je Normálne distribuované náhodné čísla

Mali by ste tiež skontrolovať NáhodnéR