PHP と C でアプリケーションを開発していますがrand、同じシードを使用しているにもかかわらず、2 つの言語で結果が異なります。
PHP:
srand(1);
$random = rand(); // returns 32422
子:
srand(1);
int random = rand(); // returns 41
なぜこうなった?
疑似乱数ジェネレーターを実装する方法は複数あります。
すべてのプログラミング言語は、独自のrand実装を自由に指定することも、何も指定しないこともできます。たとえば、C の仕様では、「このrand関数は 0 ~ の範囲の疑似乱数の整数のシーケンスを計算する」とだけ述べられていRAND_MAXます。どのようrandに動作するかについては言及されていないため、コンパイラの作成者はrand好きなように実装できます。
多くのコンパイラは、線形合同ジェネレータを使用して を実装しrandます。この単純なアルゴリズムにも、コンパイラが自由に指定できるパラメーターがあり、特定のシードによって与えられる数値のシーケンスを変更します。

Borland と glibc が異なるパラメーターを使用する方法を見てください。rand一般的なすべてのプログラムは言うまでもなく、すべての C プログラムで同じように動作することさえ信頼できません!