La funzione rnd()
Moderatori: Gianfranco, Bruno
Questo forum è una sezione del PORTALE DI BASE CINQUE
La funzione rnd()
Prisca vuole testare sul suo PC la funzione $rdn()$ che le permette di generare dei numeri casuali in un intervallo dato,
Ha scelto due numeri interi $a$ e $b$ con $a$ multiplo di $b$ $(a = kb, k > 1)$ e vuole stimare $Pr(XY ≤ b^2)$, ossia la probabilità che il prodotto di due numeri casuali indipendenti $X$ e $Y$ scelti nell'intervallo $[0,a]$, sia inferiore o uguale a $b^2$.
Per far ciò ha scritto un programmino in basic usando la funzione $rnd()$, un ciclo $« for...next »$ con un milione di iterazioni e un contatore che si incrementa di un'unità ogni volta che la condizione di cui sopra è rispettata.
Al termine dell'esecuzione della routine il contatore segna $N = 596489$.
Determinare il valore dell'intero $k$
G184 www.diophante.fr
Ha scelto due numeri interi $a$ e $b$ con $a$ multiplo di $b$ $(a = kb, k > 1)$ e vuole stimare $Pr(XY ≤ b^2)$, ossia la probabilità che il prodotto di due numeri casuali indipendenti $X$ e $Y$ scelti nell'intervallo $[0,a]$, sia inferiore o uguale a $b^2$.
Per far ciò ha scritto un programmino in basic usando la funzione $rnd()$, un ciclo $« for...next »$ con un milione di iterazioni e un contatore che si incrementa di un'unità ogni volta che la condizione di cui sopra è rispettata.
Al termine dell'esecuzione della routine il contatore segna $N = 596489$.
Determinare il valore dell'intero $k$
G184 www.diophante.fr
Franco
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
Re: La funzione rnd()
Lo spazio campionario della coppia di numeri casuali è il quadrato $a\times a$; in questo spazio il luogo geometrico delle coppie $\left\{x,y\right\}$ per le quali il prodotto è uguale a $b^2$ è l’iperbole $y= b^2/x$
e la frequenza relativa dei casi favorevoli è il rapporto tra l’area a sinistra e sotto l’iperbole e l’area del del quadrato.
Dato che entrambe sono proporzionali a $b^2$ possiamo porre con tranquillità $b=1$ e, quindi, $a=k$.
La retta tratteggiata è $x = 1/k$ e la frequenza relativa è
$\displaystyle f\left(k\right)=\frac{\displaystyle \frac1k\cdot k + \int_{\frac1k}^k{\frac{dx}{x}}}{k^2} = \frac{1 + 2\ln{k}}{k^2}$
Con le frequenze osservate, $k=2$.
P.S.: mi preme consigliare caldamente l'uso di R; ecco il codice che simula questo processo
e la frequenza relativa dei casi favorevoli è il rapporto tra l’area a sinistra e sotto l’iperbole e l’area del del quadrato.
Dato che entrambe sono proporzionali a $b^2$ possiamo porre con tranquillità $b=1$ e, quindi, $a=k$.
La retta tratteggiata è $x = 1/k$ e la frequenza relativa è
$\displaystyle f\left(k\right)=\frac{\displaystyle \frac1k\cdot k + \int_{\frac1k}^k{\frac{dx}{x}}}{k^2} = \frac{1 + 2\ln{k}}{k^2}$
Con le frequenze osservate, $k=2$.
P.S.: mi preme consigliare caldamente l'uso di R; ecco il codice che simula questo processo
Codice: Seleziona tutto
x <- runif(1e6)
y <- runif(1e6)
for (k in (1:10)) print(length(which((k*x)*(k*y) <= 1)))
il panurgo
Principio di Relatività: $\mathbb{m} \not \to \mathbb{M} \, \Longleftrightarrow \, \mathbb{M} \not \to \mathbb{m}$
"Se la montagna non va a Maometto, Maometto NON va alla montagna"
Principio di Relatività: $\mathbb{m} \not \to \mathbb{M} \, \Longleftrightarrow \, \mathbb{M} \not \to \mathbb{m}$
"Se la montagna non va a Maometto, Maometto NON va alla montagna"
Re: La funzione rnd()
Impeccabile!
Non resta che tradurlo in Francese e spedire la soluzione agli amici transalpini.
...
anzi no!
Nel problema originale c'erano altre due domande che non ho riportato qui sul forum.
Durante il weekend cerco di capirle un po' meglio (il mio francese è a dir poco approssimativo) e poi ci risentiamo ...
Non resta che tradurlo in Francese e spedire la soluzione agli amici transalpini.
...
anzi no!
Nel problema originale c'erano altre due domande che non ho riportato qui sul forum.
Durante il weekend cerco di capirle un po' meglio (il mio francese è a dir poco approssimativo) e poi ci risentiamo ...
Franco
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
Re: La funzione rnd()
Prisca sceglie le due variabili indipendenti $X$ e $Y$ sull'intervallo $[0,2a]$ e conta con la sua routine $N=Pr( X*Y ≤ b^2)$.
Sempre con un milione di iterazioni, determinare un intervallo di confidenza (con una soglia del 95%) (*) all'interno del quale ci si aspetta che si attesti il valore di $N$ che apparirà sullo schermo del PC.
Prisca introduce una nuova variabile $Z$ ($X$, $Y$ e $Z$ indipendenti fra loro e definite nell'intervallo $[0,a]$).
Calcolare $Pr( X*Y*Z ≤ b^3)$ e verificare che il vostro PC confermi il risultato.
(*) non sono sicuro che la terminologia sia corretta ma spero si capisca
Franco
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
Re: La funzione rnd()
Giusto per la cronaca, tornando al primo quesito, questa è la routine in VBA per excel che ho usato per fare il test sulla funzione $rnd()$
Mi ha dato, come primo risultato, $N=596434$.
La routine scritta in R sembra più sintetica ma per me è un po' criptica
Codice: Seleziona tutto
Sub TestRND()
Randomize
Imax = Cells(1, 2)
k = Cells(2, 2)
N = 0
For I = 1 To Imax
X = k * Rnd()
Y = k * Rnd()
If X * Y <= 1 Then
N = N + 1
End If
Next
Cells(3, 2) = N
End Sub
La routine scritta in R sembra più sintetica ma per me è un po' criptica
Franco
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician
Re: La funzione rnd()
Codice: Seleziona tutto
x <- runif(1e6)
Codice: Seleziona tutto
y <- runif(1e6)
Codice: Seleziona tutto
for (k in (1:10))
Codice: Seleziona tutto
print( )
Codice: Seleziona tutto
length( )
Codice: Seleziona tutto
which( )
Codice: Seleziona tutto
k*x
Codice: Seleziona tutto
k*y
Codice: Seleziona tutto
(k*x)*(k*y)
Codice: Seleziona tutto
for (k in (1:10)) print(length(which((k*x)*(k*y) <= 1)))
il panurgo
Principio di Relatività: $\mathbb{m} \not \to \mathbb{M} \, \Longleftrightarrow \, \mathbb{M} \not \to \mathbb{m}$
"Se la montagna non va a Maometto, Maometto NON va alla montagna"
Principio di Relatività: $\mathbb{m} \not \to \mathbb{M} \, \Longleftrightarrow \, \mathbb{M} \not \to \mathbb{m}$
"Se la montagna non va a Maometto, Maometto NON va alla montagna"