关于函数`mt_getrandmax`的用途,有些疑惑,大家指教一下

mt_getrandmax

mt_getrandmax — 显示随机数的最大可能值

int mt_getrandmax ( void )
返回调用 mt_rand() 所能返回的最大的随机数。

我输出出来的是2147483647 ,看到项目中有人在对数据库操作中,最大limit这里用了这个函数,有点不理解它这个最大是指的什么最大

阅读 3k
2 个回答

系统一般会有最大能产生的随机数值LIMIT_RAND_MAX,比如2^31-1,而mt_getrandmax()返回的就是系统默认的这个值。使用情境应该是这样的:

1、使用mt_getrandmax()函数获取系统能产生的最大随机数值LIMIT_RAND_MAX
2、根据LIMIT_RAND_MAX来判定自己所需的随机数是否在这个范围
3、使用mt_rand()产生随机数

总的来说,mt_getrandmax()仅仅是用来做范围衡量作用

会输出 2147483647 就是 2的31次方减一

2147483647
2,147,483,647(二十一亿四千七百四十八万三千六百四十七)是2147483646与2147483648之间的自然数,也是欧拉在1772年所发现的一个梅森素数,它等于2-1,是32位操作系统中最大的符号型整型常量

在32位操作系统中,由于是二进制,其能最大存储的数据是1111111111111111111111111111111。正因为此,体现在windows或其他可视系统中的十进制应该为2147483647。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题