OK.Я нашел проблему и решение.Процедура TRandomStream.Crunch использует переключение версии компилятора:
для версии компилятора> 17
FValue := FValue * Factor + 1 ;
В то время как для версии компилятора <= 17 (что в моем случае) использование функции SquarePlus1Int64_NoOverflowChecks приравниваетсяв: </p>
FValue := FValue * FValue + 1;
Чтобы исправить изменения:
function SquarePlus1Int64_NoOverflowChecks(Factor: int64): int64;
begin
result := Factor * Factor + 1
end;
в
function MultiplyPlus1Int64_NoOverflowChecks(Value,Factor: int64): int64;
begin
result := Value * Factor + 1
end;
и в TRandomStream.Crunch change:
FValue := SquarePlus1Int64_NoOverflowChecks(FValue);
до
FValue := MultiplyPlus1Int64_NoOverflowChecks(FValue, Factor);