@vasIvas

Почему не работает математика в js?

Вобщем дело такое. Есть кусок кода написанный на as3 и его аналог на haxe.
Мне понадобилось его использовать в js, по этому я его переписал, а он не работает.
Тогда я взял haxe и скомпилировал его в js, но проблема осталась так же.
public static function getInt(min:Int, max:Int):Int {
        seed = 214013 * seed + 2531011;
        return min+(seed ^ (seed>>15))%(max-min+1);
}

function getInt(min, max) {
        seed = 214013 * seed + 2531011;
        return min+(seed ^ (seed>>15))%(max-min+1);
}


Почему не работает математика?

UPD:
не работа кода заключается в том, что из десяти итераций шесть всегда минимальные, при чем шесть последних.
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
@Aves
Битовые операторы делают любое число 32-битным целым. Когда seed становится больше 4294967295, то вместо него начинает использоваться 0.
upd seed ^ (seed >> 15) становится всегда 0.
upd2 при seed > 232 seed >> 15 всегда 0, при seed > 254 seed ^ 0 всегда 0
upd3 поэкспериментировав, выяснил, что по сути правильно, но неточно, числа больше 232+53 бинарные операторы превращают в 0
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@esvlad
Веб-разработчик
Что за переменная seed, вернее какой у неё тип, можно попробовать обернуть её в Integer
parseInt(seed);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы