Buenas,
A ver que te parece esto:
Código C:
Ver original#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm * timeinfo;
char day[ 4 ], year[ 5 ];
int i, y, numeroAleatorio;
for( i
= 0; i
< y
; i
++ ) numeroAleatorio
= (int) ( rand() % 100 ); //Pon tantos 0 al 100 como cifras necesites
printf( "%i\n", numeroAleatorio
); return 0;
}
La idea es:
1) Cogemos el día (del año) en el que estamos. Esto nos da un valor entre 1 y 366
2) Cogemos el año en el que estamos
3) Iniciamos la semilla con el día del año (si siempre inicias con la misma semilla, siempre obtienes la misma lista de números)
4) Si el número tiene que cambiar con cada año, haces un bucle desde 0 hasta el año en el que estás obteniendo números y te quedas con el último
EDITO: Si no necesitas que el número sea diferente cada año, puedes quitar el bucle y liberar carga de procesador. Por otro lado, que el número sea diferente, te permite verificar que año se creó el número
Las ventajas:
- El número se mantiene constante al largo de un mismo día
- Dos días consecutivos no tienen porqué tener dos números aleatorios relacionados
- Los mismos días de distintos años tendrán números distintos
- Permite verificar el día y el año en que se emitió un número
Desventajas:
- No uses este algoritmo para nada relacionado con la criptografía, la seguridad, etc. Los números generados con este algoritmo son fácilmente predecibles por cualquiera que conozca el algoritmo (y, aunque no se conozca,
nunca se debe dejar a la suerte)
Saludos y suerte