Chat:Ru/2021-03-31

From CG community
Jump to navigation Jump to search

Uljahn: нет, мне достаточно питона с numpy, в офлайне ещё нумбу юзаю

vrabosh: tutubalin намекни плз про funge)

vrabosh: жалко, что тут numba нет.

Uljahn: зато тут фортран есть, но он под капотом

wlesavo: должен был завтра выйти на новую работу иииии походу заболел ковидом

Uljahn: ппц, обоняние пропало?

wlesavo: ага, третий день температура 38 и запахи пропали, вкусы пока на месте вроде

Uljahn: надеюсь, ситуацию на самотёк не пускаешь? врача вызвал, на работу сообщил? в лихорадочном состоянии часто концентрация внимания резко падает, можно за банальными ошибками не уследить

Uljahn: чатик диванных советов и выражения сочувствия, Automaton2000

Automaton2000: Uljahn в чем смысл жизни

wlesavo: да у меня сегодня последний день рабочий, должен был ехать увольняться, а так да сообщил конечно, ща думают как меня уволить дистанционно)) врача еще не успел вызвать, сегодня собираюсь

tutubalin: vrabosh про хардкод?

tutubalin: короче, первая идея: проверять по порядку с каждым тестом и выдавать PRIME или NOT PRIME. проблема: линейный поиск, для последних чисел проверок будет ооооочень много

tutubalin: вторая идея: использовать бинарный поиск. в таком случае количество проверок будет логарифмическим.

tutubalin: третья идея: так как у нас оператор проверки отправляет нас в один из трёх путей (меньше, равно, больше), то можно использовать тринарный поиск

tutubalin: маленькая хитрость: записи для больших чисел можно использовать string mode. например: 'AA'* (всего 5 инструкций) создаст в стеке число 4225

tutubalin: пардон, "AA"*

YurkovAS: vrabosh у тебя есть бинарный поиск?

vrabosh: бинарный это как?

YurkovAS: понятно, значит нет. это метод деления пополам и потом проверки нужно половины опять же делением уже ее пополам

YurkovAS: и т.д.

vrabosh: может есть, я в терминологии слаб

YurkovAS: нет такого?

YurkovAS: мне как раз его осталось сделать, что-то не получается, на днях безуспешно попытался

vrabosh: я алгоритм обычный сделал.. и покругу у меня ходит проверяет делится н 3 если нет, идет дальше делится на 5 если нет идет дальше, пока делитель не станет больше на что делю

YurkovAS: а после 5? 7, 9, 11?

vrabosh: tutubalin ну ты предложил хардкорно, мне надо выписать все большие числа, занести их в стек и на них делать проверку, минусовать от искомог очисла, если 0 то это оно, если + то больше, если - то меньше в стеке?

vrabosh: YurkovAS до бесконечности, n+2

vrabosh: да после 5 , 7, 9, 11 итд

YurkovAS: ну что-то не сходится по моим подсчетам, если n+2, тогда у тебя должно быть 80к скор

YurkovAS: значит у тебя не до бесконечности и не до 100?

vrabosh: ну хз, может я сократил както хитро)

YurkovAS: но там есть еще момент один

vrabosh: нет не до 100, я делаю условие, если a / n > n то выход

YurkovAS: н+2 можно еще больше сократить

YurkovAS: и как раз кол-во итераций можно очень точно расчитать, для него и нужен бинпоиск

vrabosh: будет ли сокращать, это дополнительыне символы, может то на то и выйдет

YurkovAS: твой вариант я не проверял, у меня почти без сокращений до 100 - что точно избыточно

vrabosh: я щаз думаю бендера решать, с графами сижу вожусь, поверяю сразу на поизводительность.

vrabosh: кнечно, я сразу начал делать выход при избытке

YurkovAS: это пазл, не оптимизация?

vrabosh: но додумался только до a/n про +2 неподумал

vrabosh: Bender - Episode 4

vrabosh: оптимизация

vrabosh: надоели эти пазлы

YurkovAS: +2 точно можно сократить еще больше. у меня с +2 было 80к, а с сокращением стало 65к

vrabosh: штук 100 уже решил гдето

vrabosh: я думаю до 50к можно насокращаться таким способом

vrabosh: но 50к это не мотивирует заниматсья этим)

vrabosh: еслиб хотябы 20к

YurkovAS: ой, перепутал, точно, недавно ее решил на 100%, но очень нестабильное решение, хотелось бы точно решить

tutubalin: если без хардкода, то как я уже говорил, проверяй только делимость на простые числа не больше 97

YurkovAS: или на "потенциально простые"

vrabosh: так и делаем, проверяем на 3,5,6,7 итд

YurkovAS: 7, 9, 11 - это слишком много лишних проверок. можно сократить еще

YurkovAS: без хардкода

vrabosh: как?

YurkovAS: надо подставлять простые числа только

vrabosh: я попробовал отсечь лишнее деля на %24, стало даже хуже.

YurkovAS: либо, потенциально простые числа, недавно писали какой формуле они соответствуют

vrabosh: так 3,7,11 этож и простые

vrabosh: ой я 5 и 6 написал)

YurkovAS: 9 то нет

vrabosh: да я подставляю 3,7,11,13,17

vrabosh: а нет +2 подставля, запутал

vrabosh: кстати да, можно постые.. это надо думать как их кранить и вытаскиать

tutubalin: нечётных чисел от 3 до 99: 49 простых чисел от 3 до 97: 24

tutubalin: ускорение в 2 раза

tutubalin: как хранить: числа до 7 - просто цифрой числа от 37 и выше - через string mode

tutubalin: числа от 11 до 31 - в принципе тоже можно через string mode, но не всегда. если не получается, тогда через арифметику

Uljahn: в 2048 приделал загрузчик для распаковщика храдкода, а то в base65536-конверторе коэффициенты много весят (пожал их встроенным base85)

Uljahn: осталось ещё дефинишоны через exec из utf-16 распаковывать и сразу выполнять, и код будет тупо простынёй иероглифов с небольшим загрузчиком

wlesavo: сохранил себе мудрости tutubalinа глядишь дойдут руки тоже

Uljahn: красота какая: exec(decode("驤啦??嵯漩饰尨驨ꍬ啯??ꍲ層ᔩ"))

Uljahn: эквивалентно def foo():print('hello world')

tutubalin: Uljahn а что есть каждая фраза на китайском языке является исполняемой?

tutubalin: wlesavo vrabosh добавочка по поводу хранения. все числа от 10 до 18 можно представить в формате XY+ например для 13 (которое в string mode скорее всего не зайдёт) можно записать как 67+

MadKnight: Automaton2000

Automaton2000: хотя у меня и у кубера