@dlangru

Страница 482 из 719
Stanislav
26.03.2018
17:42:28
кароче правильный вариант - это сделать 2 слушающих сокета) просто надо немного допилить eventcore и vibe-core

почему code.dlang.org все время лежит когда я хочу обновить что-нибудь?

Pavel
26.03.2018
17:47:48
Так он впринципе лежит каждые 5 минут на 5 минут )

Может это такой easter egg, не знаю.

Google
Stanislav
26.03.2018
17:48:08
о, запустился

видать его по крону рестартуют каждые 10 минут, а запускается он 5 минут

Pavel
26.03.2018
17:52:02
И вот эта вот конструкция - от core контрибуторов языка. А потом они еще смеют ругать докер и пшп)

Stanislav
26.03.2018
17:57:43
ну наконец-то zstas$ netstat -anv | grep 179 tcp46 0 0 *.179 *.* LISTEN 131072 131072 31322 0 zstas$ netstat -anv | grep 179 tcp4 0 0 *.179 *.* LISTEN 131072 131072 31383 0 tcp6 0 0 *.179 *.* LISTEN 131072 131072 31383 0

до и после

вот думаю оформить пр

или это нафиг не надо

Pavel
26.03.2018
18:01:04
оформи конечно

Как это не надо? Тебе безразлична судьба вайба?)

Dark
26.03.2018
18:01:26
Конечно

Stanislav
26.03.2018
18:03:33
а какая практика вообще обычно? сначала issue завести и там все расписать или сразу пулять pr с описанием? честно говоря ни разу в опенсорс не отправлял ничего

Denis
26.03.2018
18:03:58
без разницы

Vitalii
27.03.2018
06:24:07
А можно ли в D отсортировать два массива без выделения дополнительной памяти (использования struct/tuple/zip конструкций), а только за счёт введения custom swap?

Google
Vitalii
27.03.2018
06:24:56
(в смысле одновременно: сортируется первый массив, а второй сортируется в соответствии с первым)

Evgeny
27.03.2018
06:50:23
не понял. можно пример на массивах из трех элементов?

Eto
27.03.2018
06:51:59
Он просто хочет дублировать все действия.

Evgeny
27.03.2018
06:54:28
Если так, то встроенные сортировки не позволяют задавать кастомный swap

но позволяют вместо реальной сортировки создавать индекс, может это поможет

Dmitry
27.03.2018
07:49:21
У mir походу конкурент появился. Непонятно только зачем еще одна либа https://github.com/caraus-ecms/tanya

Vitalii
27.03.2018
08:03:50
не понял. можно пример на массивах из трех элементов?
Два массива: int[] Ind = [3, 0, 2, 1]; double[] Val = [9.1, 2.5, 7.3, 4.2]; Сортируем массив Ind так, что при любой перестановке его элементов с индексами i и j одновременно переставляются элементы с индексами i и j в массиве Val. Т.е. происходит одновременная сортировка двух массивов, заданная первым массивом.

не понял. можно пример на массивах из трех элементов?
Как это сделать с помощью промежуточной структуры/кортежа - понятно. Как это сделать с помощью промежуточного массива индексов (перестановки) - понятно. Непонятно только, можно ли это сделать с помощью пользовательского swap'а.

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

Pavel
27.03.2018
08:10:49
Можно сортировать объект, связывающий два массива.

Evgeny
27.03.2018
08:11:04
Можно сортировать объект, связывающий два массива.
придется выделить память под него

Pavel
27.03.2018
08:11:24
Под переменные сортировки тоже памятьидёт.

Vitalii
27.03.2018
08:11:25
Да.. :( и тут получается "см. пункт 1".

Единственная беда - сортировок много, в т.ч. и в стандартной библиотеке, они оптимизированы в зависимости от размера входного массива и т.д. В общем, везде свой код добавлять затруднительно.

Пойду на форуме dlang вопрос задавать. Надеюь меня не закидают тухлыми помидорами.

Igor
27.03.2018
08:21:02
возможно среди фкнций в std_algorithm_sorting.htm есть функция, которая генерирует перестановки для сортировки. можн этот генератор применить к обоим масивам

что-то там про permutations вижу но не разбирался подходит оно или нет

Evgeny
27.03.2018
08:22:22
что-то там про permutations вижу но не разбирался подходит оно или нет
это совсем другое - это перестановки в комбинаторике

Google
Igor
27.03.2018
08:23:32
не, ну вот там перестановки со сравннием есть: bool nextEvenPermutation(alias less = "a < b"

но повторяю, не знаю есть ли там готовое решение

Evgeny
27.03.2018
08:24:03
А вообще, ты хочешь очень странного. Какая цель-то преследуется? Нужно максимально быстро сортировать или в условиях очень сильно ограниченной памяти?

Igor
27.03.2018
08:25:01
ну и да, может можно эти два массива держать уже в виде пар и просто сортировать по первому ключу

если их можно держать вместе а не раздельно

Evgeny
27.03.2018
08:27:29
не, ну вот там перестановки со сравннием есть: bool nextEvenPermutation(alias less = "a < b"
это указывается порядок самих перестановок. вот посмотри на пример, и поймешь что это совсем не то что нужно - https://dlang.org/library/std/algorithm/sorting/next_permutation.html

Vitalii
27.03.2018
08:27:36
А вообще, ты хочешь очень странного. Какая цель-то преследуется? Нужно максимально быстро сортировать или в условиях очень сильно ограниченной памяти?
Я не хочу выделять дополнительную память для сортировки. Перемещать туда-обратно элементы, когда, очевидно, можно этого не делать.

Vitalii
27.03.2018
08:28:37
это указывается порядок самих перестановок. вот посмотри на пример, и поймешь что это совсем не то что нужно - https://dlang.org/library/std/algorithm/sorting/next_permutation.html
Я видел этот текст, это не то, что нужно. См. выше - я знаю, как решить эту задачу при помощи дополнительного массива, содержащего перестановку первого массива.

Evgeny
27.03.2018
08:34:43
готового решения нет, но можно попробовать создать свой RandomAccessRange на базе этих двух массивов и подсунуть его сортировке

Evgeny
27.03.2018
08:34:57
хотя....

Evgeny
27.03.2018
08:35:34
хех, zip-то оказывается и есть такой рендж

чем тебе zip-то не угодил?

Vitalii
27.03.2018
08:36:08
хех, zip-то оказывается и есть такой рендж
Я его и не пробовал, первые шаги в D делаю.

Evgeny
27.03.2018
08:36:41
ща накидаю пример

Maxim
27.03.2018
08:37:01
а откуда вообще ноги у такой необходимости растут?

Evgeny
27.03.2018
08:37:49
оптимизация как понимаю

Google
Vitalii
27.03.2018
08:38:42
а откуда вообще ноги у такой необходимости растут?
Размер обоих массиово порядка 40*10^6 элементов.

Maxim
27.03.2018
08:38:48
ну просто сама по себе идея хранить связанные данные в двух массивах

Pavel
27.03.2018
08:39:39
Задача походу типовая, в пшп даже есть функция multisort

Evgeny
27.03.2018
08:39:47
Вот, накидал. Оно? https://glot.io/snippets/ezjxg4plhq

Pavel
27.03.2018
08:40:50
а откуда вообще ноги у такой необходимости растут?
Впринципе пример придумать нетрудно, два массива, в одном номера людей в другом их имена. И надо отсортировать по номерам

Igor
27.03.2018
08:40:51
а разве можно сортировать range? там же на месте перстановки происходят

Vitalii
27.03.2018
08:41:47
Задача походу типовая, в пшп даже есть функция multisort
Multisort сортирует, как я понимаю, иначе: первый параметр по одному условию, затем элементы у которых первый параметры равны, сортируются по второму условию и т.д.

Вот, накидал. Оно? https://glot.io/snippets/ezjxg4plhq
Спасибо, Евгений! Думаю, что это то, что нужно.

Pavel
27.03.2018
08:42:42
Не он умеет именно несколько массивов сортировать, там в доке есть примеры

Vitalii
27.03.2018
08:44:05
Вот, накидал. Оно? https://glot.io/snippets/ezjxg4plhq
Хотя, конечно, неясно - выделяется ли дополнительная память в zip в таком варианте. Надеюсь, создатели стандартной библиотеки об этом подумали :)

Admin
ERROR: S client not available

Igor
27.03.2018
08:45:21
магия )

Pavel
27.03.2018
08:48:14
http://php.net/manual/ru/function.array-multisort.php

Evgeny
27.03.2018
08:49:31
кстати можно покороче сортировку записать: zip(ind, val).sort!"a[0] < b[0]";

http://php.net/manual/ru/function.array-multisort.php
Да, действительно, умеет также.

Igor
27.03.2018
08:57:40
не понимаю как оно работает не выделяя памяти. sort же сортирует in-place? нужно бы разобраться

Google
Evgeny
27.03.2018
09:00:47
не понимаю как оно работает не выделяя памяти. sort же сортирует in-place? нужно бы разобраться
zip создает структуру с имплементацией opIndex, все обращения по индексу проксируются непосредственно на первоначальные массивы.

Pavel
27.03.2018
09:01:54
Т.е. оригинальные массивы тоже отредактируются?

Evgeny
27.03.2018
09:02:18
Т.е. оригинальные массивы тоже отредактируются?
ну естественно, посмотри пример, который я написал, оно реально сортирует исходные массивы

Pavel
27.03.2018
09:02:48
Я имею в виду, что хотелось бы только редактирования массивов указателей

Хотя впринципе в случае с массивом классов оно и так будет указателями

Evgeny
27.03.2018
09:03:20
Pavel
27.03.2018
09:03:46
у нас нет никаких массивов указателей, ты о чем?
Чтобы лишний раз не двигать элементы массива

Evgeny
27.03.2018
09:04:09
Чтобы лишний раз не двигать элементы массива
сортировка подразумевает движения элементов массива

если элементы - это указатели, то будут двигаться указатели, но тогда, возможно, потребуется переписать функцию сравнения, чтобы сравнивались не сами указатели, а то что нужно.

Pavel
27.03.2018
09:05:20
Да в общем решаемо

Igor
27.03.2018
09:07:47
понятно, значит я неправильно представлял себе зип просто как поток tuples, а он хитрее

Evgeny
27.03.2018
09:08:11
чем мне нравятся функции из std.range, так это тем что они умные ваще. Результирующий рендж будет мимикрировать под подсунутые ренджи. Если zip подсунуть списки не поддерживающие доступ по индексу, то и zip вернет рендж не поддерживающий обращение по индексу.

понятно, значит я неправильно представлял себе зип просто как поток tuples, а он хитрее
не только zip, многие функции обработки ренджей из фобоса стараются быть максимально ленивыми и генерят данные только по мере необходимости.

а если необходимо превратить ленивый рендж в реальный массив то применяем к нему std.array.array

Igor
27.03.2018
09:22:43
да, очень приятные штуки

Dark
27.03.2018
12:18:33
Жаль, что они такой подход переносят на dmd из-за чего он вечно нестабилен

Dmitry
27.03.2018
13:54:30
На правах оффтопа. К теме линукс для десктопа. LibreOffice у меня намертво виснет при попытке открытия xlsx файла. Ей богу хоть винду на виртуалку ставь т.к. работа стоит

Денис
27.03.2018
13:59:20
У меня было что-то подобное

Но у меня было дело в том, что депенденси библиотеки не хватало

Dmitry
27.03.2018
14:02:18
просто виснет при попытке фильтр применить

Страница 482 из 719