PHPはウィンドウ上で最大のランダム値32767を返しますか?getrandmax()理由32767ウィンドウの制限?
ウィンドウの制約とは何ですか?
echo getrandmax(); //32767
PHPはウィンドウ上で最大のランダム値32767を返しますか?getrandmax()理由32767ウィンドウの制限?
ウィンドウの制約とは何ですか?
echo getrandmax(); //32767
PHPソースコードによると、getrandmax()
を次のように定義される。
/* System Rand functions */
#ifndef RAND_MAX
#define RAND_MAX (1<<15)
#endif
:自体は次のように定義される
#define PHP_RAND_MAX RAND_MAX
PHP_FUNCTION(getrandmax)
{
if (zend_parse_parameters_none() == FAILURE) {
return;
}
RETURN_LONG(PHP_RAND_MAX);
}
そしてPHP_RAND_MAX
は以下のように定義されます 定義さRAND_MAX
があるのであれば、それが使用さ
...
...そして、Visual StudioにWindows上で、実際にRAND_MAX
定義さ(引用)があります:
定数
RAND_MAX
は、rand
関数によって返される最大値です。RAND_MAX
は、値0x7fff
と定義されています。だから、
、基本的には、getrandmax()
戻り32767
それは、それがWindows上で定義されていますどのようにだから - とPHPは、多くの場合、どのような基盤となるシステムの輸出を使用しています。
私は時間をずらしています。私はちょうどソースを見ていた –
randは、arkに戻ってくるシステムのrand関数を呼び出すか、少なくともほとんどのミニコンピュータが16ビットの語長を持つときに呼び出します。より良い乱数ジェネレータが必要な場合は、Mersenne Twisterを使用してください:mt_rand()。 mt_getrandmax()は2^31-1です。 – TerryE
それは可能な限り大きな種です。 1から250000、または1から10億の間に32767個の異なるランダムな値しかありません。これはむしろ愚かです。 (それはメルセンヌ・ツイスターが来るところです!) – Westie