Hiekkalaatikko > Leikkikoulu

Tietokonehuone

<< < (6/6)

Hippi:
Tuon työkaverini soittimen "satunnaissoittogeneraattorin" oli tehnyt joku laiska koodari, koska sama "satunnaisuus" toistui jos ei ihan samana, niin ainakin melkein. Työkaveri ei ihan varmana sitä osannut sanoa oliko siinä yhtään poikkeamaa, mutta oli todella harmissaan, kun oli nähnyt vaivaa musiikin kokoamisessa ja sitten hän kuulee siitä vain pientä osaa, ellei ala kuunnella päästä päähän järjestyksessä.

"Aidolla satunnaisuudella" tarkoitin sellaista soittojärjestystä, joka alkaa satunnaisesta kohdasta sitä soitettavaa massaa ja aina seuraava soitettava olisi yhtä satunnainen. Miten se saadaan sitten aikaan, onkin toinen juttu. Muistaisin, että joku satunnaislukugeneraattori käyttäisi koneen kellosta löytyviä numeroita ja jollain keinolla se pitäisi sitten saada osumaan tässä tapauksessa välille 1 - 700.

Mutta kuten sanoin, tuo "aito satunnaisuus" ei minusta soittolistalla ole toimiva, koska se voi tuottaa tilanteen, että sama biisi voi soida useamman kerran peräkkäin ja joku toinen biisi ei soisi ehkä kertaakaan, mikä olisi aika ärsyttävää. Siksi tässä soittolistan tapauksessa muokkaisin satunnaista niin, että sama biisi ei olisi uudelleen valittavissa ainakaan samalla kuuntelukerralla.


Olen korvia myöten tympääntynyt radion musiikkiantiin. Ennen YLE:lläkin oli toimittajien itsensä valitsemaa musiikkia, muta nyt on puhdasta soittolista roskaa tehosoittoineen. Spotify on pelastanut minut, mutta musiikista sinällään voidaan jatkaa toisaalla, vaikka tuskin kovin paljon yhteistä meillä täällä olevilla on.

Aina Rempallaan:

Ohjelma ei oikein voi toteuttaa ohjelmasta täysin riippumatonta satunanistamista. Mutta satunnaistettavasto joukosta riippumattomasti voi sekoittaa.

Soittolistan sekoittamisen tapauksessa varmaan tarkoitukenmukainen olisi tosiaan sopiva tapa pakan (A[1], A[2], ... A[n]) sekoittaminen MrKATin esittämään tapaan käymällä taulukon kaikki paikat läpi ja vaihtamalla sen  paikan sisälktä arvotun toisen paikan sisällön kanssa. Esim.


--- Koodia: ---function shuffleArray(array)
{     for (let i = array.length - 1; i > 0; i--)
      { const j = Math.floor(Math.random() * (i + 1));
         [array[i], array[j]] = [array[j], array];
      }
}
--- Koodi päättyy ---

Kaiketi mieluummin noin sekoittamalla kaikkien järjestys, joka estää saman toistamisen ennen kuin kaikki on kertaalleen käyty läpi. Kuin arpomalla jokaisen soitetun kappaleen jälkeen umpimähkäinen kappale.

Mahdollista toki on toteuttaa arvonta niinkin, että arvottavilla on todennäköisyyspainot vaikka myyntitilastojen tai yleisöäänestysten perusteella.


Navigaatio

[0] Viestien etusivu

[*] Edellinen sivu

Siirry pois tekstitilasta