Very Hard Delight Life

日々の記録を短めに記述。

ランダムな4桁の16進数を生成するnaiveな方法

cat /dev/urandom | tr -dc '[:xdigit:]' | head -c 4 | tr '[:upper:]' '[:lower:]'

最後のtrコマンドはおまけ.

cat /dev/urandomは処理時間が掛かるためhead -c 1000 /dev/urandomの方が早い. ただし,必ずしも毎回4桁出力されるわけではない点に注意.

for i in `seq 0 1023`; do
  <上記コード>
done

のような場合,2種類を試すと,

method time [sec]
cat 26.161
head 2.769

となり約9.5倍程度の差がついた. なお10回の試行をタイムコマンドで計測した平均を用いている.