Newsgroup: it.hobby.enigmi
Titolo: Backgammon e casualita'

Per vincere contro l'eccellente Gnubg non ho avuto altra
scelta: ho dovuto obbligarlo a prendere i dadi da un file
mio e non dai sui generatori casuali. 
Lui ha tra gli altri: ANSI, MD5 e Mersenne Twister, ma son
quasi sicuro che invece imbroglia, anche se non ci capisco
granche' di stringhe casuali e pseudocasuali.
Allora gli ho dato in pasto un file, che ha come dadi le
coppie (723) di cifre formate dalle prime mille decimali
di pigreco (da cui ho cancellato 0,7,8,9)... e da allora
ho cominciato a vincere!
Questo perche' avevo sentito che pigreco le sue cifre,
anche se non casuali, sono indistinguibili da una sequenza
veramente casuale -- sara' vero?
Vi domando: conoscete qualche programmillo magari in C che
mi generi dei dadi casuali?
-- 
Saluti, Dalet

 mi generi dei dadi casuali?
Non esiste alcuna formula matematica ne' alcun algoritmo in grado di
generare una variabile casuale, quindi tantomeno un programma. :o)  In
fondo, poi, che cos'e' il caso?
In pratica dobbiamo accontentarci di generatori pseudo-random.
Le funzioni RND di molti linguaggi (io uso il Basic nelle sue
varianti) forniscono una variabile quasi-casuale che va bene per molte
applicazioni. Personalmente pero' ne ho trovato i limiti quando l'ho
saggiato con qualcuno dei miei puzzles.
In elettronica si usano dei generatori pseudo-random costituiti da
registri a scorrimento controreazionati con una rete di sommatori
senza riporto. Ovviamente finiscono per essere ciclici, ma la loro
ciclicita' vale b^n-1 dove b e' la base (ad es. 6 per i dadi) e n e'
la lunghezza del registro a scorrimento.
L'ideale sarebbe collegare ad un ingresso analogico del pc un
generatore di rumore bianco o rumore termico, ad es. il rumore di un
resistore percorso da corrente opportunamente amplificato.
Nelle misure di tasso d'errore dei modem fonici facevo cosi'.  :o)
So di servizi online di parametri casuali (per lo meno caotici)
ricavati da fenomeni atmosferici, ma non li ho mai provati.
Ciao!!!  :o)
Livio

 fondo, poi, che cos'e' il caso?
Mi chiedevo: ma un algoritmo basato su qualche calcolo basato sui 
millisecondi letti dall'orologio di sistema di un PC, unito ad altri 
escamotage, si può considerare abbastanza random... o no?
E se no, perchè? Perché se generasse due numeri nello stesso istante 
sarebbero identici?
E perché quando accendo il mio Nintendo DS e gioco la prima partita a certi 
giochi (per dire, PuzzleQuest) il primo livello generato "a caso" è sempre 
lo stesso, e il secondo è tutto diverso?
Dammi una risposta random!  ;)
Silvano 

 saggiato con qualcuno dei miei puzzles.
Beh... per mettere il crisi il Mersenne Twister, citato dall'OP, ce ne
vuole eh!
Da Wikipedia: "The 1997 invention of the Mersenne twister algorithm,
by Makoto Matsumoto and Takuji Nishimura, avoids many of the problems
with earlier generators. It has the colossal period of 219937-1
iterations [...] is proven to be equidistributed in (up to) 623
dimensions (for 32-bit values), and runs faster than other
statistically reasonable generators. It is now increasingly becoming
the "random number generator of choice" for statistical simulations
and generative modeling."
E, comunque, ho dei seri dubbi che il problema citato dall'OP abbia
fondamento: lo GNUbg è open source, scriverlo in modo da farlo barare
sarebbe molto poco furbo dato che poi basterebbe un'occhiata ai
sorgenti per scoprirlo...
bye!


Del Nintendo non m'intendo, pero' nel basic c'e' l'istruzione
Randomize(Time) che fa girare inizialmente il randomizzatore in
funzione dell'orologio di sistema, per poter giocare partite sempre
diverse. E' qualche cosa di simile a quello che dici tu.
Ciao!!!  :o)
Livio

