Sto cercando un modo per generare un gran numero dicasuali con PHP, qualcosa di simile a:In PHP, come faccio a generare un grande numero pseudo-casuale?
mt_rand($lower, $upper);
Il più vicino che ho visto è gmp_random() tuttavia non mi permette di specificare il i limiti inferiore e superiore solo il numero di bit per arto (che non ho idea di cosa sia).
MODIFICA: la risposta di Axsuuls sembra essere molto simile a quello che voglio e molto simile a gmp_random tuttavia sembra che ci sia solo un difetto in uno scenario.
Supponiamo che io wan't per ottenere un numero casuale tra:
e:
Quindi, se il fu nction si chiama BigRandomNumber():
BigRandomNumber($length = 31);
Questo può facilmente tornare 9999999999999999999999999999999 che è fuori dei limiti regolamentari.
Come posso utilizzare un limite minimo/massimo anziché un valore di lunghezza?
BigRandomNumber('1225468798745475454898787465154', '1225468798745475454898787465200');
Ciò dovrebbe restituire un numero casuale tra 1225468798745475454898787465 [154 .. 200].
Per il riferimento, credo che la soluzione potrebbe dover utilizzare il function supplied in this question.
EDIT: Il post di cui sopra è stato eliminato, eccolo:
function compare($number1, $operator, $number2) {
$x = bccomp($number1, $number2);
switch($operator) {
case '<':
return -1===$x;
case '>':
return 1===$x;
case '=':
case '==':
case '===':
return 0===$x;
case '!=':
case '!==':
case '<>':
return 0!==$x;
}
}
Siete alla ricerca di un numero casuale o una stringa di cifre casuali? .. Cosa pensi di utilizzare per il risultato di questa chiamata di funzione? se i valori che desideri sono> PHP_INT_MAX, manipolarlo diventa un problema .. –
Il tuo ultimo collegamento ("la funzione fornita in questa domanda") è rotto. – robguinness
@robguinness: risolto. –