Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-23 Per discussione M. Manca
Oscar ha scritto:
>> - Microsoft Visual Studio usa RAND_MAX=32767, quindi se OOo e' stato
>>   compilato con quello avrete a disposizione solo 32768 numeri casuali.
>>   http://msdn.microsoft.com/en-us/library/2dfe3bzd(VS.80).aspx
>> - GNU GCC (C++) usa RAND_MAX=2147483647, quindi se OOo e' stato
>>   compilato con quello avrete a disposizione oltre 2 miliardi di numeri
>>   casuali e le collisioni saranno eventi assolutamente eccezionali.
>>   http://www.gnu.org/software/libc/manual/html_node/ISO-Random.html
>
> quindi anche in questo caso è colpa di Microsoft ;-)
>
> grazie della spiegazione, ora tutto è più chiaro!
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>
Mi è scappato l'invia prima di finire quel che volevo dire lo
standard C99 stabilisce che RAND_MAX debba essere maggiore o uguale a
32767 quindi è lecito aspettarsi nel peggiore dei casi che valga 32767.
Ergo, chi deve scrivere codice portabile copia rand(), gli cambia
nome e non la fa dipendere da RAND_MAX ma da un altra define di suo
gradimento.

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-23 Per discussione M. Manca
Oscar ha scritto:
>> - Microsoft Visual Studio usa RAND_MAX=32767, quindi se OOo e' stato
>>   compilato con quello avrete a disposizione solo 32768 numeri casuali.
>>   http://msdn.microsoft.com/en-us/library/2dfe3bzd(VS.80).aspx
>> - GNU GCC (C++) usa RAND_MAX=2147483647, quindi se OOo e' stato
>>   compilato con quello avrete a disposizione oltre 2 miliardi di numeri
>>   casuali e le collisioni saranno eventi assolutamente eccezionali.
>>   http://www.gnu.org/software/libc/manual/html_node/ISO-Random.html
>
> quindi anche in questo caso è colpa di Microsoft ;-)
>
> grazie della spiegazione, ora tutto è più chiaro!
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>
Bisognerebbe segnalarlo agli svilupatori, includere una copia locale di
rand() eventualmente rinominata che usi un valore esplicito risolverebbe
tutti i problemi di compatibilità. Purtroppo il problema di RAND_MAX è
piuttosto comune ed interessa anche altri compilatori ad es. anche il
Borland/Code Gear ha RAND_MAX 32767. Pare che il problema sia stato
sottovalutato...

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-23 Per discussione Oscar

- Microsoft Visual Studio usa RAND_MAX=32767, quindi se OOo e' stato
  compilato con quello avrete a disposizione solo 32768 numeri casuali.
  http://msdn.microsoft.com/en-us/library/2dfe3bzd(VS.80).aspx
- GNU GCC (C++) usa RAND_MAX=2147483647, quindi se OOo e' stato
  compilato con quello avrete a disposizione oltre 2 miliardi di numeri
  casuali e le collisioni saranno eventi assolutamente eccezionali.
  http://www.gnu.org/software/libc/manual/html_node/ISO-Random.html


quindi anche in questo caso è colpa di Microsoft ;-)

grazie della spiegazione, ora tutto è più chiaro!

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-21 Per discussione Andrea Pescetti
Oscar ha scritto:
> A1:A100 =casuale()
> B1:B100 =RANGO(A1;$A$1:$A$100)
> C1:C100 =SEGNO(CONTA.SE(B$1:B$100;B1)-1) ...
> continuo a trovare doppioni; e aggiungo con molta facilità.

La spiegazione di tutto e' che in ambiente Microsoft Windows (sotto
spiego meglio, in realta' e' il compilatore che fa la differenza) il
generatore di numeri casuali di Calc e' fortemente limitato. Esistono
solo (sono pochi!) 32768 numeri "casuali", per la precisione:
0/32768, 1/32768..., 32767/32768.

Per verificare, basta scrivere:
A1: [=CASUALE()]
B1: [=A1*32768]
C1: [=B1-ARROTONDA.DIFETTO(B1;1)]
Se la cella C1 rimane sempre a zero anche aggiornando piu' volte con
CTRL-SHIFT-F9, la vostra versione di Calc e' stata compilata con questo
supporto limitato per i numeri casuali.

Questo spiega tutto:
- Con solo 32768 numeri a disposizione, e' relativamente facile trovare
  dei doppioni in un elenco di 100 chiamate consecutive (indipendenti o
  no); se 100 vi sembra molto piccolo rispetto a 32768, cercate
  informazioni sul "paradosso dei compleanni".
- Moltiplicare CASUALE()*CASUALE() distrugge varie proprieta'
  statistiche, ma aumenta l'insieme dei risultati ottenibili, che
  diventano parecchi milioni. Quindi cala di molto la probabilita' di
  trovare collisioni, o "doppioni".

E' un bug di OOo? No, il codice di OOo rimanda la scelta al compilatore:
sc/source/core/tool/interpr1.cxx
  void ScInterpreter::ScRandom() {
PushDouble((double)rand() / ((double)RAND_MAX+1.0));
  }

Di qui si nota che il denominatore e' RAND_MAX+1. RAND_MAX dipende dal
compilatore che usate:
- Microsoft Visual Studio usa RAND_MAX=32767, quindi se OOo e' stato
  compilato con quello avrete a disposizione solo 32768 numeri casuali.
  http://msdn.microsoft.com/en-us/library/2dfe3bzd(VS.80).aspx
- GNU GCC (C++) usa RAND_MAX=2147483647, quindi se OOo e' stato
  compilato con quello avrete a disposizione oltre 2 miliardi di numeri
  casuali e le collisioni saranno eventi assolutamente eccezionali.
  http://www.gnu.org/software/libc/manual/html_node/ISO-Random.html

La differenza tra compilatori spiega anche l'ultimo mistero rimasto,
cioe' perche' il problema si manifesta solo per utenti Microsoft
Windows.

Ciao,
  Andrea.


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione Francesco Forti
At 11:55 19.03.2009, Guido (email.it) wrote:

>mi inserisco in questo thread, che sta diventando un tormentone,  
>introducendo due ulteriori spunti di riflessione:
>- il fatto che siano casuali NON ESCLUDE la possibilità di ottenere più volte 
>lo stesso risultato in quanto non si tratta di estrazioni esaustive (tipo 
>estrazione del lotto)
>- la verifica della casualità di una serie di numeri deve essere fatta con 
>metodi statistici e non con metodi "visivi"
>- ai vari metodi di generazione di numeri casuali è possibile associare un 
>punteggio di verisimiglianza (probabilità)
>- in alla necessità si sceglie un metodo casuale o un altro (già detto) 


Verissimo. Era pero' una richiesta esplicita del primo richiedente,
in quanto lui richiedeva una estrazione multipla senza ripetizione
dei numeri già estratti. 
Come a dire che se dal cesto estrai il 45, poi questo numero non deve 
piu' uscire. 

FF



-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione M. Manca
Guido (email.it) ha scritto:
> "molti hanno" scritto:
>> Paolo Pedaletti ha scritto:
>>   confermo i numeri doppi 
> mi inserisco in questo thread, che sta diventando un tormentone, 
> introducendo due ulteriori spunti di riflessione:
> - il fatto che siano casuali NON ESCLUDE la possibilità di ottenere
> più volte lo stesso risultato in quanto non si tratta di estrazioni
> esaustive (tipo estrazione del lotto)
scusa ma la bontà di un generatore di numeri casuali è espressa come
l'inverso del periodo minimo garantito per la generazione dello stesso
numero. Infatti i metodi software (che non utilizzino registri hardware
o misure riconducibili ad eventi naturali) sono in grado di generare
numeri e/o sequenze pseudo-casuali. In linea di massima la doc. di MS
Excel e di OOo calc riferisce di un periodo pari a circa 1 milione di
estrazioni.
> - la verifica della casualità di una serie di numeri deve essere fatta
> con metodi statistici e non con metodi "visivi"
certo, il problema è che la soluzione adottata non doveva ricorrere a
macro o codice e pertanto è comunque una soluzione semplificata ma
sufficiente per risolvere il problema in questione. Ora il punto è:
considerato che ogni casuale() in ogni cella è indipendente da tutte le
altre e che c'è una probabilità di 1 su circa 1 milione che la stessa
casuale() generi 2 volte lo stesso numero è possibile che 90 casuale()
indipendenti alla prima estrazione possano generare 1 o più numeri
uguali? E come mai indipendentemente dal numero di decimali 90 casuale()
* casuale() che matematicamente esprime una funzione di probabilità più
sfavorevole rispetto a casuale() (1 sola) apparentemente funzionano
meglio? Mi risulta che il campionamento di un'estrazione sia un metodo
sia probabilistico sia statistico e quindi corretto. Io mi son preso la
briga di rilevare la distribuzione, varianza e covarianza dell'insieme
dei risultati sia per casuale() sia per casuale*casuale() e loro 90
esecuzioni successive e ovviamente i dati rispecchiano una certa bontà
dell'algoritmo ed in questo caso doppioni non ce ne sono mai stati
neppure con 8 decimali ed i risultati confermano che casuale() da sola
lavora meglio (risultato più che ovvio).

Il problema resta la presunta indipendenza di n funzioni casuale() che
parrebbe non altrettanto buona e che producono risultati di qualità
inferiore paragonati alla singola casuale() che genera n estrazioni.
> - ai vari metodi di generazione di numeri casuali è possibile
> associare un punteggio di verisimiglianza (probabilità)
> - in alla necessità si sceglie un metodo casuale o un altro (già
> detto) 
> Guido
>
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione M. Manca
Francesco Forti ha scritto:
> ho fatto anche io la prova ma seguendo il dibattito passato qui
> ho anche impostato un certo numero di decimali.
> Si suggeriva il massimo consentito.
> Io ne ho messi 15 e sono passato da un discreto numenro di doppioni 
> a zero
>   
ops... quando ho scrtto confermo i numeri doppi mi riferivo ad un mio
precedente post dove rilevavo doppi fino a 8, molto occasionali tra 8 e
12 decimali e nessuno oltre i 12 ma rilevavo che le ultime cifre erano
periodiche con un periodo molto breve es ultima cifra sempre 0 o 5.
> Ciao,
> Francesco F. 
>
> At 08:46 19.03.2009, Oscar wrote:
>   
>> ciao,
>>
>> ho provato di nuovo con:
>>
>> A1:A100
>> =casuale()
>>
>> B1:B100
>> =RANGO(A1;$A$1:$A$100)
>>
>> C1:C100
>> =SEGNO(CONTA.SE(B$1:B$100;B1)-1)
>>
>> con le somme nelle rispettive B101 e C101
>>
>> inoltre ho verificato di non aver attivo "precisione come mostrato", ma 
>> continuo a trovare doppioni; e aggiungo con molta facilità.
>>
>> Il mio sistema è un Windows XP sp3, openoffice 3.0.1 build 9379, sto usando 
>> una versione portatile.
>>
>> Ho provato pure su un altro computer con la versione 2.3.1 installata sempre 
>> windows XP sp3 e ottengo lo stesso risultato!
>>
>> Posso provare a casa che ho una OpenSuse e una Mandriva.
>> 
>
>
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>
>   

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione Guido (email.it)

"molti hanno" scritto:

Paolo Pedaletti ha scritto:
  
confermo i numeri doppi 
mi inserisco in questo thread, che sta diventando un tormentone,  
introducendo due ulteriori spunti di riflessione:
- il fatto che siano casuali NON ESCLUDE la possibilità di ottenere più 
volte lo stesso risultato in quanto non si tratta di estrazioni 
esaustive (tipo estrazione del lotto)
- la verifica della casualità di una serie di numeri deve essere fatta 
con metodi statistici e non con metodi "visivi"
- ai vari metodi di generazione di numeri casuali è possibile associare 
un punteggio di verisimiglianza (probabilità)

- in alla necessità si sceglie un metodo casuale o un altro (già detto) 
Guido


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione Francesco Forti

ho fatto anche io la prova ma seguendo il dibattito passato qui
ho anche impostato un certo numero di decimali.
Si suggeriva il massimo consentito.
Io ne ho messi 15 e sono passato da un discreto numenro di doppioni 
a zero

Ciao,
Francesco F. 

At 08:46 19.03.2009, Oscar wrote:
>ciao,
>
>ho provato di nuovo con:
>
>A1:A100
>=casuale()
>
>B1:B100
>=RANGO(A1;$A$1:$A$100)
>
>C1:C100
>=SEGNO(CONTA.SE(B$1:B$100;B1)-1)
>
>con le somme nelle rispettive B101 e C101
>
>inoltre ho verificato di non aver attivo "precisione come mostrato", ma 
>continuo a trovare doppioni; e aggiungo con molta facilità.
>
>Il mio sistema è un Windows XP sp3, openoffice 3.0.1 build 9379, sto usando 
>una versione portatile.
>
>Ho provato pure su un altro computer con la versione 2.3.1 installata sempre 
>windows XP sp3 e ottengo lo stesso risultato!
>
>Posso provare a casa che ho una OpenSuse e una Mandriva.



-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione M. Manca
Paolo Pedaletti ha scritto:
> Ciao Oscar
>
>> inoltre ho verificato di non aver attivo "precisione come mostrato", ma
>> continuo a trovare doppioni; e aggiungo con molta facilità.
>
> io no, somme sempre 0 in ultima colonna
>
> Ubuntu 8.10 OpenOffice 3.0.1 (scaricato da openoffice.org)
> e OpenOffice 2.4.1
>
> di piu' non so...
>
> ciao
>
confermo i numeri doppi ma vorrei far presente che o si sa in che modo
vengono generati a partire da una radice o il discorso lascia il tempo
che trova. Mi spiego: la funzione di libreria c rand() accetta un numero
radice da cui partire per generare i numeri, visto che OOo non permette
di selezionare la radice è presumibile che la acquisisca automaticamente
e potrebbe farlo automaticamente a partire da un timer hardware o
qualche altro registro. Se non si sa questo e se non si sa se il
comportamento è identico in MS e Linux non si può stabilire
l'indipendenza di più funzioni casuale() e di tutto il resto di
conseguenza. Comunque a priori 100 funzioni casuale() non equivalgono a
100 numeri generati da 100 chiamate consecutive di casuale(). Resta
inteso che casuale() * casuale() su un intervallo tra 0 e 1
evidentemente riduce lo spazio dei risultati in misura variabile ma
comunque li comprime perché il prodotto di 2 numeri < 1 è comunque
minore del minore dei 2.

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione Paolo Pedaletti

Ciao Oscar


inoltre ho verificato di non aver attivo "precisione come mostrato", ma
continuo a trovare doppioni; e aggiungo con molta facilità.


io no, somme sempre 0 in ultima colonna

Ubuntu 8.10 OpenOffice 3.0.1 (scaricato da openoffice.org)
e OpenOffice 2.4.1

di piu' non so...

ciao

--
Paolo Pedaletti
www.openlabs.it

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-19 Per discussione Oscar

ciao,

ho provato di nuovo con:

A1:A100
=casuale()

B1:B100
=RANGO(A1;$A$1:$A$100)

C1:C100
=SEGNO(CONTA.SE(B$1:B$100;B1)-1)

con le somme nelle rispettive B101 e C101

inoltre ho verificato di non aver attivo "precisione come mostrato", ma 
continuo a trovare doppioni; e aggiungo con molta facilità.


Il mio sistema è un Windows XP sp3, openoffice 3.0.1 build 9379, sto 
usando una versione portatile.


Ho provato pure su un altro computer con la versione 2.3.1 installata 
sempre windows XP sp3 e ottengo lo stesso risultato!


Posso provare a casa che ho una OpenSuse e una Mandriva.

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-18 Per discussione Andrea Pescetti
Il 16/03/2009 Oscar ha scritto:
> ho inserito la formula =casuale() nelle celle A1:A90
> ho impostato il massimo dei numeri decimali consentiti e ho ottenuto 
> numeri tipo questo 0,8022155761718750
> nelle celle B1:B90 ho inserito la formula =RANGO(A1;$A$1:$A$90)
> nella cella B91 ho messo la formula =SOMMA(B1:B90)
> poi ho premuto di seguito CTRL+SHIFT+F9
> sapendo che il totale della colonna B1:B90 doveva essere 4095, ho 
> controllato il risultato

Grazie, cosi' e' molto chiaro. Pero' merita ancora una piccola indagine
perche' il comportamento che descrivi (avere numerosi doppioni) e'
ancora sintomo che CASUALE() avrebbe qualcosa che non va.

Prima di tutto, in aggiunta alle tue formule io metterei in C1
[=SEGNO(CONTA.SE(B$1:B$90;B1)-1)] che restituisce 1 se il numero compare
piu' di una volta, 0 in caso contrario. Mettendo in C91 [=SOMMA(C1:C90)]
puoi vedere immediatamente quanti doppioni hai, senza passare per B1
che, come detto, usa un criterio molto debole.

Io ho fatto, come te, diverse centinaia di prove con CTRL+SHIFT+F9 ma
non ho mai ottenuto un doppione (C91 valeva sempre zero). Questo e' il
comportamento che mi aspetterei da un buon generatore di numeri
"casuali". Perche' tu ottenevi tanti doppioni?

Forse avevi attivato "precisione come mostrato" in Strumenti - Opzioni -
OpenOffice.org Calc - Calcola? Se attivo "precisione come mostrato" e
uso due decimali anch'io trovo doppioni, ma se uso, come facevi tu, il
massimo dei decimali consentiti non ho alcun doppione anche su molti
tentativi.

Inoltre, usando solo due decimali, con [=CASUALE()] in A1:A90 ottengo
qualche doppione, ma molti meno (non di piu'!) di quelli che ottengo con
[=CASUALE()*CASUALE()]. E' una conferma empirica di quanto gia'
scrivevo, cioe' che CASUALE()*CASUALE() dovrebbe peggiorare le cose e
non migliorarle.

Se riesci a fare un controllo veloce alla luce di quanto scrivo e a dare
qualche dettaglio sul tuo sistema magari possiamo investigare meglio: io
posso solo dire che lo considererei un problema, ma che non riesco
assolutamente a riprodurlo con l'analisi che ho fatto, che dimostra anzi
che CASUALE() si comporta come prescritto dalla teoria.

Ciao,
  Andrea.


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-16 Per discussione Oscar

ciao a tutti,

ho letto solo ora i messaggi.

Riepilogo:

io avevo bisogno di generare in modo casuale una sequenza di numeri 
dall'1 all'x (era più un test che non un utilizzo vero e proprio).


Dopo i vari consigli questo è quanto ho provato:

ho inserito la formula =casuale() nelle celle A1:A90

ho impostato il massimo dei numeri decimali consentiti e ho ottenuto 
numeri tipo questo 0,8022155761718750


nelle celle B1:B90 ho inserito la formula =RANGO(A1;$A$1:$A$90)

nella cella B91 ho messo la formula =SOMMA(B1:B90)

poi ho premuto di seguito CTRL+SHIFT+F9

sapendo che il totale della colonna B1:B90 doveva essere 4095, ho 
controllato il risultato e ho notato che molto spesso escono numeri 
doppi; così ho capito il mio "giochetto" per avere una sequenza casuale 
di numeri non funzionava


ho risolto il problema con la formula =casuale()*casuale() su A1:A90

ripetendo lo stesso test per un paio di minuti non ho mai trovato un 
numero doppio (ho provato anche con 1000 numeri per curiosità e idem non 
si sono verificati numeri doppi).


questo è tutto

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-16 Per discussione M. Manca
Andrea Pescetti ha scritto:
> Oscar ha scritto:
>> ho fatto delle prove, ho messo in piedi la tua idea con 90 numeri e
>> una sola =Casuale()
>
> Mi interessa tornare sull'argomento per controllare che non ci sia un
>  colossale problema con la funzione CASUALE(), anche se credo di
> avere capito male io. Tu dici che hai scritto [=CASUALE()] in 90
> celle, ad esempio A1:A90?
>
>> in una cella ho fatto in modo che mi calcoli la somma dei numeri
>> che uscivano e sapendo che il risultato doveva essere 4095
>> S(1,2,x)=x/2*(x+1)
>
> E cosa c'entra una formula con numeri interi con il calcolo qui
> sopra, che produce numeri in virgola mobile? Allora usavi qualcosa
> tipo [=ARROTONDA.ECCESSO(CASUALE()*90;1)] in maniera da ottenere
> numeri interi tra 1 e 90? Oppure lo usavi semplicemente come stima
> per vedere che i tuoi numeri fossero "ben distribuiti"?
Anche io non sono molto d'accordo con questo metodo che è il limite di
una serie e quindi è approssimato con numeri reali. Io per verificare il
tutto ho usato la nota proprietà della somma di un intervallo di interi
consecutivi su una seconda colonna ottenuta con =RANGO(A1:A90;A1:A90)
che sta in B1:B90. Effettivamente talvolta ci sono numeri doppi ma la
stranezza è che non ce ne sono di ESATTAMENTE uguali in A1:A90 ma al
massimo di molto simili (differenze oltre l'ottavo decimale).
Per sciogliere il dubbio ho disabilitato il calcolo automatico e
provveduto a riordinare le colonne quando la somma è diversa da quella
attesa (5151) ed al più ho ritrovato numeri vicini ma non uguali.
>
>> ho tenuto premuto i pulsanti CTRL+SHIFT+F9 Ho constato che così
>> uscivano spesso numeri doppi
>
> Ecco, questo e' il punto che mi interessa chiarire. Come controllavi
> se c'erano doppioni? Facendo la somma? Guardare il totale e' un
> criterio che, anche se tu lo usassi solo per numeri interi (quindi
> con la formula modificata come scritto sopra) e' troppo debole: se ti
> esce per 45 volte "1" e per 45 volte "90", la somma torna lo stesso,
> ma i doppioni ci sono!
Pienamente d'accordo però ho fatto qualche verifica pure io sia sulla
colonna ottenuta con RANGO sia sulla colonna ottenuta con CASUALE() ed
effettivamente con CASUALE() non ci sono doppioni se utilizzi un numero
elevato di decimali (es 15) ma se ne usi mano di 8 ce ne sono
causaarrotondamenti. Comunque c'è qualcosa che non va perché con un
numero alto di decimali c'è periodicità 2 dell'ultima cifra (sempre 0 o
5) e delle ultime 3 tendenzialmente sempre dispari o 0.
>
>> mentre moltiplicando =Casuale()*Casuale() non ho avuto nessun
>> doppione per un paio di minuti di fila
>
> Questo testimonia che non ho capito bene cosa facevi. Se il
> generatore di numeri "casuali" di Calc e' valido (e dalle prove che
> ho fatto poco fa con la 3.0.1 direi che e' accettabile), usare
> "CASUALE()*CASUALE()" dovrebbe produrre numeri molto meno "casuali"
> del caso precedente, perche' schiacciati verso il basso: con
> "CASUALE()" hai che il 50% dei numeri prodotti e' tra 0 e 0.5 e il
> 50% tra 0.5 e 1; con "CASUALE()*CASUALE()" hai, in pieno accordo con
> la teoria, che ben piu' di meta' dei numeri risultanti e' tra 0 e
> 0.5.
Infatti è così però sia io che te abbiamo trascurato un piccolo
particolare e cioè che casuale() genera numeri casuali a partire da un
numero radice e quindi garantisce con circa 1 possibilità su 1 milione
che la stessa casuale() non generi consecutivamente lo stesso numero;
qui però ci sono 90 casuale() indipendenti che generano numeri casuali e
quindi effettivamente non si può escludere e nemmeno quantificare la
probabilità che il primo numero generato da 2 di loro sia lo stesso a
meno di conoscere l'implementazione del codice ed il criterio di scelta
della radice di generazione. Effettivamente nella pratica l'uso di
casuale()*casuale() sembra risolvere il problema (tutte le tue
considerazioni sulla distribuzione e sulla densità dei numeri generati
restano comunque valide).
>
> Anche il criterio empirico di sommare
> [=ARROTONDA.ECCESSO(CASUALE()*90;1)] (per 90 volte) e
> [=ARROTONDA.ECCESSO(CASUALE()*CASUALE()*90;1)] (sempre per 90 volte)
> produce i risultati previsti: la somma e' vicina al fatidico 4095 nel
>  primo caso, molto piu' bassa nel secondo.
>
> Insomma, io non riesco proprio a capire se in questo modo hai risolto
> il problema originario, cioe' ottenere i numeri interi da 1 a 90
> ordinati secondo una sequenza casuale. Se ce l'hai fatta, hai trovato
> un grosso bug in Calc, dato che la probabilita' di riuscirci, che
> puoi calcolare facilmente in Calc con
> [=PERMUTAZIONE(90;90)/PERMUTAZIONA(90;90)], e' lo 0,0%!
>
> O forse ho capito male io e tu NON hai risolto il problema
> originario... Se ce l'hai fatta per favore spiega esattamente quali
> formule hai usato e in quali celle, in modo che io possa aprire una
> segnalazione di bug se i numeri non sono abbastanza "casuali"!
In sostanza bisognerebbe fare in modo che sia la stessa CASUALE() a
generare tutti i 90 numeri oppure bisognere

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-15 Per discussione Andrea Pescetti
nottolino ha scritto:
> Ci sono quindi i comandi per generare numeri pseudocasuali, MA SEMPRE 
> ALLO STESSO MODO, in modo che si possa riprodurre la sequenza.
> Roba tipo set.seed(12345) e altri comandi
> In OO c'e' modo di ottenere sempre la stessa sequenza pseudocasuale ??

Queste tecniche si basano su (varianti piu' sofisticate di) quella che
ho descritto nella mia prima risposta in questo thread, cioe'
individuare, nel nostro esempio, un numero primo e un numero di partenza
(derivati dal "seed" che citi) e ottenere una sequenza che e'
completamente definita una volta assegnati quei parametri iniziali.

Ciao,
  Andrea.


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-15 Per discussione Andrea Pescetti
Oscar ha scritto:
> ho fatto delle prove, ho messo in piedi la tua idea con 90 numeri e una 
> sola =Casuale()

Mi interessa tornare sull'argomento per controllare che non ci sia un
colossale problema con la funzione CASUALE(), anche se credo di avere
capito male io. Tu dici che hai scritto [=CASUALE()] in 90 celle, ad
esempio A1:A90?

> in una cella ho fatto in modo che mi calcoli la somma dei numeri che 
> uscivano e sapendo che il risultato doveva essere 4095
> S(1,2,x)=x/2*(x+1)

E cosa c'entra una formula con numeri interi con il calcolo qui sopra,
che produce numeri in virgola mobile? Allora usavi qualcosa tipo
[=ARROTONDA.ECCESSO(CASUALE()*90;1)] in maniera da ottenere numeri
interi tra 1 e 90? Oppure lo usavi semplicemente come stima per vedere
che i tuoi numeri fossero "ben distribuiti"?

> ho tenuto premuto i pulsanti CTRL+SHIFT+F9
> Ho constato che così uscivano spesso numeri doppi

Ecco, questo e' il punto che mi interessa chiarire. Come controllavi se
c'erano doppioni? Facendo la somma? Guardare il totale e' un criterio
che, anche se tu lo usassi solo per numeri interi (quindi con la formula
modificata come scritto sopra) e' troppo debole: se ti esce per 45 volte
"1" e per 45 volte "90", la somma torna lo stesso, ma i doppioni ci
sono!

> mentre moltiplicando
> =Casuale()*Casuale()
> non ho avuto nessun doppione per un paio di minuti di fila

Questo testimonia che non ho capito bene cosa facevi. Se il generatore
di numeri "casuali" di Calc e' valido (e dalle prove che ho fatto poco
fa con la 3.0.1 direi che e' accettabile), usare "CASUALE()*CASUALE()"
dovrebbe produrre numeri molto meno "casuali" del caso precedente,
perche' schiacciati verso il basso: con "CASUALE()" hai che il 50% dei
numeri prodotti e' tra 0 e 0.5 e il 50% tra 0.5 e 1; con
"CASUALE()*CASUALE()" hai, in pieno accordo con la teoria, che ben piu'
di meta' dei numeri risultanti e' tra 0 e 0.5.

Anche il criterio empirico di sommare
[=ARROTONDA.ECCESSO(CASUALE()*90;1)] (per 90 volte) e
[=ARROTONDA.ECCESSO(CASUALE()*CASUALE()*90;1)] (sempre per 90 volte)
produce i risultati previsti: la somma e' vicina al fatidico 4095 nel
primo caso, molto piu' bassa nel secondo.

Insomma, io non riesco proprio a capire se in questo modo hai risolto il
problema originario, cioe' ottenere i numeri interi da 1 a 90 ordinati
secondo una sequenza casuale. Se ce l'hai fatta, hai trovato un grosso
bug in Calc, dato che la probabilita' di riuscirci, che puoi calcolare
facilmente in Calc con [=PERMUTAZIONE(90;90)/PERMUTAZIONA(90;90)], e'
lo 0,0%!

O forse ho capito male io e tu NON hai risolto il problema originario...
Se ce l'hai fatta per favore spiega esattamente quali formule hai usato
e in quali celle, in modo che io possa aprire una segnalazione di bug se
i numeri non sono abbastanza "casuali"!

Ciao,
  Andrea.



-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione nottolino
Visto che siete preparati sull'argomento, azzardo un'altra richiesta sui 
numeri casuali.


In altri software ("R" ad esempio), i numeri pseudo-casuali vengono 
generati a partire da un seme.
Ci sono quindi i comandi per generare numeri pseudocasuali, MA SEMPRE 
ALLO STESSO MODO, in modo che si possa riprodurre la sequenza.

Roba tipo set.seed(12345) e altri comandi

In OO c'e' modo di ottenere sempre la stessa sequenza pseudocasuale ??

nottolino ha scritto:

Se proprio ti serve ancora piu' casuale...
http://www.random.org/




-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione nottolino

Se proprio ti serve ancora piu' casuale...
http://www.random.org/



-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione Oscar
Maggiore è il numero di decimali e minore è la possibilità che i 
duplicati siano in realtà degli arrotondamenti per rispettare il formato 
della cella.


Forse mi sono spiegato male, usando

=Casuale()

ottengo questo numero:
0,5698852539062500


=Casuale()*Casuale()

ottengo quest'altro numero:
0,2245210576802490

Come vedi ho usato il massimo dei numeri decimali consentiti da Calc in 
tutti e due i casi. Sicuramente è come spiegavano Francesco e Nottorino, 
si tratta di pseudo-casuale quindi, quello che intendevo dire è che, con


=Casuale() su 90 numeri si verificano spesso numeri doppi

mentre con

=Casuale()*Casuale() sempre su 90 numeri, i doppi sono molto rari (nel 
mio breve test non ne sono mai usciti).


tutto qui.

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione M. Manca
Oscar ha scritto:
>> non vorrei darti una cattiva notizia ma questo non fa diminuire la
>> probabilità che i numeri generati siano uguali, è sufficiente una sola
>
> ho fatto delle prove, ho messo in piedi la tua idea con 90 numeri e
> una sola =Casuale()
1. casuale() è una funzione definita sui numeri reali quindi visto che
in matematica l'intervallo è continuo, se vuoi che la funzione operi
correttamente è necessario utilizzarla in un intervallo continuo, quindi
più è limitato il numero di decimali "meno è continuo" l'intervallo.
Mi spiego: (0,1) ha infiniti valori ma se tu ometti il numero di
decimali si riduce a 2 valori, con 1 decimale a 11 valori e così via.
Maggiore è il numero di decimali e minore è la possibilità che i
duplicati siano in realtà degli arrotondamenti per rispettare il formato
della cella.
>
> in una cella ho fatto in modo che mi calcoli la somma dei numeri che
> uscivano e sapendo che il risultato doveva essere 4095
>
> S(1,2,x)=x/2*(x+1)
2. scusa non capisco cosa vorresti dimostrare o non interpreto
correttamente S(1,2,x)
Se vuoi rifarti alla proprietà della somma di un intervallo continuo di
numeri naturali fai pure (somma(1,...n) = [n * (n+1)]/2 ma la devi
applicare all'array di celle dove applichi la funzione rango().
Se invece ti rifai al limite di una serie sui numeri reali... è un
limite non un valore preciso.


RANGO

Restituisce il rango di un valore in un campione.


  Sintassi

RANGO(Numero; Dati; Ordine)

*Numero* è il numero di cui si desidera ricercare il rango.

*Dati* è la matrice dei dati nel campione.

*Ordine* (opzionale) specifica in che modo si devono disporre i numeri.

Tipo = 0 indica l'ordine discendente dall'ultimo elemento della matrice
al primo (impostazione predefinita),

Tipo = 1 indica l'ordine ascendente dal primo elemento dell'intervallo
all'ultimo.


  Esempio

=RANGO(A10; A1:A50) indica il rango del numero in A10 all'interno dei
numeri nell'area A1:A50. Se Valore è fuori dall'intervallo, viene
visualizzato un messaggio di errore.


Mi sembra più intuitivo fare un copia/incolla speciale (solo numeri) e
poi fare un ordina e verificare che i valori siano tutti quelli compresi
nel tuo intervallo.
Mi sono preso la briga di creare una serie di 90 valori contenenti dei
duplicati e ho verificato che l'array prodotto da rango() non contiene
comunque dei dati duplicati quindi pesno che la soluzione sia ottimale.


>
> ho tenuto premuto i pulsanti CTRL+SHIFT+F9
>
> Ho constato che così uscivano spesso numeri doppi, mentre moltiplicando
>
> =Casuale()*Casuale()
>
> non ho avuto nessun doppione per un paio di minuti di fila
>
> forte no? ;-)
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione Oscar

scusa quanti decimali hai utilizzato? Perchè l'intervallo (0,1) è sui
numeri reali ma se limiti il numero di decimali causi arrotondamenti.


ho utilizzato il massimo dei numeri decimali!!! Sono rimasto stupito 
anch'io di quanto facilmente possano uscire numeri casuali uguali 
(almeno su 90).


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione nottolino
Io faccio cosi, quando debbo randomizzare un esperimento (assegnare a 
caso il trattamento).


Faccio una lista ordinata in una colonna (soggetto A, B C D etetc)
Nella colonna accanto inserisco la funzione "casuale()", e la ripeto per 
ogni cella.

Poi trasformo i dati da formule a valori

Quindi ho una colonna ordinata e una pseudo casuale (ma che per i mie 
scopi va piu' che bene).


Ordino per la colonna casuale e quindi ho come risultato una colonna di 
soggetti ordinati casualmente.


Se invece voglio ripetere l'estrazione, non trasformo i valori.
In questo modo tutte le volte che do un enter
i numeri pseudo casuali cambiano
(credo che "casuale" parta da un seme collegato alla data/ora del computer)
e io ottengo un nuovo ordinamento casuale (OK pseudo, ma piu' che 
sodisfacente per usi comuni) della lista originale

8rino

Oscar ha scritto:

ciao a tutti,

siete a conoscenza di un metodo semplice per ordinare in modo casuale 
una certa sequenza di numeri con Calc?


Es: 1,2,3,4,5,6,7,etc.. riordinati casualmente

Ho visto che si ha a disposizione la funzione Casuale.tra(min;MAX), 
pensavo di piazzare la formula su una serie di celle, ma in questo 
modo - logicamente - potrei ottenere più numeri uguali.


grazie

Oscar

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org





-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione M. Manca
Oscar ha scritto:
>> non vorrei darti una cattiva notizia ma questo non fa diminuire la
>> probabilità che i numeri generati siano uguali, è sufficiente una sola
>
> ho fatto delle prove, ho messo in piedi la tua idea con 90 numeri e
> una sola =Casuale()
>
> in una cella ho fatto in modo che mi calcoli la somma dei numeri che
> uscivano e sapendo che il risultato doveva essere 4095
>
> S(1,2,x)=x/2*(x+1)
>
> ho tenuto premuto i pulsanti CTRL+SHIFT+F9
>
> Ho constato che così uscivano spesso numeri doppi, mentre moltiplicando
scusa quanti decimali hai utilizzato? Perchè l'intervallo (0,1) è sui
numeri reali ma se limiti il numero di decimali causi arrotondamenti.
>
> =Casuale()*Casuale()
>
> non ho avuto nessun doppione per un paio di minuti di fila
>
> forte no? ;-)
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione Oscar

non vorrei darti una cattiva notizia ma questo non fa diminuire la
probabilità che i numeri generati siano uguali, è sufficiente una sola


ho fatto delle prove, ho messo in piedi la tua idea con 90 numeri e una 
sola =Casuale()


in una cella ho fatto in modo che mi calcoli la somma dei numeri che 
uscivano e sapendo che il risultato doveva essere 4095


S(1,2,x)=x/2*(x+1)

ho tenuto premuto i pulsanti CTRL+SHIFT+F9

Ho constato che così uscivano spesso numeri doppi, mentre moltiplicando

=Casuale()*Casuale()

non ho avuto nessun doppione per un paio di minuti di fila

forte no? ;-)

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione Oscar

Forse non hai letto bene la mia risposta. Non c'è trucco; la funzione


sì, l'ho letta e la trovo eccellente!!

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione M. Manca
Oscar ha scritto:
> Si potrebbe risolvere il problema scrivendo una macro, ma l'idea è
> quella di riuscirci usando celle e funzioni di Calc. Per quello avevo
> usato il termine TRUCCO (virgolettato).
>
> Attualmente, la soluzione più ingegnosa al problema credo sia quella
> di Paolo, usando la funzione RANGO. Ho provato con i numeri dall'1 al
> 90 con
>
> =CASUALE()*CASUALE()
non vorrei darti una cattiva notizia ma questo non fa diminuire la
probabilità che i numeri generati siano uguali, è sufficiente una sola
CASUALE() e comunque la probabilità di generazione di numeri casuali con
CASUALE() è di 1 su un milione circa dato l'algoritmo utilizzato.
Ovviamente la funzione RANGO ti annulla la possibilità che nell'array
risultato ci siano risultati doppi.
E la soluzione che ti ho proposto fa uso solo di celle e funzioni,
nessuna macro.
>
> e ricalcolando di seguito per un paio di minuti non si è mai
> verificato di avere un numero doppio; logicamente questo non lo
> esclude dal tutto!
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione Oscar
Si potrebbe risolvere il problema scrivendo una macro, ma l'idea è 
quella di riuscirci usando celle e funzioni di Calc. Per quello avevo 
usato il termine TRUCCO (virgolettato).


Attualmente, la soluzione più ingegnosa al problema credo sia quella di 
Paolo, usando la funzione RANGO. Ho provato con i numeri dall'1 al 90 con


=CASUALE()*CASUALE()

e ricalcolando di seguito per un paio di minuti non si è mai verificato 
di avere un numero doppio; logicamente questo non lo esclude dal tutto!


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione M. Manca
Oscar ha scritto:
> Ringrazio tutti per le risposte, bella l'idea di usare i numeri primi
> (adoro i numeri primi), ma come giustamente hai precisato non ottengo
> una sequenza casuale.
>
> Il mio obiettivo è una sequenza casuale di numeri dall'1 a x. Ad
> esempio con tre numeri avere: 1,2,3 oppure 2,3,1 oppure 1,3,2 etc.
>
> Deve esserci un "trucco" matematico che mi permetta questo!! Ci
> penserò e vi farò sapere.
Forse non hai letto bene la mia risposta. Non c'è trucco; la funzione
CASUALE() genera numeri casuali nell'intervallo 0..1 (numeri reali) con
1 probabilità su 1 milione. Nel tuo caso la soluzione più semplice è
quella di utilizzare un generatore di numeri casuali in un array di
celle (es 10 celle in colonna) ed in ognuna di queste celle devi
inserire la formula =CASUALE(). Poi selezioni un array di celle uguale
all'altro; quindi se il primo array è A1...A10 il secondo sarà B1...B10
ed utilizzando l'inserimento di formula per matrice (ctrl+shift+invio)
inserisci in B1 la formula =RANGO(A1:A10;A1:A10) così da prendere la
posizione della cella e non il numero contenuto. Quindi se tu vuoi
ottenere n numeri casuali diversi in un intervallo di 90 valori devi
usare 2 array di 90 posti e dal secondo array prendi i primi n valori
generati.
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione Francesco Forti
At 11:05 10.03.2009, Oscar wrote:
>Ringrazio tutti per le risposte, bella l'idea di usare i numeri primi (adoro i 
>numeri primi), ma come giustamente hai precisato non ottengo una sequenza 
>casuale.
>
>Il mio obiettivo è una sequenza casuale di numeri dall'1 a x. Ad esempio con 
>tre numeri avere: 1,2,3 oppure 2,3,1 oppure 1,3,2 etc.
>
>Deve esserci un "trucco" matematico che mi permetta questo!! Ci penserò e vi 
>farò sapere.

Non esiste "trucco".
Esiste "algoritmo"
ma se è algoritmo non è veramente casuale. 

Possiamo pero' avvicinarci alla casualità. 
Ad una buona simulazione. 
Il computer, essendo una macchina, puo' solo simulare, non fare. 

Sta a noi, a seconda di casi, accettare la simulazione.
Se è una fattura, accetto la simulazione.
Se è una banconota da 500€, non accetto la simulazione. 
Un numero pseudo casuale sta a metà strada e la sua accettazione dipende dagli 
obiettivi che hai. 

Secondo me la migliore soluzione, in termini di semplicità, l'ha data guido,
con la precisazione che per il lotto il range è 1-90, non 0-90. 

Ciao,
FF




-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-10 Per discussione Oscar
Ringrazio tutti per le risposte, bella l'idea di usare i numeri primi 
(adoro i numeri primi), ma come giustamente hai precisato non ottengo 
una sequenza casuale.


Il mio obiettivo è una sequenza casuale di numeri dall'1 a x. Ad esempio 
con tre numeri avere: 1,2,3 oppure 2,3,1 oppure 1,3,2 etc.


Deve esserci un "trucco" matematico che mi permetta questo!! Ci penserò 
e vi farò sapere.


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione Andrea Pescetti
Paolo Giovanni Zanin ha scritto:
> gumo...@email.it ha scritto:
> > per avere n numeri casuali distinti (tra 0 e 90)
> > puoi scrivere in 100 celle la formula =90*casuale()
> > oppure =Casuale.tra(0;90)
> > E ti prendi i primi n numeri DISTINTI che ti servono
> Una proposta "semplice", ma non impeccabile:
> se si volgliono i numeri da 1 a 10 in ordine "causuale":
> nelle celle da a1 a a10: "=casuale()";

Allora mi diverto un po' anch'io... un modo pulito, e nemmeno tanto
difficile, e' quello di usare un numero primo a caso (su Internet trovi
tavole a volonta', a te basta un numero primo piu' grande del numero di
dati che devi ordinare) e fare i calcoli con quello.

Immaginiamo, per comodita', che tu debba mettere in ordine "casuale" i
numeri tra 0 e 9 (cioe' 10 numeri).

In A1 inserisci un numero primo (esempio: 23)
In B1 inserisci un numero "casuale" iniziale [=casuale.tra(0;9)]
In C1 inserisci [=RESTO(B1+$A1;10)]
Trascini la formula a piacimento (fino a K1 se vuoi 10 numeri) e non
avrai ripetizioni.

Anche questa non e' impeccabile (si puo' generalizzare; non e' casuale
per nulla, e su numeri piccoli si nota; ci sono numeri primi che non si
prestano bene, come sarebbe stato 31 nel nostro esempio), ma forse per i
tuoi scopi puo' bastare.

Ciao,
  Andrea.


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione Paolo Giovanni Zanin

gumo...@email.it ha scritto:


per avere n numeri casuali distinti (tra 0 e 90)
puoi scrivere in 100 celle la formula =90*casuale()
oppure =Casuale.tra(0;90)
E ti prendi i primi n numeri DISTINTI che ti servono



Una proposta "semplice", ma non impeccabile:
se si volgliono i numeri da 1 a 10 in ordine "causuale":
nelle celle da a1 a a10: "=casuale()";
in b1: "=rango(a1;$a$1:$a$10)", in pratica la "classifica" dei numeri 
casuali estratti: questi numeri nella colonna B costituiscono la 
sequenza desiderata.


