Turbo C ++ e Gnu G ++ (C ++) (talvez LLVM / clang) têm bibliotecas diferentes. Suas implementações de rand
, srand
e muitas (muitas!) funções provavelmente serão diferentes em COMO elas fornecem o resultado adequado.
Todas as funções nessas bibliotecas produzirão os resultados esperados, open
, read
, exit
e assim por diante. (Se não, eles não são muito 'em conformidade com os padrões').
Então, rand
& amp; srand
ARE está funcionando corretamente em cada ambiente ... eles fornecem (e geram) números aleatórios.
COMO eles chegam a esse resultado não está definido, existem vários métodos de criar números aleatórios (Veja 'Geração aleatória de números' para mais informações sobre o RNG)
Portanto, mesmo considerando o mesmo valor de semente, você não pode esperar que diferentes bibliotecas RNG forneçam saída idêntica. Isso será verdade independentemente de qual fonte de bibliotecas você usa, Microsoft, Solaris, Linux, * BSDs, OSX e assim por diante.
Somente se o método exato same for usado para derivar os números aleatórios, você pode esperar uma série idêntica. Diferenças na coleta de entropia podem diferir e criar perturbações ao longo do tempo. Eu imagino que alguém vai me corrigir sobre o 'tipo de', mas contanto que você esteja usando as mesmas bibliotecas, você deve obter os mesmos resultados das mesmas sementes. (mesmo mesmo!)