读书人

随机数产生?该怎么处理

发布时间: 2012-02-23 22:01:35 作者: rapoo

随机数产生??
请问如何用C语言产生一个float型(任意大小)的随机数?

[解决办法]
float是4字节32位的类型,也就是说只要设法产生一个32位的随机数就可以了。
rand()可以产生0-32767之间的随机整数,也就是15位的随机数,所以需要使用三次rand()来获得一个任意随机的float型。

程序入口执行一次srand((int)time(NULL));
然后用以下语句取得:
float fRnd;
unsigned long *piRnd = (unsigned long*)&fRnd;

*piRnd = (((unsigned long)rand()) < <30)
| (((unsigned long)rand()) < <15)
| ((unsigned long)rand())

这样,如果不考虑rand()前后两个数的算术联系,fRnd的内容就是float的随机数了。

读书人网 >C语言

热点推荐