Email or username:

Password:

Forgot your password?
Alexey Skobkin

Нашёл на StackOverflow ответ на вопрос "как определить, что значение (int) находится между двумя другими (A, B)?".

Ответ (к счастью, не топовый) - просто огонь:

1. Генерируем массив чисел от A до B.
2. Проверяем вхождение нашего значения в массив.
3. ???
4. PROFIT!

Надо ещё посоветовать вызвать эту функцию с параметрами A = PHP_INT_MIN и B = PHP_INT_MAX с оговоркой, то эффективнее будет работать на 64-битных системах 😄

#dev #fun #php #log #pic #StackOverflow

7 comments
Ténno Seremélʹ

@skobkin Возможно, автор думал, что range() работает как Range в других языках, где это просто хитроумный класс и никакого массива «бесконечной» длины не генерирует 🤔 Правда там всё равно in_array…

⚛️Revertron

@tennoseremel @skobkin Ну да, по идее в некоторых языках range-подобные штуки в итоге являются просто итераторами.

Но даже если это так, и память не выделяется, то перебор всех значений до нахождения искомого числа (или до конца) будет очень долгим.

Ténno Seremélʹ

@Revertron Теоретически, в таком случае может существовать метод, который проверяет не перебором. Вроде бы, в Ruby include? Range‐объектов так и делает. Впрочем, возможно, я тоже помню неправильно :)

@skobkin

hardworm ☭

@skobkin хитрый способ по утилизации CPU и Memory

mittorn

@skobkin апотом на этом обучают эт ваши ai...

kurator88

@mittorn @skobkin

в первоначальном запросе не было сказано что работать должно быстро :blobcatmlem:

mittorn

@kurator88 @skobkin но там и несказано, что можно для этого выделять память

Go Up