Durante un'intervista mi è stato chiesto di implementare un generatore casuale in java senza utilizzare alcuna libreria di numeri casuali esistente che prende come argomento int n e restituisce un numero casuale compreso tra 0 e n. Questa è stata l'implementazione che ho fornito:
public static int random(int n) {
int r = 0;
for (int i =0; i <n;i++) {
r+=helper();
}
return r;
}
// helper that returns 0 or 1
private static int helper() {
long t = System.nanoTime();
if (t%2 == 0) {
return 1;
} else {
return 0;
}
}
Ha detto che non è giusto, ma non mi avrebbe detto cosa si aspettava. Perché ha detto che è sbagliato? Come lo avresti fatto diversamente?