Добавлен
Знает ли кто, какой именно генератор используют функции GetRandomInt() / GetRandomReal() ?
Что пробовал:
SetRandomSeed(0)
GetRandomInt(-2147483648,2147483647)
-2147483648
-2147483648
...
GetRandomInt(0,2147483647)
903786863
1208458178
1862476647
1309547825

GetRandomInt(-2147483648,0)
-585309136
-655365456
-1243696785
-939025470
SetRandomSeed(1)
GetRandomInt(-2147483648,2147483647)
-2147483648
-2147483648
...
GetRandomInt(0,2147483647)
386537789
992808415
1910929025
48014561

GetRandomInt(-2147483648,0)
-164449281
-274313754
-1760945859
-1154675233
Непонятно, почему при любом значении seed GetRandomInt(-2147483648,2147483647) выдает всегда -2147483648

Принятый ответ

GetRandomInt(-2147483648,2147483647)
Потому что устроено примерно так. Данный вывод сделан на основе тестов, где low >= high.
function GetRandomInt takes integer low, integer high returns integer
    return low + GetRandomInt_Inner(0, abs(high - low) + 1)
endfunction
В GetRandomInt_Inner происходит оверфлоу, оно обрабатывается как 0, вот и выходит -2147483648.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
32
5 лет назад
0
Ну линейный генератор псевдослучайных чисел, какой точно - ну берем game.dll и колупаем.
1
28
5 лет назад
1
GetRandomInt(-2147483648,2147483647)
Потому что устроено примерно так. Данный вывод сделан на основе тестов, где low >= high.
function GetRandomInt takes integer low, integer high returns integer
    return low + GetRandomInt_Inner(0, abs(high - low) + 1)
endfunction
В GetRandomInt_Inner происходит оверфлоу, оно обрабатывается как 0, вот и выходит -2147483648.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.