sorgenti per scoprirlo...
Ma anch'io pensavo fosse da escludere, pero' quando con la
sua tavola con 2 o 3 sole case io NON rientro, e LUI invece
con UNA SOLA casa libera non solo rientra all'istante ma
mi picchia con l'unico tiro possibile (2/36=5.5%)?
"Va be' un caso" - dirai - ma il caso si ripete simile OGNI
VOLTA che gli do il beaver!
E il Blum, Blum and Shub che diavolo e'? meglio di Mersenne?
Ci sono anche ANSI, BSD, ISAAC, 
random.org
, ma li ho provati
tutti e imbrogia con tutti!
Invece coi decimali di pigreco lo massacro!
-- 
Saluti, Dalet

fondo, poi, che cos'e' il caso?
Ok TNX! e ringrazio anche il Silvano.
-- 
Saluti, Dalet

 Invece coi decimali di pigreco lo massacro!
Questo non mi sorprende. Scommetti che anche se metti al posto dei
numeri rnd un file contenente tutti 1 o tutti 6 giocherà da fare
schifo?
Scrivere una IA che gioca bene con il presupposto che le estrazioni
siano equidistribuite e scriverne una che gioca bene con distribuzioni
"esoteriche" sono cose ben diverse...
bye!

"esoteriche" sono cose ben diverse...
Si' c'e' molto di questo che dici infatti lo frastorno
facendo giocate assurde che poi con fortuna mia mi fanno
vincere 64 poste (max che ho fissato del raddoppio).
-- 
Saluti, Dalet

 sorgenti per scoprirlo...
Leggevo anch'io che si trova il sorgente in rete, quindi che bari
potrebbe essere una leggenda, se veramente si ricompila quel sorgente.
Ciao!!!  :o)
Livio

 "dice manipulation" che dice che fa queste cose:
capperi, hai ragione! Stavamo guardando nel punto sbagliato. In realtà
gnubg non tarocca la randomicità dei dati, ma molto più banalmente
invece che tirare i dadi una volta sola li tira più volte e poi
sceglie il risultato a lui più favorevole. O meglio, il giocatore può
scegliere se farlo giocare così (immagino che per imparare a giocare
possa essere utile misurarsi contro un giocatore *straordinariamente
fortunato*) o anche impostarlo perchè scelga il tiro *peggiore*
(quando si vuole gratificare il proprio ego, immagino ;^).
Non so su che sistema operativo giochi e che versione di gnubg hai,
probabilmente nella tue il "cheating" è on, ma puoi disabilitarlo e ri-
misurarti alla pari con l'avversario artificiale...
bye e scusa se ho dubitato delle tue affermazioni, così di primo
acchito... :^)

acchito... :^)
Ma il fatto e' che non dovrebbe manipolarli se non
chiedendoglielo, pero' io giocavo molto (a soldi) tempo fa
e un tiro unico, per dire 61, so che non puo' venire SEMPRE
(o quasi).
Dovrebbe essere possibile, ma grosso modo 2/36 < 6% e se non
mi permette di azzardare un po', perche' mi distrugge
sistematicamente come mi scopro, io non riesco a giocare
perche' finisco con le pedine "tutti in fila per uno".
-- 
Saluti, Dalet

 rec.games.backgammon che puo' manipolare i dadi... ;-))
LOL! ;^)
bye!

 Livio
Ne sai di più su questo tipo di generatori?
Li incontrai a suo tempo in teoria dei segnali
nelle sequenze pseudo noise
la cui autocorrelazione temporale
è periodica.
Se la lunghezza del registro a scorrimento
è piuttosto grande rispetto al numero
di estrazioni questo generatore
è sufficientemente casuale.
Io l'ho messo in relazione
e non so se mi sbaglio
a certi interi il cui inverso
genera una sequenza di resti periodica
di lunghezza massima possibile come 
p.es
. 7
A naso questi interi mi parevano essere un sottinsieme dei numeri primi.
Ecco appunto, in rete c'è del materiale importante su questo argomento?
Grazie

 Ecco appunto, in rete c'è del materiale importante su questo argomento?
http://de.wikipedia.org/wiki/Scrambler
Questo e' in tedesco, ma e' l'unico che ho trovato con gli schemi.
C'e' un duale in inglese ma senza schemi.
Son certo che la cosa e' trattata matematicamente da qualche parte in
modo approfondito, ma ho paura di non saperlo piu' ricostruire.
Ciao!!!  :o)
Livio