Перейти к контенту

Язык Lua. Общие вопросы программирования


Malandrinus

Рекомендуемые сообщения

local function is_time_between(t, t1, t2) -- returns true if t1 <= t <= t2 assuming 24 hour clock
return (t1 < t2 and (t >= t1 and t <= t2))
	 or (t1 > t2 and (t >= t1 or t <= t2))
end

Кстати, во втором случае, когда t1 > t2, данная функция вернёт true, если t лежит за пределами диапазона, а не внутри него.

Поделиться этим сообщением


Ссылка на сообщение

Уважаемые знатоки!

Возможно, вопрос выеденного яйца не стоит, но всё же я его задам. Какой наилучший способ получения в Lua случайного знака числа? Навскидку в голову приходит это:

local num = 10
num = num * math.pow(-1,math.random(1,2))

и это:

local num = 10
if math.random(1,2) == 1 then num = -num end

Понятно, что при однократном выполнении разница во времени несущественна. Однако для длинных циклов, может быть, какой-то метод является предпочтительным. Какой?

Поделиться этим сообщением


Ссылка на сообщение

Artos, malandrinus, в своём примере я предполагал, что переменная num объявлена (и значение ей присвоено) за пределами цикла, а временные затраты интересуют именно на смену знака, а не на присвоение значения со знаком. Просто зря оставил этот момент за скобками.

Впрочем, теперь всё понятно. Честно говоря, я думал, что вызов math.random с параметрами быстрее, поэтому и выбирал между степенью минус единицы и сравнением с числом. Теперь степень отпадает, да и число для сравнения другое. Спасибо, буду знать.

Поделиться этим сообщением


Ссылка на сообщение

При вызове random(2) не может - только целое число.

@KitkaT.Net, рекомендую в вышеупомянутое ветвление добавить ещё одну ветку вида «elseif FILTERS_PLACE==2 then ...» и перенести туда то, что сейчас находится в ветке «else». А в else для проверки сделать вместо этого вывод в лог. Если выполнение зайдёт именно туда - скорее всего, значение переменной равно начальному нулю, и присвоение случайного числа просто напросто не запускается из-за специфики скрипта.

Поделиться этим сообщением


Ссылка на сообщение

Сомнительное утверждение. Минимизация javascript кода имеет своей целью не повышение скорости исполнения, а повышение скорости загрузки скрипта с сервера на клиент за счёт уменьшения его размера. В случае обфускации - ещё и усложнение реверс-инжиниринга. И то и другое имеет слабое отношение к ускорению выполнения скрипта.

Если требуется ускорить выполнение, лучше потратить свои усилия на оптимизацию кода, а не его минимизацию.

Изменено пользователем Kirgudu
  • Нравится 1
  • Согласен 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...