Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'll remember to prioritise 0000 to 2767 for your PINs, then.


Just so you can see the bias to early numbers in the distribution:

    for i in $(seq 1000000); do
        echo $[RANDOM%10000]; 
    done | sort -n | uniq -c | sort -rn | gnuplot -e "set terminal dumb; set xtics 1000; plot '< cat' using 0:1 with boxes"


I think this gnuplot command makes the bias much more obvious (and even better with -persist and "set terminal x11"): gnuplot -e "set terminal dumb; set xtics 100; plot '<cat'"

Compare to the version that discards values over 3e4:

  for i in $(seq 1000000); do x=$((RANDOM)); while test $x -gt 30000;do x=$((RANDOM)); done; echo $((x%10000));      done |sort|uniq -c |sort -rn |gnuplot -e "set terminal dumb; set xtics 100; plot '<cat'"
Or the version that uses the 32-bit SRANDOM, which reduces the bias by a factor of 2**17:

  for i in $(seq 1000000); do         echo $((SRANDOM%10000));      done | sort -n | uniq -c | sort -rn |gnuplot -e "set terminal dumb; set xtics 100; plot '<cat'"




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: