Chat:Ru/2020-05-01

From CG community
Jump to navigation Jump to search

MadKnight: Razzeeyy покажи реплей

vrabosh: в практике есть задача VAN ECK'S SEQUENCE - что автор хотчет, я не могу понять по описанию..

tutubalin: Поздравляю с международным днём дистанционной солидарности трудящихся!

vrabosh: спасиб. вот сижу тружусь, подрят задачки выполняю)

vrabosh: The rule here is that you start with an element A0, and whenever you get to a number you have not seen before, the following term is a 0. But if the number An has appeared previously in the sequence, then you count the number of terms since the last appearance of An, and that number is the following term.

vrabosh: поясните плз, что он хочет?

tutubalin: там же пример есть

wlesavo: да из примера ясно

vrabosh: вот второй пример.. он дает 0 3

vrabosh: а правильный ответ 1

vrabosh: как он этот 1 получил?

wlesavo: если не видел то ноль, если видел то считаешь сколько ходов назад видел и это число

vrabosh: я чтото не могу вьехать как 1 получилось

Deltaspace: 0 0 1

Deltaspace: 3 цифра 1

tutubalin: 0 3 - начинаем с нуля, нужно найти третий элемент

tutubalin: а, слушай

tutubalin: реально гон

Deltaspace: я только что решал эту задачку на хаскеле

Deltaspace: прикольная

tutubalin: A0 that is the first element in the sequence

vrabosh: допустим 1 58 там.. как его рскладывать?

tutubalin: короче, у него там проблема. у него A0 - это первый интекс

tutubalin: *индекс

vrabosh: как 5 и 8? или 1 2 3 ... 58

wlesavo: tutubalin все верно, нужен аn элемент же

wlesavo: а, понял

wlesavo: ну да, действительно косяк

tutubalin: как репортнуть задачу? )

wlesavo: в общем чатике, там у кого уровень нормальный поправят

tutubalin: vrabosh 1 58 - это начинаешь последовательность с 1, нужно найти 58-й элемент

Deltaspace: 1 0 0 1 3 ...

tutubalin: 1, 0, 0, 1, 3, 0, 3, 2, ...

wlesavo: А0 по тексту на А1 короче надо заменить и в стабе

vrabosh: 10013 - а почему 3 идет, а не 2?

Deltaspace: я поменял вроде получилось

Deltaspace: или это только у меня видно

wlesavo: получилось

tutubalin: vrabosh потому что единица была 3 числа назад

wlesavo: а stub отредактировать можно?

tutubalin: Deltaspace TEACH ME!

Deltaspace: я и стаб редактировал

wlesavo: а, блин, точно

wlesavo: я к дефолтному коду не вернулся

Deltaspace: view contribution -> edit

vrabosh: понял вроде.. и эта страка при таком алгоритме бесконечная получается?

Deltaspace: конечно бесконечная

Deltaspace: хаХ, каламбур

tutubalin: ))

wlesavo: :grinning:

wlesavo: тоже решу пожалуй

tutubalin: Deltaspace а где кнопка view contribution?

tutubalin: у меня наверное левел низковат

tutubalin: wlesavo 1 ≤ N ≤ 1000000 мне кажется, питон брутфорс не осилит

wlesavo: ну я ща примитивную версию сделаю, а там посмотрим

Deltaspace: сейчас скриншот загружу

Deltaspace: https://imgur.com/a/gZ3gwil

