random? parliamone :)

Cari ragazzi,
mi è capitato più volte di leggere, durante l'evento pasquale, che qualcuno avesse dei dubbi rispetto alla casualità dei premi ottenuti dai forzieri.
anche a me personalmente è capitato di estrarre 2 volte di fila lo stesso premio, a distanza di pochi secondi uno dall'altro.

al che uno si domanda: "ma sarà veramente random questa estrazione? se lo fosse, non dovrei ottenere due volte di fila lo stesso premio, in quanto altamente improbabile"

sia in questo caso che in altri mi è capitato di pormi la stessa domanda: "e se il risultato dell'estrazione random dipendesse in realtà da un dato di input, come ad esempio l'orario in cui io clicco sul premio?"

bene, credo di avere finalmente una risposta, e la risposta è "sì".

vi linko questo articolo non troppo tecnico che spero sia per tutti un interessante spunto di riflessione:
http://leganerd.com/2014/05/09/leterna-sfida-dei-numeri-casuali/

riassumendo tutto in pochi punti, e semplificando sicuramente moltissimo la questione, che se mi legge un super informatico probabilmente si mette le mani tra i capelli, la faccenda è così:
- non si può chiedere a una macchina di generare un numero casuale "tout court"
- per generare un numero pseudo casuale serve un algoritmo
- l'algoritmo necessita di un input (che può essere di vario genere incluso l'orario)
- a input uguale corrisponderà un output uguale (ed è per questo che i risultati sono pseudo casuali e non totalmente casuali)


quindi, tornando alle nostre estrazioni dei premi pasquali (o a tutti gli altri casi in cui questo è applicabile): sicuramente i programmatori del gioco fanno del loro meglio per ottenere degli output random, ma la randomicità è governata da delle regole. e così possiamo inciampare in queste regole e ottenere dei premi uguali uno in fila all'altro, perchè molto probabilmente forniamo degli input ugali.

ecco ora mi fermo, scusate ma dovevo condividere con voi questo momento di illuminazione nerd :D
 

DeletedUser

Guest
Vado subito al punto, su FoE per ovvi motivi non ci sono eventi casuali ma sono probabilistici, cioè ogni evento ha una certa probabilità di avvenire.

Esempio: l'evento vincita diamanti avrà la probabilità dello 0,1 %, mentre di vincere un po' di oro\materiali ci sarà la probabilità del 25% ovviamente con due estrazioni successive si hanno molte probabilità di ricevere due volte di fila oro piuttosto che ricevere oro\materiali e diamanti.

idem per le ricompense di pasqua che citi tu =) non sono casuali ogni premio ha una certa probabilità di uscire, e vista la limitatezza di premi tra il bouquet di scelta è facile che escano due premi uguali di fila se la loro probabilità di uscita è più alta degli altri oggetti.
Tornando al tuo discorso il dato di input non glielo forniamo noi, il dato di input nel loro algoritmo di casualità glielo forniscono loro ed è la probabilità di ogni evento di potersi verificare.
nota: è anche vero che certe volte capita di vincere due volte di fila il premio migliore quello si chiama con un altro termine... :p (diciamo fortuna)


andando invece in tema del tutto didattico la casualità non esiste ne per le macchine ne per l'uomo (quindi le macchine create dall'uomo di sicuro non possono fornire risultati veramente casuali come sarebbero forniti dalla "natura" - tipo: tirando la moneta piuttosto che un dado).
Però molti algoritmi creati dall'uomo si avvicinano moltissimo a tale risultato, una prova molto semplice da fare si può eseguire con "Excel" (o la controparte gratuita di LibreOffice\OpenOffice) si imposta la variabile random (casuale) facendo una colonna con 100 o 1000 valori casuali e calcolarne la media (che sarà ovviamente 0,5 circa, più saranno i valori più tale valore sarà vicino a 0,5), conferma che se veramente si volesse avere un risultato casuale ci sarebbe il modo di averne uno veramente simil-casuale :D

Buona giornata a tutti!

p.s. bello comunque quell'articolo =)
 
Vado subito al punto, su FoE per ovvi motivi non ci sono eventi casuali ma sono probabilistici, cioè ogni evento ha una certa probabilità di avvenire.

