Nie wiedziałem, czy to błąd w samej Lua, czy też robiłem coś nie tak. Nigdzie nie mogłem nic znaleźć. Używam Lua dla Windows (Lua 5.1.4):"interwał jest pusty", Lua math.random nie działa dla dużych liczb?
>return math.random(0, 1000000000)
1251258
Zwraca losową liczbę całkowitą z zakresu od 0 do 10000000000, zgodnie z oczekiwaniami. To wydaje się działać dla wszystkich innych wartości. Ale jeśli dodaję pojedynczy 0:
>return math.random(0, 10000000000)
stdin:1: bad argument #2 to 'random' (interval is empty)
Każda liczba wyższa niż ta sama.
Próbowałem dowiedzieć się dokładnie, jak duża liczba musi być przyczyną tego i znalazłem coś jeszcze dziwniejsze:
>return math.random(0, 2147483647)
-75617745
Jeśli wartość wynosi 2147483647 następnie daje mi liczb ujemnych. Każda wyższa wartość i powoduje błąd. Wszelkie niższe niż to i działa dobrze.
To 0b1111111111111111111111111111111
w systemie binarnym, 31 cyfr binarnych dokładnie. Nie jestem pewien, co to znaczy.