Números pseudoaleatorios en función de una fecha

Para conseguir que una determinada entrada provoque una salida aleatoria que sea siempre igual para esa determinada entrada, hemos creado este script en php que nos devuelve un número pseudoaleatorio en función de una determinada fecha, en este caso vamos a obtener un numero aleatorio entre el 0 y el 72. Y siempre será el mismo para esa determinada fecha.

<?php



$fechaInicio=strtotime("01-04-2022");
$fechaFin=strtotime("03-04-2032");
$stadistica=array();
for($i=$fechaInicio; $i<=$fechaFin; $i+=86400){
	$ano=date('Y',$i);
	$ano =substr($ano,2,2);
	$mes=date('m',$i);
	$dia=date('d',$i);
	
    
	$aleatorio=((((3*$dia)+(8*$mes)+($ano))%73)+((7*$dia)+(17*$mes)+(2*$ano)))%73;
	$stadistica[$aleatorio]+=1;
	echo"ano $ano----- mes $mes---------dia $dia-----</BR>";

}

ksort($stadistica);

foreach($stadistica as $clave=>$valor){
	//el [clave numero aleatorio]=>ocurrencias del mismo
	echo "[".$clave."]=> ". $valor."</BR>";
}
?>

Ejecutamos el script para ver los resultados y vemos que en el periodo de fechas comprendido entre 01-04-2022 y 03-04-2032 los resultados son los siguientes: [numero aleatorio]=>ocurrencias del mismo.

[0]=> 47
[1]=> 51
[2]=> 50
[3]=> 48
[4]=> 50
[5]=> 49
[6]=> 49
[7]=> 52
[8]=> 52
[9]=> 50
[10]=> 50
[11]=> 52
[12]=> 48
[13]=> 49
[14]=> 51
[15]=> 48
[16]=> 50
[17]=> 51
[18]=> 49
[19]=> 51
[20]=> 50
[21]=> 50
[22]=> 50
[23]=> 50
[24]=> 50
[25]=> 50
[26]=> 50
[27]=> 50
[28]=> 50
[29]=> 49
[30]=> 50
[31]=> 52
[32]=> 51
[33]=> 52
[34]=> 53
[35]=> 49
[36]=> 50
[37]=> 51
[38]=> 48
[39]=> 48
[40]=> 54
[41]=> 49
[42]=> 50
[43]=> 53
[44]=> 49
[45]=> 50
[46]=> 52
[47]=> 49
[48]=> 49
[49]=> 50
[50]=> 49
[51]=> 50
[52]=> 50
[53]=> 49
[54]=> 49
[55]=> 51
[56]=> 50
[57]=> 52
[58]=> 50
[59]=> 51
[60]=> 51
[61]=> 50
[62]=> 49
[63]=> 50
[64]=> 49
[65]=> 50
[66]=> 51
[67]=> 50
[68]=> 50
[69]=> 51
[70]=> 49
[71]=> 50
[72]=> 50

Esperamos que te haya gustado 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

DorniSoft Inc.