Esempio: l'evento vincita diamanti avrà la probabilità dello 0,1 %, mentre di vincere un po' di oro\materiali ci sarà la probabilità del 25% ovviamente con due estrazioni successive si hanno molte probabilità di ricevere due volte di fila oro piuttosto che ricevere oro\materiali e diamanti.

posto che non sono un tecnico, quindi non lo so se quello che dico è corretto, ma io l'ho pensata così: non posso dire a una macchina "tirami fuori questo risultato con la probabilità dell'1%" ma posso fare sì che l'input abbia una probabilità dell'1% di essere fornito.

giusto per fare un esempio semplice semplice
supponiamo che l'input sia il minuto dell'ora in cui si clicca, quindi un numero da 1 a 60 e che io abbia 3 premi
- voglio che uno esca con la probabilità del 50% ---> minuti pari
- voglio che uno esca con la probabilità del 15% circa ---> minuti dispari divisibili per 3
- voglio che l'ultimo esca con la probabilità del 35% circa ---> i rimanenti (minuti dispari non divisibili per 3)

ovviamente si possono fare delle combinazioni più complicate e ottenere il risultato desiderato
 

DeletedUser

Guest
Sì, io ho fatto un discorso più accademico che reale... matematico diciamo...
Tornando più sul concreto, e conoscendo i programmatori (brutte bestie :p ahah) avranno usato la funzione Random presente in java/flash integrata che si basa su un input temporale (il timestamp del sistema espresso in nanosecondi)

Ma ancora non capisco questa discussione, personalmente non mi è mai capitato di ricevere premi uguali se completo sempre alla stessa ora un evento, anche perchè se il tempo è misurato in nanosecondi... 1 secondo = 1.000.000.000 nanosecondi basta un niente che i due input siano diversi e quindi forniscano sequenze diverse e risultati diversi.

E' evidente poi che il fattore probabilità la fa da padrone, indipendentemente dall'input che sia il timestamp, la sequenza di fibonacci piuttosto che una combinazione di numeri irrazionali (pi greco &Co.) se gli si da un fattore di probabilità molto maggiore a degli eventi piuttosto che ad altri la distribuzione non sarà casuale ma probabilistica (son più matematico che programmatore... ho imparato proprio ieri la tabellina del 7! ).

Cioè, detto in altre parole, ok in informatica serve l'input e quindi un numero non sarà mai perfettamente casuale, ma al contempo se gli si fornisce una determinata probabilità di uscita (specialmente se molto diverse) l'input è un dato superfluo.

Non so se il mio ragionamento fila e se sia perfettamente corretto (non è nemmeno il mio di settore :p ) ma grosso modo dovrebbe essere una cosa del genere, e alla fine nel tuo esempio dici la stessa cosa, infatti nel tuo esempio è probabile che il primo evento, quello con il 50% di probabilità, possa accadere due volte di fila ma questo è indipendente dall'input (casuale) che gli dai.
 
Ma ancora non capisco questa discussione
non è da capire, non sono partita per far polemica ma solo perchè trovo il tema interessante e anche divertente.
mi piace sapere come funzionano le cose, o perchè accadono.

è stimolante, anche se magari sto sbagliando tutto ^_^

e senza il dialogo non si procede, no? continuerei a pensarla sempre allo stesso modo

infatti nel tuo esempio è probabile che il primo evento, quello con il 50% di probabilità, possa accadere due volte di fila ma questo è indipendente dall'input (casuale) che gli dai
si ma se capita due (o anche tre) volte un evento con probabilità del 50% non è strano, mentre se capita la stessa cosa con probabilità del 10% è già diverso

vranno usato la funzione Random presente in java/flash integrata
perdendosi così la meravigliosa soddisfazione di scrivere personalmente l'algoritmo? :p (lo so, il tempo è denaro!!)
 

DeletedUser

Guest
perdendosi così la meravigliosa soddisfazione di scrivere personalmente l'algoritmo? :p (lo so, il tempo è denaro!!)

parto dalla fine... no in realtà i programmatori (quelli pagati per farlo, i professionisti diciamo) di solito si divertono a perdere tempo, l'iter probabile è stato una cosa tipo: 1. scrivono un algoritmo di casualità da zero; 2. lo provano e si rendono conto che non funziona; 3. lo rattoppano alla meno peggio e il risultato degenera; 4. si rassegnano ad usare l'agoritmo di base - tempo perso 1 mese :mrgreen:
ahahah ok mi sarò fatto molti nemici, ma ho conosciuto personalmente almeno una decina di programmatori (di diverse estrazioni) e alla fine sono quasi tutti così - ovviamente ci sono delle eccezioni eh =)


si ma se capita due (o anche tre) volte un evento con probabilità del 50% non è strano, mentre se capita la stessa cosa con probabilità del 10% è già diverso

tornando al tema della discussione, sono d'accordo sul fatto che se capita la stessa cosa 3 volte di fila con la probabilità di accadere del 10% c'è qualcosina di strano... anche se può capitare il classico colpo di c...
dopotutto se giocassimo con una slot machine potrebbe capitare benissimo di vincere 3 volte di fila e poi però perdere 27 volte, la probabilità di vincita rimane sempre il 10% anche se è accaduta tre volte di fila, questo è il fattore di casualità inserito in un contesto probabilistico.

Comincerebbe a puzzare di "malfunzionamento" se ogni giorno mi capitasse 3 volte di fila di vincere e poi perdere 27 volte, ma se capita 1 giorno ogni 100 è tutto regolare a mio avviso.
 
Ultima modifica di un moderatore:

DeletedUser40610

Guest
Forse è un po' datata come discussione ma applicare una percentuale ad un sistema che genera numeri tra 0 e 1 è piuttosto basico, basta che penzi che va dallo 0,0%(0,000) al 100,0%(1)
Quindi ritagli uno spazio tra questi decimali infinitamente piccoli, magari un 10%? Semplice, se il numero è tra 0,0 e 0,10 , 0,11 già e sopra e fa parte del restante 90% poi dalla terza cifra si arrotonda e quindi rimane molto corretto come sistema, oltre che semplice :D
 

Rubicone

Contadino
L'impego della funzione del foglio di calcolo ' casuale ' o meglio 'casuale.tra ' (in precedenza random() ), come si può comprendere dalle probabilità concesse dal Tempio delle reliquie, è almeno doppia: una prima, molto ristretta, per decidere se il premio va dato o non dato; la seconda, se positiva la prima, decide quale premio dare. Ci potrebbero essere ulteriori funzioni che incidono sul tipo di premio da assegnare (premium, ecc..). Potrebbero anche essere inserite funzioni di controllo/conferma intermedie, per incrementare il grado di difficoltà.
Non escludendo nessun parametro per randomizzare i valori ( timer ) o che influisca ulteriormente sul rilascio del premio o tipo di premio ( punteggio giocatore, giocate, edifici, ecc. ) è certo che la parte del leone è quella che completa la prima funzione: premio si o premio no: e già così sembra molto facile l'esito positivo.
Certe lotterie nazionali ad estrazione (90 o 100 numeri) hanno fatto scuola per statistiche, ma nessuna può garantire l'uscita o meno di un numero, perché tutti hanno la medesima possibilità di essere estratti. Anche i numerosi 'sistemi di calcolo previsionali' hanno probabilità di successo inferiori ad ogni aspettativa e sono solo trovate pubblicitarie.

Giusto per stare in tema di stranezza statistica, anche a me è capitato di prendere nello stesso turno di giralaruota tre premi desiderati, una volta due consecutivi, ma in complesso tra le cinque e dieci girate. Non so se sia sufficiente concentrarsi sul premio ambìto, ma a volte funziona: avrò forse poteri extrasensoriali :D.

Potrei portare, altro esempio concreto, il rilascio dei diamanti dei pozzi dei desideri. Ho annotato, dal 1 agosto 2014, tutte le uscite dei diamanti, per mondo e singolo pozzo (numerati, ma non censiti, per cronologia di edificazione). Anche se da un po' di tempo i pozzi sono numerosi ci sono giorni di magra, ma ho ottenuto anche fino a tre raccolti giornalieri. Ultimamente lo stesso pozzo ha premiato due giorni consecutivi. Addirittura l'ultimo che ho posato ha diamantato al primo raccolto.
Non so quali siano i pozzi più 'generosi' di diamanti o se ce ne sono di ' ingrati ', ma se può essere interessante posso aggregare i dati e presentare...il conto.
Tutto per giocare anche con i numeri. :)
 
In cima