Numeri random con /dev/random
- Bandiera_Tricolore
- Scoppiettante Seguace

- Messaggi: 826
- Iscrizione: domenica 23 luglio 2006, 20:26
- Località: Molfetta(BA)
Numeri random con /dev/random
Come faccio da bash ad avere numeri random compresi da 1 a 90 usando /dev/random? No vi devo spiegare per cosa devo usarli vero?
:-[
Io credo che l'universo non sia altro che un software. Il linguaggio di programmazione è la matematica, la fisica, la chimica........ il programmatore è Dio. (Bandiera_Tricolore)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
Re: Numeri random con /dev/random
echo $((1+$RANDOM%90))
Verifica se ad ogni accensione il risultato è diverso
Vediamo, a che potrebbe servirti... a regalare dei soldi allo Stato?
Verifica se ad ogni accensione il risultato è diverso
Vediamo, a che potrebbe servirti... a regalare dei soldi allo Stato?
- Bandiera_Tricolore
- Scoppiettante Seguace

- Messaggi: 826
- Iscrizione: domenica 23 luglio 2006, 20:26
- Località: Molfetta(BA)
Re: Numeri random con /dev/random
finchè regaliamo €1 a settimana allo Stato sono pure contento.... l'importante e non regalarne 150 e più ogni due anni a Bill Gates
Io credo che l'universo non sia altro che un software. Il linguaggio di programmazione è la matematica, la fisica, la chimica........ il programmatore è Dio. (Bandiera_Tricolore)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
Re: Numeri random con /dev/random
Comunque mi dicono che la smorfia funziona meglio.
- Bandiera_Tricolore
- Scoppiettante Seguace

- Messaggi: 826
- Iscrizione: domenica 23 luglio 2006, 20:26
- Località: Molfetta(BA)
Re: Numeri random con /dev/random
eh?bite ha scritto: Comunque mi dicono che la smorfia funziona meglio.
Io credo che l'universo non sia altro che un software. Il linguaggio di programmazione è la matematica, la fisica, la chimica........ il programmatore è Dio. (Bandiera_Tricolore)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
- Bandiera_Tricolore
- Scoppiettante Seguace

- Messaggi: 826
- Iscrizione: domenica 23 luglio 2006, 20:26
- Località: Molfetta(BA)
Re: Numeri random con /dev/random
prendi in giro, prendi....
Io credo che l'universo non sia altro che un software. Il linguaggio di programmazione è la matematica, la fisica, la chimica........ il programmatore è Dio. (Bandiera_Tricolore)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
Il gioco degli scacchi è lo sport più violento che esista (Garri Kasparov)
Re: Numeri random con /dev/random
Sembra che ricavare numeri pseudo-casuali tra 0 e N usando una funzione casuale rand come dici sia sbagliato :-\bite ha scritto: echo $((1+$RANDOM%90))
Verifica se ad ogni accensione il risultato è diverso
Vediamo, a che potrebbe servirti... a regalare dei soldi allo Stato?
http://www.hwupgrade.it/forum/archive/i ... 96677.html
porco diodo...
Re: Numeri random con /dev/random
Ti riferisci a questo?Uno ha scritto: Sembra che ricavare numeri pseudo-casuali tra 0 e N usando una funzione casuale rand come dici sia sbagliato :-\
http://www.hwupgrade.it/forum/archive/i ... 96677.html
Vero, ma:Il modo "brutale" per ottenere un numero pseudorandom tra 0 ed N-1 è ovviamente:
val = rand() % N;
Questo metodo viene dato per buono in alcuni manuali, ma contiene almeno due errori concettuali.
Anzitutto, non è detto che la distribuzione di val sia uniforme. Infatti lo standard garantisce che il valore restituito da rand sia uniformemente distribuito tra 0 e RAND_MAX inclusi: ne segue che, se N non è un divisore di RAND_MAX+1, allora la probabilità che val sia 0 è maggiore della probabilità che val sia N-1. (Di quanto, dipende dai valori di N e RAND_MAX.)
Il secondo, e più serio, è che val viene generata usando le cifre meno significative di rand. Ora, se k divide m, allora calcolare la classe resto modulo k della classe resto modulo m di un numero intero qualsiasi, è lo stesso che calcolare direttamente la classe resto modulo k: questo perché, quando si tolgono i multipli di m, si toglie già una parte dei multipli di k. Ne segue che, se rand è congruenziale lineare --- e non si può escludere che lo sia --- di moltiplicatore a, incremento b, e modulo m, e N divide m, allora rand() % N è congruenziale lineare di moltiplicatore a mod N, incremento b mod N, e modulo N: in particolare, il periodo di rand() % N non può superare N.
Il modo per evitare questo secondo inconveniente, è usare sempre tutte le cifre significative di rand: il modo più immediato per farlo, è trasformare il valore fornito da rand in un numero in virgola mobile in doppia precisione, uniformemente distribuito fra 0 incluso e 1 escluso:
double frand(void)
{
return rand() / (RAND_MAX+1.0);
}
1) scrivilo tu uno script bash (ti concedo anche 10 righe) che ne tenga conto
2) forse per generare i numeri del lotto è sufficiente (in alternativa c'è sempre la suddetta smorfia).
Come si può vedere, i valori 4 e 9 si possono ottenere in 3276 casi, contro i 3277 che determinano l'uscita di ciascuno degli altri numeri: di conseguenza, le probabilità di uscita di 4 e 9 sono 3276/32768 1/10. Potrebbe essere una tolleranza accettabile; ma potrebbe anche non esserlo.
Re: Numeri random con /dev/random
puoi prendere questi accorgimenti quando programmi protocolli di rete...
ma per la maggioooooooooor parte delle cose te ne puoi altamente fregare
(b2b)
ma per la maggioooooooooor parte delle cose te ne puoi altamente fregare
(b2b)
Navigammo su fragili vascelli
per affrontar del mondo la burrasca
ed avevamo gli occhi troppo belli...
per affrontar del mondo la burrasca
ed avevamo gli occhi troppo belli...
Chi c’è in linea
Visualizzano questa sezione: Google [Bot] e 3 ospiti