Naturalmente in questa classifica ci potrebbe essere un ex-aequeo (e 
quindi una ripetizione): nel caso in cui due numeri causali estratti 
nella prima colonna fossero uguali (ma la probabilità non è "molto 
alta"): in quel caso si potrebbe "ripetere l'estrazione"


Paolo

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione gumo345
- Original Message 
Da: utenti@it.openoffice.org
To: utenti@it.openoffice.org 
Oggetto: Re: [utenti] Domanda curiosa su generazione numeri casuali con
CALC
Data: 09/03/09 17:27

> 
> 
> 
>
> Se cerchi un "metodo semplice" io non lo vedo. 

La semplicità è funzione della richiesta... e dell'utilizzo.
Le soluzioni perfette spesso contrastano con le soluzioni buone.

per avere n numeri casuali distinti (tra 0 e 90)
puoi scrivere in 100 celle la formula =90*casuale()
oppure =Casuale.tra(0;90)
E ti prendi i primi n numeri DISTINTI che ti servono

Suggerisco di scrivere + formule rispetto ai numeri che ti servano realmente
per evitare il problema reale della collisione.
La probabilità che escano due numeri uguali in questo esempio è di circa
1/1800.
Questa probabilità potrebbe essere o meno accettabile .
Dipende solamente da come devi usare tali numeri 

Guido 
 --
 Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP
autenticato? GRATIS solo con Email.it: http://www.email.it/f
 
 Sponsor:
 Sviluppa il tuo business e trova nuovi clienti con il Direct Email
Marketing di Email.it, la strategia vincente per rafforzare la
notorieta'della tua impresa!

 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=8349&d=20090309



-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione M. Manca
Oscar ha scritto:
>> Per essere casuale occorre una certa quantità di intederminazione, o
>> fuzzy logic, il che non mi pare sia prevista in alcuna funzione calc. 
>
> peccato, grazie lo stesso!
>
> Oscar
Per quanto riguarda la generazione di numeri casuali ti rimando a
google; in generale si possono usare metodi tipo i millesimi di secondo
a partire dall'accensione del PC e altre cose legate all'uso del timer
di sistema.
Comunque calc prevede CASUALE che genera un numero casuale tra 0 e 1
(eq. funzione RAND) e CASUALE.TRA che ti permette di scegliere un
intervallo a piacere (rimappa in qualche modo l'intervallo 0,1
sull'intervallo desiderato.
Equivalgono rispettivamente a RAN e RAND.BETWEEN. Nell'uso pratico ai
fini calcolo delle probabilità e statistica van bene ma se vuoi sapere
quale algoritmo usano non lo so. In generale comunque si parla di
algoritmi che generano numeri pseudo-casuali anche se ti assicuro che
per l'uso comune questi algoritmi sono più che sufficienti. Se devi
gestire le estrazioni tipo lotto devi anche gestire i numeri già usciti
cin un array e limitarti a ripetere la generazione finchè viene generato
un numero che non è già uscito.
>
> -
> To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
> For additional commands, e-mail: utenti-h...@it.openoffice.org
>
>
>


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione Francesco Forti
At 14:57 09.03.2009, Oscar wrote:
>>Per essere casuale occorre una certa quantità di intederminazione, o fuzzy 
>>logic, il che non mi pare sia prevista in alcuna funzione calc. 
>
>peccato, grazie lo stesso!
>
>Oscar

ovviamente il fatto che nessun computer possa generare 
numeri realmente casuali, non significa che ci si possa
avvicinare molto. 

Per risolvere il tuo problema ritengo che non basti un
semplice insieme di celle con delle formule ma che
ci voglia un programmino (in Open Office basic) 
con delle interazioni ricorsive. 

Se cerchi un "metodo semplice" io non lo vedo. 

Ciao, 
Francesco 





-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione Oscar
Per essere casuale occorre una certa quantità di intederminazione, o 
fuzzy logic, il che non mi pare sia prevista in alcuna funzione calc. 


peccato, grazie lo stesso!

Oscar

-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione Francesco Forti
At 14:35 09.03.2009, Oscar wrote:
>>la vera causuaità è con rietizione, in quanto in ogni evento ogni
>>numero ha la stessa possibilità di essere estratto del precedente. 
>
>infatti, mi sono spiegato male. Avrei bisogno di un ordinamento casuale tra 
>una serie di numeri, o come meglio suggerivi tu: un'estrazione tipo lotto.

allora devi prevedere "n" eventi estrattivi casuali, ognuno basato
su un pool di mumeri che non comprenda i numeri già estratti
prima. 

Considera che comunque, sul piano puramente speculativo,
nessun numero selezionato da un algoritmo puo' essere casuale. 

Se è un algoritmo, è ripetibile. Quindi non è casuale. 
Il computer è una macchina di türing e quindi puo' solo
seguire algoritmi deterministici. Non puo' essere casuale, 
ma solo avvicinarsi abbastanza ad una parvenza di casualità. 

Per essere casuale occorre una certa quantità di intederminazione, o 
fuzzy logic, il che non mi pare sia prevista in alcuna funzione calc. 

Ciao,
Francesco 
 




-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione Oscar

la vera causuaità è con rietizione, in quanto in ogni evento ogni
numero ha la stessa possibilità di essere estratto del precedente. 


infatti, mi sono spiegato male. Avrei bisogno di un ordinamento casuale 
tra una serie di numeri, o come meglio suggerivi tu: un'estrazione tipo 
lotto.


-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org



Re: [utenti] Domanda curiosa su generazione numeri casuali con CALC

2009-03-09 Per discussione Francesco Forti
At 13:51 09.03.2009, Oscar wrote:
>ciao a tutti,
>
>siete a conoscenza di un metodo semplice per ordinare in modo casuale una 
>certa sequenza di numeri con Calc?
>
>Es: 1,2,3,4,5,6,7,etc.. riordinati casualmente
>
>Ho visto che si ha a disposizione la funzione Casuale.tra(min;MAX), pensavo di 
>piazzare la formula su una serie di celle, ma in questo modo - logicamente - 
>potrei ottenere più numeri uguali.

ovvio.
la sequenza 1,1,1,1,1,1,1,1,1,1 ha la stessa casualità 
della sequenza 1,5,4,3,7,6,2,4,2,9,8,8. 
Occorre infatti distingere tra casualità con o senza ripetizione. 
la vera causuaità è con rietizione, in quanto in ogni evento ogni
numero ha la stessa possibilità di essere estratto del precedente. 
Quindi la combinazione 5, 6 è identica a 5,5 e 6,6 quando a possibilità. 
Se stai invece simulando una estrazione tipo lotto, dove un numero 
estratto una volta non puo' piu' essere estratto la seconda volta (perchè la 
sfera contenente in nuero non è piu' nell'urna, allora devi procedere con "n" 
estrazioni diverse, dove ogni volta elimini dal pool i numenri che sono già
usciti. 

FF





-
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org