Генерация случайных чисел

Я сгенерировал случайные числа в турбо C ++ (DOS) с помощью случайной команды.
Опять же, я сгенерировал случайное число в Ubuntu C ++ с помощью команд srand и rand.

Оба случайных поколения не соответствуют друг другу (т. Е. Оба поколения различны для конкретного семени).

Пожалуйста, дайте мне знать причины этой проблемы. Возможно ли получить код за случайными командами, командами srand и rand?

1
задан 19 June 2014 в 10:27

1 ответ

У Turbo C++ и Гну G ++ (C++) (возможно, LLVM/clang) есть различные библиотеки. Их реализации rand, srand и многие (многие!) функции будут, вероятно, отличаться в том, КАК они обеспечивают надлежащий результат.

Каждая функция в тех библиотеках приведет к ожидаемым результатам, open, read, exit и так далее. (Если они не делают, они не очень 'стандарты, совместимые').

Так rand & srand Работают правильно в каждой среде... они обеспечивают (и семя) случайные числа.

То, КАК они прибывают в тот результат, не определяется, существует несколько методов создания случайных чисел (См. 'Генерацию случайных чисел' для большего количества информации о RNG's),

Поэтому даже, учитывая то же значение семени, Вы не можете ожидать, что различные библиотеки RNG обеспечат идентичный вывод. Это будет верно, независимо от которого источника библиотек Вы используете, Microsoft, Солярис, Linux, *BSD's, OSX и так далее.

Только если тот же самый метод используется для получения, случайные числа могут Вы, вид - ожидает идентичный ряд. Различия в энтропийном сборе могут отличаться и создавать возмущения со временем. Я предполагаю, что кто-то исправит меня о 'виде -', но, пока Вы используете тот же libaries, необходимо получить те же результаты тех же семян. (то же то же то же!)

3
ответ дан 19 June 2014 в 10:27

Другие вопросы по тегам:

Похожие вопросы: