Killua
Спасибо.
Roman
Killua, nickname никуда не годится
Killua
?
void *
Roman
(coffeescript)
desc = res.match ///<p\sclass="place_desc">(.*?)</p>///
if desc
desc = desc[0]
...
вроде такого
Snusmumriken
Пришло время вспомнить kotlin. И D. Это типа легкая альтернатива С++, и сишный код с ним полностью совместим.
Кстати, смишнявый. https://ru.m.wikipedia.org/wiki/D_(язык_программирования)
Светомеч
>вспомнить kotlin
Звучит интересно
Светомеч
Учитывая возраст языка
Tverd
void *
void *
надо бы заняться макромагией, чтобы автоматически выставлять кристаловые методы в интерпретатор луа. и еще ассемблерной магией, чтобы можно было вызывать из луа методы со splat'ами
Tverd
Там вроде с макросами проблем небыло, значит можно сделать красиво и не слишком сложно
Snusmumriken
Хм. Логики тут немного. Особенно когда math.huge/math.huge получается nan а не 1.
Tverd
а какой кейс этого момента?
Snusmumriken
Мне - прост побаловаться.
Официально - хз.
Tverd
ну тогда гуд )))
Snusmumriken
Ну, официально, это "число, которое больше любого выразимого в языке числа. Не применяйте его нигде кроме выражений сравнения".
void *
Tverd
Это можно например использовать для вычисления расстояний и нахождения ближайшего. То бишь стартовать с math.huge и далее уже уменьшать расстояние
mva
mva
2) PUC-Rio Lua всех версий даже говорит что -nan, а не просто nan
Snusmumriken
Ну, если две бесконечности равной мощности поделить одну на другую - результат должен быть равен единице, так же как с равными числами : )
mva
проблема в том, что бесконечность это не число
mva
поэтому на него не совсем распространяются правила вычисления чисел
Snusmumriken
Помнится, это можно интерпертировать как некоторую "функцию", которая стремится к бесконечности с определённой скоростью.
mva
это логическая абстракция. И официально результат деления бесконечности на бесконечность не определён
Snusmumriken
Но если делить результаты двух функций равной мощности - результат любого деления будет равен единице.
Roman
Если погуглить, то вовсе не единица, природа бесконечности она такая, необычная
Roman
по сему в lua название huge, то есть число, которое ведет себя более похоже на число, не бесконечность, все правильно сделали
Snusmumriken
Хех, ну ладно, будем так считать : )
Tverd
а что алгебра говорит об этом?
Tverd
говорит что неопределенность в общем виде
mva
что я и сказал выше
Tverd
ну да
Snusmumriken
А если одинаковые - то везде где эти бесконечности не равны нулю - должна быть единичка )))
Tverd
в общем "не ходите дети в Африку" )))
mva
Snusmumriken
Лады, лады ))
Это - баловство, никто не собирается использовать бесконечности в вычислениях, только как сравнение.
mva
алсо, ты ещё скажи, что бесконечность минус бесконечность должно быть 0 :)
Snusmumriken
Ну типа если мощности равны : )
Если не равны - какая-то перевешивает в ту или другую бесконечность ))
Поэтому в "общем случае" - неопределённость, а в конкретном (когда известны мощности) - можно сказать точнее.
Snusmumriken
Ну, типа бесконечность вида условно
f(y) x ^ 2
менее мощная чем
f(y) x ^ 3
Если из первой вычесть вторую, явно получится минус бесконечность. Мощности (x^2 - x^3). Ну тип арифметика, все дела.
mva
и как тебе lua определит мощности? :)
mva
s/lua/whatever programming language/
mva
даже хаскель всё тоже самое скажет, емнип
Snusmumriken
> print(math.huge == math.huge)
true
Они одинаковые тип ))
mva
потому что это одинаковые функции
mva
а не результат у них одинаковый
mva
> return (print == print)
[1] true
Snusmumriken
А вот это вообще забавно.
> print(math.huge == math.huge)
true
> print(math.huge > math.huge)
false
> print(math.huge > math.huge + 1)
false
> print(math.huge < math.huge + 1)
false
> print(math.huge == math.huge + 1)
true
>
mva
особенно последнее норм
mva
хотя предпоследнее тоже
mva
но сути это не меняет
Snusmumriken
Да, math.huge - это НЕ функция, это типа специальный тип.
Snusmumriken
О, вот весёлая задачка.
Сделать .txt файл со 100,000,000 строк с числами в диапазоне от 0 до 99,999,999:
- формат чисел - 8 разрядов (1 = 00000001, 65535 = 00065535)
- диапазон от 0 до 99,999,999
- все числа в рандомном порядке: 00306453 99645283 70000021 06847127
- без повторов (каждая строка - уникальное число)
Мы пишем под микроконтроллер с 640кб оперативки. Их должно быть достаточно для каждого.
Ivan
А что сделать то надо?
Snusmumriken
А что сделать то надо?
> Сделать .txt файл со 100,000,000 строк с числами в диапазоне от 0 до 99,999,999:
Ivan
А в чем проблема?
Ivan
Какие библиотеки?
Ivan
Какой язык?
Ivan
С++?
Ivan
Lua?
Snusmumriken
А в чем проблема?
А в чём решение? : )
Язык - произвольный. Тут важно абстрактное "описание алгоритма решения".
Ну, видимо 100 000 000 чисел для тебя мало, давай ты сделаешь на 100 000 000 000 000 чисел.
Ivan
Ну через строку
Snusmumriken
Угу. Рандомные и уникальные числа? Через строку? А как именно?
Ivan
Ну потом контейнер в randomised queue положу и всё
Snusmumriken
Хе, а влезет?
У тебя 640кб памяти.
Ivan
Да пох
Ivan
Главное чтобы генерация была последовательная
Snusmumriken
Ну не влезет, чувак )))
Застопоришься на N числах, которые меньше M (100 000 000).
Ivan
Застопорюсь - очищу
Ivan
Буду класть новые
Snusmumriken
Угу. То есть, ты будешь перемешивать крошечными блоками?
У тебя получится примерно так:
3 1 2 5 4 6 8 9 7
Ну, это типа рандомно, но чот ниоч ))
Ivan
Согласен
Ivan
А какая сложность алгоритма О(N)?
Snusmumriken
Не указано - значит пох ))
У меня есть вариант решения с O(N), не требующий дополнительной памяти на ЖД.
Anonymous
Достаточно взять некоторую перестановку, которую легко генерировать. Что-то вроде того же random(), только для [0..10^8-1].
Snusmumriken
Ага. Какие варианты?
Anonymous
На ум приходит FPE, но пока не соображу, как применить.
Anonymous
FPE чисто теоретически должно работать за O(1) на число и потребрять столько же памяти.