tutubalin: у меня нету (

tutubalin: мало контрибутил, видимо

Deltaspace: Any player whose level is greater or equals to 20 has approver rights. Any player whose level is greater or equals to 29 has editor rights.

Deltaspace: из документации

wlesavo: tutubalin осилил на питоне со словарями

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

tutubalin: не ожидал...

tutubalin: миллион обращений к словарю - это даже на сях не быстро

Deltaspace: да там без словарей не обойтись

wlesavo: я еще немного переусложнил, там можно чуть проще

tutubalin: может быть формула есть какая-то

Deltaspace: вряд ли

wlesavo: не, у всех простой перебор, хоть обращений и много сам словарь небольшой

vrabosh: это уже вроде не изи задачи когда надо думать как на миллионы циклов решать задачи.

Deltaspace: там в комментариях люди писали что это даже слишком просто для пазла и хотели в клеши затолкать

Deltaspace: vrabosh там нет миллионов циклов, цикл-то там один

tutubalin: тоже сделал. в процессе обнаружил неприятный косяк питона

tutubalin: есть ли разница между a, b = b, a


tutubalin: и b, a = a, b ?

wlesavo: с тройными присваиваниями там вообще черт и чо, a, b, c = c, a, b вообще нетривиальные результаты дает

wlesavo: в c присвоится уже а

wlesavo: ну да и в твоем втором случае тоже, в а присвоится а

vrabosh: у меня не получается когда надо уже 50тыс найти

wlesavo: а нет, чет туплю

wlesavo: ща проверил вроде все правильно работает, а помню что было чето не так с тройным присваиванием

wlesavo: мож руки не из того места были

Deltaspace: vrabosh а ты записывай в словарь последний индекс числа, потом в следующий раз вычитай, когда надо получить новое число

Deltaspace: вычитай из нового индекса старый

MadKnight: Deltaspace чего делаешь?

Deltaspace: MadKnight мы обсуждаем https://www.codingame.com/training/easy/van-ecks-sequence

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

vrabosh: но всеравно, мне кажется это не изи задачи когда на 100% надо подумать хорошо.

vrabosh: начинающий программист думаю не решит..

tutubalin: wlesavo да, там эквивалентно

tutubalin: а вот так уже зависит от порядка: i, arr[i] = arr[i], i

wlesavo: tutubalin во, точно, я с листами делал

wlesavo: в этом был косяк

ashelkov: да задача непростая 1ая сложность сникнуть в условие 2ая пройти стресс тест (массивы тут не работают) по итогу да - через объект сделал (js)

MadKnight: You have been promoted to Legend League of "Code a la Mode"!

tutubalin: ashelkov почитай про объект Map

tutubalin: это немного более многословный, но зато более безопасный способ создавать словари в JS

ashelkov: да знаю в принципе про него/ но с объектом очень лаконичное решение получлось

ashelkov: вот Set использую для удаления дубликатов а Map как то не приходилось

tutubalin: если для code golf, то понятное дело объекты использовать проще

tutubalin: но в production коде лучше использовать Map, чтобы не попасть на злые баги

tutubalin: https://tio.run/##jYzLCsIwEEX3/YqQlYJafKwEv0HBpUgIyVArNRNmJlYRvz226tKC23PuPWd7teyojjIN6CHnBkQlBmK1UQ9t/aUOeq2jZW6RvJ4oXSVg6dh8sVzpZ1GUpYJbBCfgP8@icBgYG5g1WI3e6PAtHce/3KfYub6Vwh81YyKhoDEDxR4JJSdIAwvBvVAdqgF9srxtw44wAsm9G@X8Ag

vrabosh: в code gold как они код делают в 60 символов?

vrabosh: может чтото типа код на сервер заливают и потом только пользуются import?

tutubalin: 1. есть базовые методики уменьшения размера кода

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

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

Uljahn: в некоторых случаях используют системные вызовы, т.е. надо знать возможности ОСи, на которой код исполняется

tutubalin: на Codingame мне гольф не нравится. надо очень читерить, чтобы достичь высот

tutubalin: гораздо веселее на Code Signal

tutubalin: и на codegolf.stackexchange.com

tutubalin: но на stackexchange разрешено использование почти любых языков, в том числе тех, которые предназначены чисто для гольфа. на них эти задачки решаются не в 60, а в 10-15 символов

Uljahn: это уже не языки, а читерство, потому что никто кроме разработчика его не знает

Uljahn: я видел там решения в один-два символа юникодовских

Uljahn: такое ещё на спектруме было - в пзу были доступны подпрограммы, вызов из асма стоит копейки

ashelkov: по моему - code golf - это классная штука. есть четкий критерий оценивания. у кого меньше - тот победил)

ashelkov: и никаких тебе демагогий о вкусовщие и как оно лучше в продакшене

inoryy: не считая того с какого-то момента решения сводятся к обходу платформы

WhiteCrow: Чёрт, я почему-то думал, что контест сегодня начинается, зашёл, а там ничего :(

WhiteCrow: Полный отстой

inoryy: теперь есть неделя на подготовку

wlesavo: WhiteCrow тоже думал что сегодня почему то