@proelixir

Страница 822 из 1045
Evgeny
12.12.2017
14:45:06
не факт, что в этой покажут

Alex
12.12.2017
14:45:11
скала же JVM

Dmitry
12.12.2017
14:45:12
Может кто конкретнее задачу объяснить?

Google
Dmitry
12.12.2017
14:45:17
А то я по тексту не понял

Slava
12.12.2017
14:45:33
вот вся суть с примером

Dmitry
12.12.2017
14:46:52
Фаил содержит кучу строк

И в каждой строке 5 цифр

В которых почему-то всегда одна цифра в скобочках

Slava
12.12.2017
14:47:23
нет-нет, в файле куча строк, в каждой из которых по одному числу

в общем

Dmitry
12.12.2017
14:47:55
Окей.

Т.е. в файле по одному числу.

Я фаил еще не смотрел

Slava
12.12.2017
14:48:29
у тебя есть массив со всякими числами типа -10, 560 и т.д. ты начинаешь с нулевого элемента и зависимости от того, что в нем написано "прыгаешь" на такой индекс, при этом инкрементишь на единицу то значение, откуда прыгаешь

Alexey
12.12.2017
14:48:48
а индексы с ноля?

Slava
12.12.2017
14:48:52
заканчиваешь прыгать по этому массиву тогда, когда выбираешься за его пределы

Google
Slava
12.12.2017
14:48:57
да

Alexey
12.12.2017
14:51:27
и суть в чем? время померять, когда он бегать закончит?

или сколько прыжков?

Slava
12.12.2017
14:51:38
сколько прыжков

Alexey
12.12.2017
14:52:35
начинать с нулевого?

Slava
12.12.2017
14:55:10
а начинался разговор вообще с того, что эрланг как-то очень плохо справляется с такого рода задачами (про скалу и jvm не понял. скала не иммутабельная что ли? если там все иммутабельно, то причем тут vm?). я подумал о том что, в рубях и питоне такие проблемы решают с помощью c extensions. отдельный сервис - наверное можно, но это все немного усложняет и меня пугает, что там в итоге будет оверхед на коммуникацию с этим сервисом. порты, я так понял, вообще по stdin/stdout общаются с другими процессами, это как-то совсем стремно.

начинать с нулевого?
что начинать с нулевого? файлик с числами я там чуть выше скинул

Alexey
12.12.2017
14:55:46
прыгать надо с нулевого индекса?

Slava
12.12.2017
14:56:24
начинаешь с нулевого индекса, да. если в нем написано 2, то ты прыгаешь на current index + 2, при этом в current index меняешь значение с 2 на 3

(это я описываю задачу для первой части, во второй там еще декремент и if добавляется, соотвественно кол-во пробежок по массиву сильно растет)

Dmitry
12.12.2017
15:01:19
0 2 2

Итак

Значит нужно потом в массиве чтобы было 0 == 1 2 == 1 4 == 1

Правильно?

Evgeny
12.12.2017
15:03:15
на моем древнем компе программа на языке D считает какие-то тысячные доли

у меня ответ 359348

Slava
12.12.2017
15:03:51
ответ должен быть 27688760 steps

Evgeny
12.12.2017
15:04:05
хех, может ошибся

Slava
12.12.2017
15:04:07
на сайтике ответ сверяется, так что это правильный ответ :)

а

Google
Slava
12.12.2017
15:04:20
стоп

извини

все правильно

27688760 это для второй части

Evgeny
12.12.2017
15:05:20
вторая часть?

где она?

Slava
12.12.2017
15:06:02


а вообще все здесь: https://adventofcode.com/2017/day/5

только если зарегаетесь, то не забудьте что вам сгенерится свой файлик с числами, соответственно и ответ будет другой

Alexey
12.12.2017
15:07:33
так. у меня тоже 359349

Slava
12.12.2017
15:09:39
359348 должно быть)

Evgeny
12.12.2017
15:13:05
для второй части steps = 27688760 real 0m0.148s user 0m0.149s sys 0m0.000s

Evgeny
12.12.2017
15:13:31
но это D, фактически по скорости как плюсы

программа крошечная d import std.stdio; import std.conv; import std.array; import std.algorithm; void main() { auto list = File("input5.txt").byLine.map!(l => l.to!int).array; int p = 0; int steps = 0; do { auto offset = list[p]; list[p] += offset > 2 ? -1 : 1; p += offset; steps++; } while(p >=0 && p < list.length); writefln("steps = %s", steps); }

Slava
12.12.2017
15:15:23
вот я и говорю, на го у меня тоже все очень быстро пробегает

кстати, а как в D с многопоточностью?

Evgeny
12.12.2017
15:16:10
с многопоточностью нормально

а вот сборщик мусора ужасен

и это все портит на корню

или ты про многопоточное выполнение этой задачи?

Google
Evgeny
12.12.2017
15:18:56
в D есть встроенные корутины ака файберы, кооперативная многозадачность

я вот с D на эликсир пытаюсь перелезть ибо достали глюки и сложность отладки

у меня в проекте тысяч 10 таких корутин вертится

должно отлично лечь на эликсировские процессы

но D куда менее многословен

парсинг файла с числами - одна строка: auto list = File("input5.txt").byLine.map!(l => l.to!int).array;

Slava
12.12.2017
15:27:29
Evgeny
12.12.2017
15:28:07
особо не течет, тормозной

Slava
12.12.2017
15:28:28
а, паузы слишком длинные?

Evgeny
12.12.2017
15:28:55
не обязательно, просто много времени отнимает

Admin
ERROR: S client not available

Evgeny
12.12.2017
15:29:19
скажем 20% времени работы программы - сборка мусора. Это нормально?

паузы можно твикать туда-сюда

но у меня таки тек

правда непонятно GC течет или сторонняя либа

хер отладишь это говно

Slava
12.12.2017
15:31:10
понятно, спасибо

Evgeny
12.12.2017
15:31:27
но GC тоже может течь, ибо Boehm–Demers–Weiser garbage collector

но все равно терзаюсь. в фениксе слишком много магии на мой вкус

хер поймешь как оно работает

Google
Evgeny
12.12.2017
15:35:53
ну и на самом эликсире простые вещи пишутся сложно, разве что паттерн-матчинг радует

Slava
12.12.2017
15:36:25
в го с магией все сильно проще, все как на ладони начиная с стдлибы. но вот писать на нем в целом - никакого удовольствия, почему-то

Evgeny
12.12.2017
15:37:01
на D писать очень приятно, имхо самый дружелюбный язык в плане синтаксиса

Slava
12.12.2017
15:39:45
при этом какой-то альтернативы го я не вижу вменяемой. раст куда-то не в ту степь совсем, не очень интересно возиться с ownership'ом и прочим, мне бы именно какой приятный язык с GC, параллелизмом и нормальной производительностью. java и друзья (и родственники в лице дотнета) - спасибо, но не хочется.

Evgeny
12.12.2017
15:40:17
ну попробуй D и фреймворк vibe.d для параллелизма

Slava
12.12.2017
15:40:20
Зато читать одно удовольствие
есть такое, все читаемо, даже для новичка

так вот ты говоришь что у D проблемы есть такие :)

Evgeny
12.12.2017
15:40:43
Ну смотря какая задача

мой проект работает, нагрузку держит

Marat
12.12.2017
15:41:52
D за 16 лет как-то вообще не взлетел, как был языком для энтузиастов отдельных так и остался

Evgeny
12.12.2017
15:42:04
ну не совсем так

популярность растет

активно разрабатывается

коммьюнити очень отзывчивое

охотно отвечает на вопросы новичков

Slava
12.12.2017
15:43:13
популярность растет
почему-то вспомнился stronghold crusaders, извините за оффтоп :)

Evgeny
12.12.2017
15:43:15
потихоньку фичи из D переползают в плюсы :)

кто-то вон игры пилит

Slava
12.12.2017
15:44:20
я помню что опенсорсный клон morrowind'a пилился сначала на D, а потом все переписали на с++

Evgeny
12.12.2017
15:44:48
ага, в те времена D вообще неюзабельный был

сейчас-то почти любое говно можно найти, и в отличие от плюсов есть вменяемый пакетный менеджер

на плюсы я уже никогда добровольно не вернусь

Страница 822 из 1045