Numeri random con /dev/random

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
Bandiera_Tricolore
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 826
Iscrizione: domenica 23 luglio 2006, 20:26
Località: Molfetta(BA)

Numeri random con /dev/random

Messaggio da Bandiera_Tricolore »

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?  ;D  :-[
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)
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: Numeri random con /dev/random

Messaggio da bite »

echo $((1+$RANDOM%90))
Verifica se ad ogni accensione il risultato è diverso

Vediamo, a che potrebbe servirti... a regalare dei soldi allo Stato?
Avatar utente
Bandiera_Tricolore
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 826
Iscrizione: domenica 23 luglio 2006, 20:26
Località: Molfetta(BA)

Re: Numeri random con /dev/random

Messaggio da Bandiera_Tricolore »

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)
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: Numeri random con /dev/random

Messaggio da bite »

Comunque mi dicono che la smorfia funziona meglio.
Avatar utente
Bandiera_Tricolore
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 826
Iscrizione: domenica 23 luglio 2006, 20:26
Località: Molfetta(BA)

Re: Numeri random con /dev/random

Messaggio da Bandiera_Tricolore »

bite ha scritto: Comunque mi dicono che la smorfia funziona meglio.
eh?
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)
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: Numeri random con /dev/random

Messaggio da bite »

Avatar utente
Bandiera_Tricolore
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 826
Iscrizione: domenica 23 luglio 2006, 20:26
Località: Molfetta(BA)

Re: Numeri random con /dev/random

Messaggio da Bandiera_Tricolore »

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)
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: Numeri random con /dev/random

Messaggio da bite »

;D
Avatar utente
Uno
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 412
Iscrizione: sabato 3 marzo 2007, 21:47
Contatti:

Re: Numeri random con /dev/random

Messaggio da Uno »

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?
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
porco diodo...
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: Numeri random con /dev/random

Messaggio da bite »

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
Ti riferisci a questo?
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);
}
Vero, ma:
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.
Avatar utente
thelo
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 269
Iscrizione: lunedì 8 gennaio 2007, 17:16

Re: Numeri random con /dev/random

Messaggio da thelo »

puoi prendere questi accorgimenti quando programmi protocolli di rete...
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...
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti