这是我个人的一个整理,现在记下我自己常用和了解的方法,以后如果能接触到其他的,我会在这里补充。我只会使用LINUX提供的特性,不会自己去写随机函数。
$RANDOM
这是最常见的用法了,而且简单。它产生0-32767之间的随机数。
echo $RANDOM
如果你想产生0-199的随机数。
echo $((RANDOM%200))
如果你想产生100-299的随机数
echo $(( RANDOM%200+100 ))
如果想生成的随机数大于32767怎么办?
你可以使用几次RANDOM然后以某种方式去计算得到你想要的范围。
比如你想产生2×32767范围的随机数
echo $(( RANDOM + RANDOM ))
这种方法需要你去测试,去测试随机结果是否满足你的要求。
我不会自己去找这种式子,浪费时间浪费资源,LINUX都给你准备好了。
貌似,下面介绍的方法,才是大牛们最常使用的随机数产生方法。
/dev/random和/dev/urandom
我以前都是使用的RANDOM而且从来没想过随机的性能,后来一次要做很大数据的随机,所以接触到这个方法,也知道这个号称真正的随机产生器(当然其实也有“弱点”)。
这些都是LINUX的特殊文件,可以想普通文件那样访问,读取的就是随机数。
简单的open,read,close就可以了。
SHELL中可以使用od命令。
/dev/random和/dev/urandom的区别
urandom-unblock random,就是unrandom不会阻塞。
详情可以自己google找找很好找的。给大家几个链接一般就解决问题了。
简单易懂的博文,看完就会写代码,不过有几个小错误,下面评论的都提到了:
/dev/random vs /dev/unrandom:
这里很多方法我都不懂,其实一两个方法就够用了。:
在C中使用/dev/random: