Программирование

Ответить в тред Ответить в тред
Check this out!
С++ для малышей Аноним 22/10/21 Птн 14:15:44 21902861
аааааааааа.jpg 190Кб, 1080x810
1080x810
Помогите хомячку ньюфагу! КМ по инфе, поступал по физике)) вообще не понимаю как это делать
Пожалуйста :c
Аноним 22/10/21 Птн 14:54:39 21903232
image.png 20Кб, 650x399
650x399
>>2190286 (OP)
Ха ха. Элементарно же. Ты и сам решишь.
Ну ладно, помогу вначале
Это подсказка. Дальше сам. Иначе нахуй ты нужен.
Аноним 22/10/21 Птн 15:16:10 21903323
image.png 42Кб, 668x817
668x817
На, говно, держи решение. Чтобы ты двойку получил, раз не можешь такие простые задачи решать. Не ошибись, когда переписывать будешь. Сумей объясннить чо-да-как.


Аноним 22/10/21 Птн 15:27:36 21903394
>>2190332
Блин. Походу я фошманулся. В первом цикле шаг через два. Сейчас переделаю.
113363
Аноним 22/10/21 Птн 15:33:26 21903455
image.png 41Кб, 664x778
664x778
Аноним 22/10/21 Птн 15:42:20 21903506
>>2190345
Ха-ха. И даже так неправильно.
Нужно ещё в аргументы добавить ссылку на positive_count, иначе вызывающая функцию не узнает количество элементов в возвращаемом массиве.

И скорее всего это реализовать нужно было не в стиле Си, а с использованием STL, через std::array<int, 3> a2 = {1, 2, 3};

Но ежели б ты знала какая хуйня бы получилась, то содрогнулась. В результате использования исходный код получился бы компактней и читабельней, но говна компилятор бы нагенерил лишнего раз эдак 3 или пять больше.
Аноним 22/10/21 Птн 15:51:56 21903587
>>2190345
>>2190350

Перед return positives в конце вставить

if(!sorted)
mul = positive_count;

Тогда вызывающая функция проверяет sorted и если она false, то в переменной mul будет количество возвращаемых элементов.

Нормально так с собой поговорил...
Аноним 22/10/21 Птн 15:57:30 21903678
image.png 43Кб, 691x794
691x794
>>2190358
И даже лучше лишний if не нужен

Если sorted истинна, то в result произведение элементов по возрастанию, иначе количество возвращённых положительных элементов.
Аноним 22/10/21 Птн 16:14:23 21903839
image.png 45Кб, 672x851
672x851
>>2190367

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

Аноним 22/10/21 Птн 16:22:48 219038710
нихуясе шиз сам с собой хеллоуворлд делает
Аноним 22/10/21 Птн 16:24:38 219039111
>>2190383
>Не уверен, что кто-то сможет посчитать это быстрее.

> if (sorted && i > 0 && ((i & 1) == 0))

через предикат.

if ( sorted & ~(i & 1) & (i > 0) )

А кто теперь сможет обогнать?
Поймёт ли препод это выражение, не прочитав эту тему?

Забавно будет если ошибся с приоритетом в предикате.
Аноним 22/10/21 Птн 16:25:05 219039212
22/10/21 Птн 18:58:23 219057513
>>2190392
>>2190391
>певокурсник байтоеб кидает скрин с кодом вместо pastebin
>явный обсер на корнер кейсах
Ребенок я тебя услышал.
Аноним 22/10/21 Птн 19:23:00 219062114
>>2190383
боже, какой же c++ мерзкий язык. просто неадекватно длинная программа. так намного лучше
https://pastebin.com/pD40b0PP
Аноним 22/10/21 Птн 20:08:27 219065215
>>2190621
Это не С++. Это Си. Там от С++ только ссылки, bool и объявление переменных в произвольных местах.

Ну и задача соответствующая - простая и бессмысленная.

Но при всём этом вышеприведённый код быстрее уже не напишешь, код занмает несколько десятков байт,

И если ей на вход подать массив размером с гигабайт она его прожуёт и не подавится. Насчёт Хаскеля - предположу что на массиве в один гигабайт твоя программа "Не отвечает и будет закрыта".
Аноним 22/10/21 Птн 20:43:41 219068616
Скриншот 22-10-[...].jpg 40Кб, 561x683
561x683
>>2190286 (OP)
Нахуй там сисю учат, вот нормальный язык.
Аноним 22/10/21 Птн 21:03:01 219071617
Аноним 22/10/21 Птн 21:07:42 219072218
>>2190716
Да я от пизды набираю, что в башку приходит, то и пишу.
Аноним 22/10/21 Птн 21:08:29 219072319
Аноним 22/10/21 Птн 21:12:02 219072720
>>2190723
Поеятное дело тру анальники питонисты такое в 1, 2 строчки пишут генератором.
Аноним 22/10/21 Птн 21:14:59 219073221
>>2190652
ну, сишки очевидно куда быстрее, компактнее и жрут меньше памяти - но если эту программу ни разу не будут юзать для огромных объёмов данных - то ужасающий код был написан зря.
+ хаскелевский алгоритм всё ещё O(n), так что скорость будет норм
Аноним 22/10/21 Птн 21:24:43 219073722
>>2190686
а вот тут кстати O(n log n) из-за сорта
Аноним 22/10/21 Птн 21:37:18 219074823
Аноним 22/10/21 Птн 21:40:34 219075224
>>2190737
Это, блядь, всё что тебя смущает?
Аноним 22/10/21 Птн 21:44:17 219075825
>>2190752
почти не знаю питон + просмотрел только бегло, так что да
Аноним 22/10/21 Птн 21:48:53 219076126
Аноним 22/10/21 Птн 21:51:05 219076327
>>2190761
ок, что ещё там не так?
Аноним 22/10/21 Птн 21:51:44 219076728
Аноним 22/10/21 Птн 21:53:00 219077229
>>2190767
расскажи подробнее, не вредничай )
Аноним 22/10/21 Птн 21:55:40 219077530
>>2190772
Например оно не работает ну и O(n^2)
Аноним 22/10/21 Птн 22:03:42 219078431
>>2190775
Что там добавить надо? Вроде проверял, все ок.
Аноним 22/10/21 Птн 22:06:20 219078932
>>2190775
а, вижу, там список + взятие по индексу, так что O(n^2), произведение считается сложновато, i и index используются параллельно. но вроде может работать
Аноним 22/10/21 Птн 22:11:31 219079733
>>2190784
Да даже массив из индексов положительных элементов неправильно считается
Произведение совсем пиздец и тоже неправильно
Аноним 22/10/21 Птн 22:12:38 219079934
>>2190775
Я а конце проверки на вывод не стал добавлять, просто принты поставил если об этом речь.
Аноним 22/10/21 Птн 22:14:08 219080035
image.png 29Кб, 636x545
636x545
>>2190732

Хуевые времена настали. Кто-то всерьёз считает Python языком программирования.

Вот код на чистом C++
Сишный выше красивее и оптимальнее с точки зрения сгенерированного машинного кода.

Что вы делаете? Неужели сейчас всем похуй на скорость и объёмы ОЗУ? За размер исполняемого кода даже не заикась - уже точно всем похуй. Кроме старичков, которые привыкли экономить биты.
Аноним 22/10/21 Птн 22:14:59 219080436
>>2190799
>Я а конце проверки на вывод не стал добавлять
Да это пофиг
Аноним 22/10/21 Птн 22:18:33 219081037
>>2190800
Опять наебался - 0xffffffff и fffffffe
Ну ничо.
Аноним 22/10/21 Птн 22:20:17 219081338
>>2190804
Ну да, там сортед убирает повторяющиеся значения, переделаю.
Аноним 22/10/21 Птн 22:20:56 219081639
>>2190800
Как ты только в интернете сидишь с жрущим как бегемот браузером? Смотри от анальных корчей не помри с таким расходом ресурсов.
Аноним 22/10/21 Птн 22:22:10 219081940
>>2190800
>Неужели сейчас всем похуй на скорость и объёмы ОЗУ
Дед, успокойся уже, сейчас этого завались, дешевле ещё докупить, чем тратить на обдумывание время, которое можно потратить на выкатывание новых фич.
Аноним 22/10/21 Птн 22:23:26 219082241
>>2190800
>ненужный тайпдеф
>ненужный выебон с проверкой чётности
>array_t вместо const array_t&
>массив из элементов вместо индексов
Ты охуел на кого-то гнать после такого?
Аноним 22/10/21 Птн 22:24:08 219082342
>>2190819
>дешевле ещё докупить, чем тратить на обдумывание время, которое можно потратить на выкатывание новых фич.

Вся суть современных программистов.
Аноним 22/10/21 Птн 22:25:05 219082643
>>2190822
Ну давай свой вариант.

Схуяли typedef ненужный?
Аноним 22/10/21 Птн 22:27:18 219082744
>>2190826
>Схуяли typedef ненужный?
Хз ты сам пишешь vector<int> result вместо него.
>Ну давай свой вариант.
Зочем?
Аноним 22/10/21 Птн 22:27:50 219082845
>>2190822
>ненужный выебон с проверкой чётности
Ну это да. Тут форшманулся на пустом месте, где хороший компилятор мог бы оптимизировать.
Аноним 22/10/21 Птн 22:29:05 219083146
>>2190827
>Хз ты сам пишешь vector<int> result вместо него.
Ну так это не typedef нунужный. Это я проебался.
А typedef почтии никогда не повредит.
Аноним 22/10/21 Птн 22:31:25 219083347
>>2190800
>всем похуй на скорость и объёмы ОЗУ
в программе жрать большую часть ресурсов чаще всего будет маленький фрагмент кода - его и хуярь на сихе. а весь код зачем на ней писать? для максимизации страдания?
Аноним 22/10/21 Птн 22:32:46 219083548
>>2190800
у тебя плюсы на ретурне ещё копию массива запилят - нужна мув семантика из новый стандартов - или большой проёб эффективности
Аноним 22/10/21 Птн 22:33:11 219083649
Аноним 22/10/21 Птн 22:34:13 219083850
>>2190800
половина данных возвращается через return, половина через параметры - очень больно смотреть
Аноним 22/10/21 Птн 22:35:40 219084251
Аноним 22/10/21 Птн 22:35:41 219084352
>>2190822
>>массив из элементов вместо индексов

А вот на этом месте мне стало стыдно. Хорошо что общение анонимное. Позор такой позор. А ты хорош.
Аноним 22/10/21 Птн 22:35:43 219084453
>>2190838
Да там надо или массив или число вернуть.
В плюсы уже завезли нормальные sum-type?
мимо
Аноним 22/10/21 Птн 22:38:00 219084754
>>2190844
вроде нет - но даже запилить маленький класс для одной функции имхо выглядит лучшим решением
Аноним 22/10/21 Птн 22:38:09 219084855
>>2190835
В реальной жизни я пользую указатели.
Аноним 22/10/21 Птн 22:40:02 219085056
>>2190848
ух, вот это реальное зло) следить за освобождением памяти - та ещё морока
Аноним 22/10/21 Птн 22:42:11 219085557
>>2190847
Ну тогда std::variant и пусть препод сам ебётся
>>2190850
smart pointers, smart pointers everywhere.jpg
Аноним 22/10/21 Птн 22:46:52 219085958
>>2190383
>>2190800
по такому коду не получится сказать, работает он или нет и его корнеркейсы, глянув на него на скорую руку. работать с таким кодом не торт
Аноним 22/10/21 Птн 22:54:21 219087359
>>2190850
Обожаю анонимные форумы. Меня обсирают, а мне похую. В том смысле, что можно нахаляву скиллы повысить.

https://pastebin.com/S8X1YvBK

>>2190822
>>array_t вместо const array_t&
С этого места подробнее.
Аноним 22/10/21 Птн 22:57:04 219087760
>>2190873
отвечу за него
>>array_t вместо const array_t&
const - так как не хочешь менять оригинальный массив и хочешь сделать это очевидным для других прогеров (и компилятора)
& - с++ передаст ссылку на массив вместо того, чтобы делать копию (намного быстрее)
Аноним 22/10/21 Птн 23:02:25 219088461
>>2190873
ну как обсирают, лол) скорее слегка, по дружески, кекают
Аноним 22/10/21 Птн 23:04:58 219088762
Аноним 22/10/21 Птн 23:12:33 219088963
Скриншот 22-10-[...].jpg 40Кб, 523x776
523x776
>>2190784
Вот вроде нормально.
Аноним 22/10/21 Птн 23:14:27 219089064
>>2190889
А не хуйня, с нулями проебался.
Аноним 22/10/21 Птн 23:16:48 219089265
>>2190889
>new_arr.append(a.index(i))
Да ты заебал. Это не работает
Аноним 22/10/21 Птн 23:17:11 219089366
>>2190887
надо и свою тогда запилить - ща будет
Аноним 22/10/21 Птн 23:17:51 219089467
Скриншот 22-10-[...].jpg 45Кб, 559x747
559x747
>>2190890
Ну уже на всем чем можно проверил.
Аноним 22/10/21 Птн 23:19:09 219089568
>>2190892
Работает, вставляет индексы положительных, а как надо? У него там по другому не написано, просто нужен список из них.
Аноним 22/10/21 Птн 23:23:47 219089969
>>2190895
Нет, не работает.
>>2190894
>Ну уже на всем чем можно проверил.
5 4 3 2 1 1 1 1
Чо кого?
Аноним 22/10/21 Птн 23:31:04 219091170
>>2190893
начал пилить - заебался за пару минут. дурацкие плюсы
Аноним 22/10/21 Птн 23:33:18 219091571
>>2190911
Да то на то и выйдет, что и у меня. Там что-то улучшить уже трудно.
Аноним 22/10/21 Птн 23:34:48 219091772
Скриншот 22-10-[...].jpg 49Кб, 530x833
530x833
>>2190899
>5 4 3 2 1 1 1 1
[0, 1, 2, 3, 4, 4, 4, 4]
Индексы положительных, все так.
Но у меня был еще проеб с 0 5 6
Так что вот еще скриншотик
Аноним 22/10/21 Птн 23:36:04 219091973
>>2190915
Хотя... проверку на sorted на уровень выше поднять и чуть быстрее работать будет. Но настолько чуть, что и не заметишь.
Аноним 22/10/21 Птн 23:36:55 219092174
>>2190917
Скорость с С++ будем сравнитвать?
Аноним 22/10/21 Птн 23:37:06 219092275
>>2190917
Там же не написано убрать повторы)
Аноним 22/10/21 Птн 23:40:26 219092376
Скриншот 22-10-[...].jpg 50Кб, 622x783
622x783
>>2190899
Хотите без повторов?
Вот.
Аноним 22/10/21 Птн 23:41:44 219092477
Аноним 22/10/21 Птн 23:41:48 219092578
>>2190915
я надеялся приблизиться к хаскелевскому решению - но это пиздецки сложно
Аноним 22/10/21 Птн 23:43:14 219092979
Аноним 23/10/21 Суб 00:01:09 219095280
Скриншот 23-10-[...].jpg 49Кб, 615x805
615x805
>>2190924
Все, правильно теперь надеюсь?
Аноним 23/10/21 Суб 00:04:50 219095781
>>2190952
Ты с перемножением, вроде, тоже перемудрил.
23/10/21 Суб 00:11:18 219097282
Влетаю в тред с языком богов: https://pastebin.com/jJZiNQkN
Сажи ёбаному пту-шнику, чтобы ты сука вылетел
Аноним 23/10/21 Суб 00:12:05 219097383
>>2190957
Ну да я забыл про инумират конечно, но сейчас вроде и так нормально.
Аноним 23/10/21 Суб 00:12:51 219097684
>>2190972
>язык богов
ебала на 30 строк - длинноват твой язык богов
23/10/21 Суб 00:14:18 219097885
>>2190976
Сейчас бы неиронично число строк как метрику кода использовать
Аноним 23/10/21 Суб 00:14:39 219097986
>>2190972
этож тот язык, на котором написан божественный идрис? если да, то респект
Аноним 23/10/21 Суб 00:15:55 219098587
>>2190978
чому нет? простаю и удобная метрика
23/10/21 Суб 00:19:17 219099588
>>2190979
Не совсем, но хаскель-мужикам респект

>>2190985
Дай угадаю, у тебя есть родственники из Индии?
Аноним 23/10/21 Суб 00:19:30 219099689
Аноним 23/10/21 Суб 00:20:54 219099790
>>2190995
>Дай угадаю, у тебя есть родственники из Индии?
тогда я писал бы максимально длинный код
23/10/21 Суб 00:21:19 219099891
2021-10-23-0020[...].png 9Кб, 627x322
627x322
Аноним 23/10/21 Суб 00:22:16 219100092
Аноним 23/10/21 Суб 00:23:46 219100293
>>2190972
Дожили. Шпана лиспы не признаёт.
23/10/21 Суб 00:24:29 219100494
Аноним 23/10/21 Суб 00:26:28 219100795
>>2190972
весьма странная штука. какие уникальные фичи у языка?
Аноним 23/10/21 Суб 00:31:38 219101896
>>2191007
> уникальные фичи у языка
)))))))))
23/10/21 Суб 00:32:05 219101997
>>2191007
Гомоиконность, функции первого класса, оптимизация хвостовых вызовов, минималистичность стандарт 90 страниц занимает, из которых примерно 35 - приложения и списки литературы
Аноним 23/10/21 Суб 00:34:19 219102198
>>2191019
>Гомоиконность
вот это интересно выглядит. есть совсем простой пример для чайников?
Аноним 23/10/21 Суб 00:36:48 219102499
>>2191018
JSгоспода в этом ИТТ треде, я спокоен
Аноним 23/10/21 Суб 00:38:52 2191031100
>>2191019
>оптимизация хвостовых вызовов
Ой, да ладно. setjmp|longjmp - им больше лет, чем тебе.
Приводить этот аргумент в пользу языку - нуууууууу такое.
23/10/21 Суб 00:43:52 2191043101
2021-10-23-0042[...].png 18Кб, 740x577
740x577
>>2191021
Обрати внимание, как в примере кода expression является одновременно и списком (элементом данных), и кодом. Не путай с куцым eval, которое можно встретить в питоне и жс, они оперируют со строками, тут вся программа по сути является списком, которым можно при необходимости манипулировать.
23/10/21 Суб 00:45:00 2191046102
>>2191031
Дурачок, setjmp/longjmp - это про нелокальный выход из функции, с оптимизацией хвостовых вызовов связано примерно так, как оп этого треда с программированием.
23/10/21 Суб 00:46:00 2191048103
>>2191031
Хотя по сути ты прав, сейчас трудно найти язык без TCO JS и пистон хах, даже в сишке есть. Тем не менее, впервые оно появилось как раз таки в лиспах.
Аноним 23/10/21 Суб 00:48:41 2191054104
>>2191043
каеф. спасибо за пример, анончик
Аноним 23/10/21 Суб 00:50:15 2191055105
>>2191046
Ой, да не пизди. Твоя Scheme делает эту оптимизация за тебя. На сях и плюсах это сделает программист, если он слышал о setjmp|longjmp и если ему это понадобится.

longjmp из любой вложенности стека выпрыгнет за пару-тройку тактов. Такое впечатление что ты с LOR'a пятнадцатилетней давности пришёл.
23/10/21 Суб 00:57:08 2191065106
>>2191055
Какую ж ты хуйню несёшь, аж дёсны сводит. Ты случайно не одногруппник опа?
На сях и плюсах TCO делает компилятор (если этот компилятор - гцц или кланг), пруф: https://godbolt.org/z/DMleUN (обрати внимание на отсутствие инструкции call в ассемблерном выхлопе, это и есть суть TCO).
Вот простой пример с {set,long}jmp: https://godbolt.org/z/8KzG5Gf4Y . Каким здесь блядь вообще боком оптимизация вызовов, если единственные вызовы тут идут в библиотечные _setjmp и longjmp?
Аноним 23/10/21 Суб 00:57:40 2191067107
>>2191043
Ха. Обратная польская запись наоборот.

>тут вся программа по сути является списком, которым можно при необходимости манипулировать.
Ты так говоришь, будто это что-то хорошее.
Какая область применения этого интерпретатора?
23/10/21 Суб 01:01:09 2191074108
>>2191067
> Ха. Обратная польская запись наоборот.
Странный порядок операторов - не главное, на что нужно обратить внимание в этом примере.

> Ты так говоришь, будто это что-то хорошее.
Это не хорошее, это великолепное. Это позволяет элементарно писать макросы, т.к. макрос - это просто функция, принимающая список и возвращающая список, только в компайлтайме. Макросы, в свою очередь, позволяют писать свои кастомные DSL, что на порядок повышает эффективность написания кода.
23/10/21 Суб 01:02:36 2191076109
Аноним 23/10/21 Суб 01:30:02 2191101110
>>2191065
>Какую ж ты хуйню несёшь, аж дёсны сводит. Ты случайно не одногруппник опа?

Надеюсь ты ещё не ушёл. Очень на это надеюсь.

Специально для тебя - https://pastebin.com/kL8JsQ07
Аноним 23/10/21 Суб 01:47:14 2191115111
>>2191065

Хотя нет. Ладно. Ты прав. То, что я показал >>2191101, это не совсем хвостовая рекурсия. Это нечто лежащее рядом, но не она. Ты победил.

Тем не менее, оптимизирующие компиляторы умеют сами реализовывать хвостовую рекурсию. Т.ч. это всё же не аргумент.

Аноним 23/10/21 Суб 01:54:33 2191121112
2021-10-23-0150[...].png 35Кб, 1580x146
1580x146
>>2191101
Долбоёб ты великовозрастный, TCO - это когда call заменяется на условный прыжок, в твоём примере TCO НЕТ. Хотя хули я перед тобой, птушником, распинаюсь, ты даже оптимизацию хвостового вызова от оптимизации хвостовой рекурсии не отличаешь. Нахуй тебя, ухожу спать.
Аноним 23/10/21 Суб 02:05:32 2191130113
>>2191121
Пиздуй спать, козлина. А хвоствую рекурсия ТЕПЕРЬ я отличаю. Спасибо тебе, говнюк. Хоть чем-то пригодился.

И да - современные С/С++ компиляторы её поддерживают с включенной оптимизацией..
Аноним 23/10/21 Суб 02:06:48 2191131114
1634422803119.jpg 236Кб, 1624x626
1624x626
>>2190800
>Вот код на чистом C++
Кому эта поеботина нужна
Аноним 23/10/21 Суб 02:12:14 2191134115
1634943615094.jpg 54Кб, 850x400
850x400
>>2190800
> Кроме старичков, которые привыкли экономить биты.
Аноним 23/10/21 Суб 02:30:20 2191141116
>>2191134
Вот поэтому кудна ни плюнь, везде используют nginx, не помню когда последний раз Apache видел.
Аноним 23/10/21 Суб 03:41:47 2191151117
>>2191141
При чем тут апач? Расмус - автор PHP.
Аноним 23/10/21 Суб 04:33:00 2191155118
Аноним 24/10/21 Вск 15:52:55 2192227119
>>2190621
> if any (uncurry (>)) $ zip (f0 a) $ (tail.f0) a
if or $ zipWith (>) (f0 a) $ (tail.f0) a
Аноним 24/10/21 Вск 16:34:09 2192271120
>>2191155
Самый популярный язык бэкенда, а что?
Аноним 24/10/21 Вск 18:07:41 2192384121
2021-10-24-1806[...].png 83Кб, 1184x557
1184x557
>>2192271
> Самый популярный язык бэкенда
Как бы тебе донести эту новость... нет.
Аноним 24/10/21 Вск 18:18:06 2192395122
Господи, какие же дегенераты в этом треде сидят: одни носятся со своим старьем С++ аля ПАМЯТИ МЕНИ НЕ ХВАТАЕТ, другие шизло со своей лиспопарашей скобочной, а третьи вообще динамико-петухи из мира петуховена, ПэХэПэ и прочего зоопарка. Джавистов только не хватает в парад уродов.
мимо .NET-господа
Аноним 24/10/21 Вск 18:24:10 2192397123
Аноним 24/10/21 Вск 18:30:58 2192400124
>>2192395
Господин, а почему на дотнет в три раза меньше вакансий, чем на джаву? Почему asp net за столько лет все еще проигрывает экосистемой спрингу? Почему сишарп и фарш не используются в компаниях уровня FAANG (а даже с++используется)?
Аноним 24/10/21 Вск 18:52:43 2192418125
>>2192400
>а почему на дотнет в три раза меньше вакансий, чем на джаву
Чем ниже квалификация - тем больше вакансий.

>Почему asp net за столько лет все еще проигрывает экосистемой спрингу?
Без комментариев.

>не используются в компаниях уровня FAANG
Потому что до 2016 .NET был проприеритарной windows-only технологией, его просто невозможно было технически юзать нигде кроме энтерпрайза, пока Майки не выпустили Core и не сделали .NET кросс-платформеным и опен-сорсным.

Всё должны были из FAANG сразу переписывать 10+ летний софт на .NET? Что с ебалом?
Аноним 24/10/21 Вск 19:06:59 2192426126
>>2192227
не подумал об этом) спс
Аноним 25/10/21 Пнд 03:28:56 2192792127
>>2192384
>>2192397

Миллионы леммингов ошибаться не могут?
Популярность нифига не критерий.

Хороший backend должен быть написан только на компилируемом языке программирования. На худой конец - C#.
Аноним 25/10/21 Пнд 03:30:06 2192794128
>>2192395
>мимо .NET-господа

C# - хороший инструмент. А ты - говно.
Аноним 25/10/21 Пнд 06:36:34 2192812129
>>2190800
Сейчас все в вебе, да и даже если ты запилишь бек на ++, ОДИН ХЕР УПРЕШЬСЯ В БД.. Правильная архитектура залог успеха.
Аноним 25/10/21 Пнд 08:12:16 2192825130
14179606606749.jpg 36Кб, 600x600
600x600
Аноним 25/10/21 Пнд 08:12:54 2192826131
>>2192397
Сейчас бы не отличать понятия "бэкэнд" и "вебсайт".
Аноним 25/10/21 Пнд 08:28:11 2192829132
image.png 17Кб, 568x288
568x288
Аноним 25/10/21 Пнд 19:33:35 2193384133
>>2192829
Ты бы ещё на коболе написал
Аноним 25/10/21 Пнд 21:18:25 2193473134
>>2193384
Так я с трудом отличаю бэкэнад от фронэнда.
Я битами обычно оперирую.
Аноним 26/10/21 Втр 18:06:06 2194174135
>>2193473
>Я битами обычно оперирую.
А мы по твоему тритами что ли?
Аноним 26/10/21 Втр 23:19:28 2194434136
>>2194174
Как минимум байтами. А в основном интами и даблами.
Аноним 27/10/21 Срд 06:26:09 2194555137
>>2194434
>Как минимум байтами
Так ты тоже
Аноним 27/10/21 Срд 13:24:47 2194813138
лох.PNG 33Кб, 1222x320
1222x320
Аноним 27/10/21 Срд 13:45:10 2194850139
>>2190621
>zip (f0 a) $ (tail.f0) a
tail>>=zip $ f0 a
Аноним 27/10/21 Срд 16:30:50 2195171140
>>2194813
Иди нахуй свин строчно-библиотекнутый.
Аноним 27/10/21 Срд 17:07:45 2195220141
>>2194813
>i for i in a if sorted(a) == a
За что?
Аноним 27/10/21 Срд 17:14:35 2195229142
>>2194813
>>2195220
UPD: ну и как обычно оно не работает.
да и вообще что ты нагородил?
>set
>set([reduce(...)])
>reduce может упасть
>8 строка for i in i for i in за що??
Аноним 27/10/21 Срд 20:42:15 2195418143
Аноним 27/10/21 Срд 21:20:22 2195442144
Господа окормители ленивых школьников, вы закончили помогать этому недоразумению?
Аноним 27/10/21 Срд 21:26:14 2195450145
Читайте Лутца. Такую чушь на питоне пишете.
На С++ тоже проблемки у вас есть.
Аноним 27/10/21 Срд 22:44:57 2195545146
>>2194850
>Такую чушь на питоне пишете
И чем тебе мой код не по нраву?
Аноним 27/10/21 Срд 22:45:29 2195546147
Аноним 28/10/21 Чтв 01:24:01 2195658148
>>2195545
Спасибо за ссылку на твой код. Мы вам перезвоним.
Аноним 28/10/21 Чтв 02:19:10 2195683149
Аноним 28/10/21 Чтв 10:44:43 2195782150
>>2190323
> sizeof array
У тебя мать мертва, в курсе?
Аноним 28/10/21 Чтв 13:18:52 2195973151
>>2195782

Что, еблан, никогда не видел конструкцию типа

#define SIZE(x) ( sizeof(x) / sizeof(x[0]) )

Так что закрой пасть и катись в пизду.
Аноним 28/10/21 Чтв 15:54:26 2196134152
TyHuyFunction.png 11Кб, 602x185
602x185
Сборище байтоблядей итт.
Аноним 28/10/21 Чтв 17:00:28 2196236153
>>2195683
Может быть, но я это уже не понимаю
Аноним 28/10/21 Чтв 17:02:44 2196242154
>>2196134
Чому синтаксис выглядит как монстр Франкенштейна?
Аноним 28/10/21 Чтв 17:24:23 2196300155
>>2196242
Это вообще какой яп?
Аноним 28/10/21 Чтв 18:00:12 2196345156
Аноним 28/10/21 Чтв 18:54:21 2196421157
Ваши недоязыки хороши когда значений пару сотен, чтобы кривляться этими языками на анонимном форуме. А когд вам подсунут массив хотя бы гигабайт, они захлебнутся или уйдут в swap. А может быть будут прибиты OOM киллером.

От вас только одна польза была - стимулировать производителей железа. А когда техпроцесс упрётся в свой предел, уже почти упёрся, вы дружной толпой отправитесь таксовать или подавать еду в ресторанах. А кто поумнее и успел - тот будет жить на ренту.

Аноним 28/10/21 Чтв 18:58:33 2196428158
>>2196421
Ты сначала код рабочий напиши, а потом выёбывайся. Весь тред таких
Аноним 28/10/21 Чтв 19:07:31 2196439159
Аноним 28/10/21 Чтв 19:10:28 2196444160
>>2196439
Блядь, я думал это какой новый анон, и сейчас нас всяким опенсиэлям будут учить. А нет, это снова ты.
Аноним 28/10/21 Чтв 19:16:48 2196452161
>>2196421
не, ну ты просто угораешь, честное слово!
1) А если программе никогда не придётся перерабатывать столько данных за раз - нахуя тогда писать её на байтоёбском языке?
2) А если в программе 10% кода будут ебаться с большими объёмами данных - нахуя 90% писать на байтоёбском? напиши 10% на нём
3) Лишние затраты памяти в том же хаскеле фиксятся мутабельными типами данных - и будет заебись
4) Читать байтоёбский код - и так беспросветный пиздец, так вы ещё рандомную хуйню ебашите idx & 1 вместо очевиднейшего idx%2
5) если проблема в скорости - чаще всего алгоритм хуйня, а не микробайтоёбские оптимизации. фиксить алгоритм на каких - нибудь плюсах ваще не торт
6) + к скорости - программы на хаскеле готовы к распараллеливанию практически со старта, а вот в байтоёбстве ещё подрочиться придётся
7) в примерах к блядоплюсам по перегрузке операций +-*/>><<буквально предлагается делать копию объекта дважды - перед работой и при использовании return - офигенно оптимально! фикс появился только недавно хаскель таким не страдает - будет только одна копия максимум - оптимизаций в хаскеле дохера
Аноним 28/10/21 Чтв 19:27:09 2196460162
>>2196452
> так вы ещё рандомную хуйню ебашите idx & 1 вместо очевиднейшего idx%2

Компиляторы разные бывают. Большинство заменят "деление на два" сдвигом" на бит вправо, но самые тупые компиляторы будут честно делить, а деление это дорогая операция. Проверить младший бит это очевидно и уже оптимизировано.

Насчёт распараллеливания, ну хуй знает. Тут надо говорить предметно. На абстрактных задачах спорить о распараллеливании алгоритмов я не буду.
Аноним 28/10/21 Чтв 19:27:48 2196461163
>>2196236
>>= для функций имеет следующий смысл - передать результат функции слева в правую + сложить контексты. после передачи значения обе функции имеют тип a->b, при сложении контекстов хаскель будет подразумевать, что обеим функциям будет передано одинаковое значение. таким образом из 2 функций a->b получим одну функцию, её параметр - f0 a
Аноним 28/10/21 Чтв 19:28:10 2196462164
john-von-neuman[...].jpg 59Кб, 900x750
900x750
Этот тред расстраивает Джонни.
Аноним 28/10/21 Чтв 19:37:11 2196470165
>>2196461
Понял, что оно делает, но всё ещё не понимаю монады.
И это, оно работает, как zip (tail.f0) (f0 a).
Аноним 28/10/21 Чтв 19:40:23 2196472166
>Проверить младший бит это очевидно и уже оптимизировано
Препода из университета напомнило. К чему это битоебство, если на практике нужно для каких-нибудь высоконагруженных систем и прочих оптимизаций, которые будут использовать одни системные программисты.
Аноним 28/10/21 Чтв 19:41:11 2196474167
>>2196460
>Тут надо говорить предметно
>main = traverse print [1..100] абсолютно обычный хаскелевский код
например у тебя есть список функций, взаимодействующий с окружением print. ты хочешь распараллелить вычисление элементов. учитывать наличие взаимодействия в хаскелле никак не надо - порядок вывода элементов в консоль никак не изменится от распараллеливания, в то время как во многих языках порядок будет абсолютно произвольный и фикс этого будет лежать на плечах программистов
Аноним 28/10/21 Чтв 19:48:08 2196481168
>>2196474
Слушай, раз ты в хаскелле с распараллеливанием имеешь дело, можешь подскажешь, как у вас там дело обстоит с вычислениями на gpu. Я на С пытался осваивать cuda, но жутко заебался вникать в это по итогу сделал мой коллега, мне оставалось нужный матан написать куда он тыкнул.
Аноним 28/10/21 Чтв 19:49:04 2196483169
Аноним 28/10/21 Чтв 19:52:41 2196485170
>>2196470
>И это, оно работает, как zip (tail.f0) (f0 a).
+
> всё ещё не понимаю монады
(>>=) :: m a -> (a -> m b) -> m b
где m - монада
для списков
(>>=) :: [a] -> (a -> ) ->
для функций
(>>=) :: (x->a) -> (a ->x->b) -> (x->b)
или в do - нотации
tail>>=zip $ f0 a
==
do
x<-tail
zip x $ f0 a
самое хитрое здесь - комбинирование монад, происходящее в конце do - зависит от контекста монады. для списков - перебор всех комбинаций, для функций - объединение входа и т.д.
Аноним 28/10/21 Чтв 19:53:49 2196487171
>>2196481
>как у вас там дело обстоит с вычислениями на gpu
сравнительно недавно изучаю хаскель - так что пока не знаю
Аноним 28/10/21 Чтв 19:54:20 2196490172
>>2196472
>одни системные программисты
Так я и есть системный программист.

>>2196474
Не очень пониваю твой код. И не очень понимаю суть распараллеливания в твоём примере.
Распараллелливание с моей колокольни это pthread_create (POSIX) или CreateThread (WIN32/64). Мне в голову не придёт параллелить задачу, которая просто выводит что-то на экран. Добавь сюда факт, что увеличение числа ядер/процессоров не ведёт к линейному возрастанию производительности, добавь чудовищный overhead на синхронизацию. Посему я буду распараллеливать вычисления только там, где это действительно нужно и даст выигрыш в производительности.

Аноним 28/10/21 Чтв 19:58:37 2196496173
>>2196490
я ж простейший пример написал. подмени print любой сложной функцией, которая что-нибудь печатает в конце - и будет выигрыш.
>>2196483
не вижу никаких указаний на то, что эта проблема как-то связана с распараллеливанием
Аноним 28/10/21 Чтв 19:58:55 2196497174
>>2196490
Ты, наверное, и Уоррена читал? Который апофеоз битоебства.
Аноним 28/10/21 Чтв 20:02:27 2196500175
>>2196485
>(a -> ) ->
квадратные скобочки съелись
(a ->[z] ) ->[z]
Аноним 28/10/21 Чтв 20:05:03 2196504176
>>2196496
>подмени print любой сложной функцией, которая что-нибудь печатает в конце
или не в конце. или не печатает, а запрашивает с клавиатуры / общается с бд / делает запросы на сайт - порядок нигде не поменяется от использования распараллеливания
Аноним 28/10/21 Чтв 20:07:47 2196507177
>>2196490
>добавь чудовищный overhead на синхронизацию
а нету его)
Аноним 28/10/21 Чтв 20:15:53 2196513178
>>2196507
>а нету его)
Ну, так не бывает. Ищи. Ну или на фоне thunk'ов не теряй
мимо
Аноним 28/10/21 Чтв 20:18:25 2196520179
>>2196513
ну тут я, конечно, привираю. но синхронизация потребуется тут на момент окончания потоков - собрать результаты - и вроде всё. в процессе работы её быть не должно
Аноним 28/10/21 Чтв 20:18:37 2196521180
>>2196487
А нахуй пиздишь, если не знаешь?
Аноним 28/10/21 Чтв 20:20:02 2196526181
>>2196521
Так тут все такие. Чо бугуртишь?
Аноним 28/10/21 Чтв 20:20:30 2196527182
>>2196521
я и не рассказывал про то, про что не уверен, лол.
Аноним 28/10/21 Чтв 20:26:14 2196533183
>>2196521
Ты еблан? Параллельные вычисления на цпу и гпу ебать как отличаются по сложности низкоуровневых процедур и затратам на освоение. Сравни хотя бы cuda и openmp, прежде чем визжать.
Аноним 29/10/21 Птн 03:28:44 2196843184
Screenshot20211[...].png 15Кб, 445x191
445x191
Аноним 29/10/21 Птн 07:39:37 2196873185
>>2196843
>гоферы на месте?
ты хотел сказать goвноеды?
Аноним 29/10/21 Птн 11:40:19 2197046186
>>2196843
вау, даже c++ решение намного короче. к чему такое переусложнение?
Аноним 29/10/21 Птн 14:26:19 2197220187
>>2197046
На го тоже можно написать почти так же, как и на плюсах, вот только я хотел использовать стандартный пакет sort (для этого пришлось создать отдельный тип и заимплементить sort.Interface) и вынести куски кода в разные функции
Аноним 29/10/21 Птн 15:00:58 2197250188
>>2196452
>в примерах к блядоплюсам по перегрузке операций +-*/>><<буквально предлагается делать копию объекта дважды - перед работой и при использовании return - офигенно оптимально
Че?
Аноним 29/10/21 Птн 16:46:16 2197334189
>>2197250
Ну напиши принтфы в конструкторах и деструкторах да посмотри.
Аноним 29/10/21 Птн 17:44:44 2197413190
>>2197250
накатываешь класс матриц
class matrix
{
vector<vector<double>>matr;

хочешь добавить оператор +, ибо хули нет-то?

matrix operator + (matrix&right)
{
matrix n(this);
for (int i = 0;i < matr.size();i++)
for (int j = 0;j < matr.size();j++)
n[j] = matr[j] + right[j];
return n;
}

создаёшь в нём локальную копию, чтобы не менять оригинал - первая копия есть
matrix n(
this);
но эта матрица исчезнет при выходе из функции - ведь она локальная. а программа всё равно работает - так как с++ по тихому сделает копию на строчке return
Аноним 29/10/21 Птн 17:46:23 2197416191
Аноним 29/10/21 Птн 17:46:54 2197418192
>>2197413
Эх, сейчас бы алокации на стеке считать
Аноним 29/10/21 Птн 17:48:40 2197419193
>>2197418
никто не мешает классу vector по тихому выделять память в куче
Аноним 29/10/21 Птн 18:19:39 2197458194
>>2197419
Как, кстати, в плюсах посмотреть что на стеке а что в хипе алоцируется?
Аноним 29/10/21 Птн 18:28:14 2197466195
>>2197458
>что на стеке а что в хипе алоцируется
вызов new - главный признак хипа (явный или спрятанный в классе).
практически все данные с переменным размером - хип частично или полностью: динамические массивы, вектора, списки, деревья, полиморфизм - тоже хип.
статические массивы, простые данные, сами указатели, обёртки над динамикой - стек.
Аноним 29/10/21 Птн 18:33:22 2197481196
>>2197413
>по тихому сделает копию на строчке return
Ща бы move не использовать
Аноним 29/10/21 Птн 18:35:22 2197487197
>>2197481
>>2196452
в оригинальном посте ж указано - фикс есть. но толку от него, если некоторые аноны >>2197250
даже не знают, что проблема существует
Аноним 29/10/21 Птн 19:02:52 2197532198
>>2197487
> фикс есть. но толку от него
Ну и теперь всех на руст пересаживать?
Аноним 29/10/21 Птн 19:11:02 2197544199
Аноним 29/10/21 Птн 19:47:51 2197571200
>>2197544
Там вообще всё на хипе. Так жить нельзя. Все на ATS почаны.
Аноним 29/10/21 Птн 20:08:02 2197597201
>>2197413
Зачем было копировать, если результаты сложения всё перезапишут?
И так то стандартное решение: сделать матрицу в хипе и вернуть указатель, че сказать то хотел?
Аноним 29/10/21 Птн 21:00:39 2197627202
image.png 45Кб, 977x439
977x439
Аноним 29/10/21 Птн 21:03:49 2197630203
С этой темы просто хуею.

Нашёлся бы анон, который бы взял все представленные решения и протестировал. Нашёл бы неработающие или не выполняющие условия задачи, затем посчитал бы время выполнения и потребляемую память. У многих бы глаза открылись.
Аноним 29/10/21 Птн 21:34:47 2197653204
>>2197630
>Нашёл бы неработающие или не выполняющие условия задачи
Да я и без тестов это тут делал. Что сказать то хотел
ужедаженневкатун
Аноним 30/10/21 Суб 00:00:44 2197716205
>>2197630
Если ты такой умный, может ты пару-тройку тесткейсов напишешь? Ну, что на входе и что на выходе ожидается.
> затем посчитал бы время выполнения и потребляемую память
Не нужно, т.к. решения на разных языках нельзя сопоставить между собой
Аноним 30/10/21 Суб 00:08:30 2197723206
Аноним 30/10/21 Суб 01:07:03 2197765207
>>2197716
>Если ты такой умный, может ты пару-тройку тесткейсов напишешь?
Может быть и напишу. Сейчас вот попробовал 100000000 случайных числе сгенерировать, но что-то много получилось. Вентилятор гудит. Ещё генерируются. Дождусь когда завершится, уменьшу до 10 миллионов чисел.
Аноним 30/10/21 Суб 02:12:40 2197780208
>>2197597
>Зачем было копировать
шоб оригинал не портить
>сделать матрицу в хипе и вернуть указатель
тогда вместо простого и удобного
matrix a,b,c;
...
a=b+c
придётся писать рандомную работу с указателями - не торт
Аноним 30/10/21 Суб 02:13:13 2197781209
>>2197571
>Там вообще всё на хипе
та и норм - хипа ж сама чистится
Аноним 30/10/21 Суб 02:14:17 2197782210
>>2197630
>У многих бы глаза открылись.
на что? сиськи топ, остальные догоняющие
Аноним 30/10/21 Суб 02:15:15 2197783211
Аноним 30/10/21 Суб 02:24:06 2197784212
image.png 64Кб, 668x722
668x722
Сортированный массив 10 млн чисел в текстовом файле:

Load time: 44810.9ms
Calculation time: 6833.67ms

Несориторванный массив 10 млн чисел в текстовом файле:

Load time: 44294.4ms
Calculation time: 5357.18ms

Второй запуск:

Load time: 44837.2ms
Calculation time: 5241.17ms
Write time: 66647.5ms

> Если ты такой умный, может ты пару-тройку тесткейсов напишешь? Ну, что на входе и что на выходе ожидается.

Ну что, челлендж?

https://file.io/AGWSADQ6iUMf

В архиве три файла - сортированные данные, несортированные данные и сгенерированный по несоритированным данным список индексов.

Насчёт перемножения - ха-ха-ха (три раза) там даже на double всё быстро-быстро уходит в infinity. Тем не менее, для чистоты эксперимента, умножение должно остаться.

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

И да, это был код на С++. Я хоть и люблю С++, но на чистых Сях могу выжать побыстрее.

Я почти уверен что никто не захочет посоревноваться.Ну а вдруг?!!!


Аноним 30/10/21 Суб 02:42:18 2197788213
>>2197781
Так и вектор за собой подчистит
Аноним 30/10/21 Суб 02:44:41 2197790214
>>2197784
>>2197784
>https://file.io/AGWSADQ6iUMf

Какая-то позорная файлопомойка:

>>> Please note: once the download is complete, the file will be deleted from our servers.

Это значит что загрузить тесты сможет ровно один анонимус.
Где хотя бы неделю полежит?
Аноним 30/10/21 Суб 02:52:57 2197791215
>>2197784
так и до какого предела множителей плюсы тянут без погрешности?
Аноним 30/10/21 Суб 03:06:47 2197792216
>>2197790
Всё, уже кто-то скачал и архив удалился.
Перевыложил вот сюда - https://www.sendspace.com/file/adiuau

>>2197791
> так и до какого предела множителей плюсы тянут без погрешности?

Хрен его знает. Известно лишь одно - вот это число переполняется очень быстро.
std::numeric_limits<double>::max()

Ну и как бы при умножении целых чисел погрешность будет мало ззначить. По хорошему нужно писать свою функцию умножения больших чисел или искать готовую. Но ради этой задачи заморачиваться не вижу смысла. Может быть тут эстэты есть и зафигачат от нечего делать. Но это точно буду не я.
Аноним 30/10/21 Суб 03:09:32 2197793217
>>2197791
для хаскеля предел умножения - 120000 элементов в массиве, в результате получаем целое число с 278695 знаками.
Аноним 30/10/21 Суб 03:14:04 2197794218
>>2197791
>>2197792
>>2197793
Вы, блядь, ахуели? Причём тут кресты. Какое нахуй сравнение IEEE 754 и длинной математики у хаскеля.
UPD ёбанный рот этого казино. Сейчас бы в 2021 возврат каретки делать.
Аноним 30/10/21 Суб 03:20:48 2197797219
>>2197784
У меня уже ебейшая ночь. Но я в упор не понимаю откуда у тебя там десятки секунд набрались.
Аноним 30/10/21 Суб 03:24:04 2197799220
>>2197794
лол, чего подорвался-то?
Аноним 30/10/21 Суб 03:31:04 2197800221
>>2197794
>Какое нахуй сравнение IEEE 754
А кто сравнивает-то?
DBL_MAX approximately 1.8 × 10308
Очевидно что на предложенном тесте double переполнится где-то на сороковой итераци или раньше. Он там вообще не к месту, как оказалось.

>Сейчас бы в 2021 возврат каретки делать.
Чем тебе возврат каретки не угодил? Тем, что cr+lf? Да пофигу. Мог бы и бинарный захуячить. Но отчего-то мне казалось что большинство читающих тут ни разу не работали с двоичным данными. А так-то конечно было бы значительно быстрее -поделил размер файла на 8 - вот тебе и количество элементов, которые можно прочитать одним read сразу. И читалось бы всё меньше секунды, вместо 44 секунд.
Аноним 30/10/21 Суб 03:33:39 2197802222
>>2197800
>Чем тебе возврат каретки не угодил?
Ну я скопировал твою хуйню, а хешсумма вывода была не та.
Аноним 30/10/21 Суб 03:40:26 2197804223
>>2197797
> Но я в упор не понимаю откуда у тебя там десятки секунд набрались.

1. Загрузка из текстового файла. Каждая строка переводится из текствого значения в integer

2. push_back в vector каждого элемента.
1) std::vector is a sequence container that encapsulates dynamic size arrays. 2) std::pmr::vector is an alias template that uses a polymorphic allocator. The elements are stored contiguously, which means that elements can be accessed not only through iterators, but also using offsets to regular pointers to elements.J


3. Там 10 миллионов записей, это дохуя на самом деле. Файл unsorted.txt - 10 Мб.

4. Собрано в Debug.

5. План питания ноутбука - "Максимальная экономия заряда"

Давай подождём парней с Питоном и посмотрим на их скорость?
Наверняка у них более быстрые десктопы с хорошим охлаждением.



6.
Аноним 30/10/21 Суб 03:41:54 2197806224
>>2197802
>а хешсумма вывода была не та.
Скорее всего CR|LF vs CR vs LF.
Но это неточно.
Аноним 30/10/21 Суб 03:50:19 2197810225
>>2197804
>Файл unsorted.txt - 10 Мб.
Пардон, я напиздел он 99 Мб.
Аноним 30/10/21 Суб 03:55:35 2197812226
>>2197804
inb4 надо хроно а у тебя утилита time. выкинь hdd, обнови систему
>Давай подождём парней с Питоном и посмотрим на их скорость?
Зачем меня ждать?

>>2190887 -O2 1.6 сек
>>2190836 9 сек

И стоило оно того?
Аноним 30/10/21 Суб 04:02:17 2197813227
>>2197812
>И стоило оно того?
Почему нет?
Хотя конечно я ожидал разницу в разры больше, чем ты показал. Питон не так уж и плох, как оказывается.
Аноним 30/10/21 Суб 04:06:34 2197814228
>>2197813
>Почему нет?
Ну потому что на пистоне я ебанул за пару минут. А анону с крестами помогали всем зекачом
Аноним 30/10/21 Суб 04:35:53 2197815229
>>2197814
А ты на каком наборе данных проверял?
Вот это вот меня просо бесит:

> evenElements = array[::2]
> sorted(evenElements) == evenElements

1. Ты создал новый массив с 5 миллионами элементов. Это ~38 Мб.
2. Ты создал отсортированную копию 5 миллионов элементов. Это ещё ~38 Мб.


При этом ты скушал "просто так" лишних 76 Мб ОЗУ.

Нифига не понимаю как у тебя получилось всего лишь в 5 с половиной раз медленне. Я конечно понимаю, что sort и выделение чётных реализовано средствами языка и выполняются в машинном коде. Но всё же 5 раз как-то мало. Я ожидал разницу раз в 20 или больше.


Аноним 30/10/21 Суб 06:29:51 2197822230
>>2197466
>статические массивы
Разве в стеке ? а не в BSS случаем?
Аноним 30/10/21 Суб 06:30:54 2197823231
>>2197822
Сорян, неправильно понял, да в стеке конечно же
Аноним 30/10/21 Суб 07:17:18 2197826232
>>2197804
Стримы очень медленные. Юзай charconv, читай файл в память целиком или ммапь его.

>>2197815
>с++ по тихому сделает копию на строчке return
Сейчас все компиляторы убирают копирование при возврате в большинстве случаев

>>2197418
Вектор всегда размещает содержимое в куче или где кастомный аллокатор память выделит. На стеке может разместиться только сам объект вектора.
Аноним 30/10/21 Суб 10:49:01 2197902233
>>2197815
>А ты на каком наборе данных проверял?
this >>2197784
>1. Ты создал новый массив с 5 миллионами элементов. Это ~38 Мб.
>2. Ты создал отсортированную копию 5 миллионов элементов. Это ещё ~38 Мб.
Пфф
3 readlines
4 массив array
5 join result
>При этом ты скушал "просто так" лишних 76 Мб О
900 ёба
Аноним 30/10/21 Суб 11:16:01 2197920234
>>2197815
>скушал "просто так" лишних 76 Мб ОЗУ.
Готовить хачкель не умею. Так что работал он пол минуты, но жрал 5 мб. Где твой бог теперь?
Аноним 30/10/21 Суб 14:57:59 2198072235
>>2197920
странно. запустил хаскель - 3 секунды на старом ноуте, но памяти жрёт дохуища
Аноним 30/10/21 Суб 15:00:04 2198075236
>>2198072
А как ты файл читаешь? + У меня ghc ебёйше старый.
Аноним 30/10/21 Суб 15:05:45 2198079237
>>2198075
а, эту часть я просто скипнул - совсем забыл сказать
Аноним 30/10/21 Суб 15:14:43 2198090238
>>2198079
Так что ты в итоге сделал то?
Аноним 30/10/21 Суб 15:26:32 2198106239
>>2198090
сгенерил сортированный массив в начале работы и прошёл по нему
Аноним 30/10/21 Суб 15:27:14 2198107240
>>2198106
10 000 000 элементов, разумеется
Аноним 30/10/21 Суб 15:57:38 2198129241
photo2021-08-23[...].jpg 49Кб, 604x400
604x400
Аноним 30/10/21 Суб 16:01:33 2198132242
>>2198129
Что делает 46 строчка?
Аноним 30/10/21 Суб 16:02:18 2198133243
>>2198129
Забавно, что создание массива через
arr := make([]int, 0, 10_000_000)
На время загрузки практически не влияют. Всё-таки многократная алокация памяти всё еще дешевле чтения ссд.
Аноним 30/10/21 Суб 16:03:53 2198134244
>>2198133
>Production
Может всё-таки Product?
Аноним 30/10/21 Суб 16:05:21 2198136245
>>2198132
Ой бля, я задание проебал, там должно быть input > 0
Аноним 30/10/21 Суб 16:07:03 2198137246
>>2198136
Да что с вами не так
Аноним 30/10/21 Суб 16:10:52 2198143247
Аноним 30/10/21 Суб 16:16:00 2198154248
>>2198136
После исправления

sorted.txt:
Loading time: 672.639951ms
Calculation time: 19.567254ms
Write time: 71.434µs

unsorted.txt:
Loading time: 599.023056ms
Calculation time: 29.992471ms
Write time: 691.384018ms

https://play.golang.org/p/J5GksmzpazV
При каждом запуске цифры плавают в диапазоне до двух раз, надо полноценный бенчмарк сделать и запустить 100500 раз, но мне лень.
Аноним 30/10/21 Суб 16:30:28 2198163249
image.png 6Кб, 300x112
300x112
>>2198154
Вот пример выше на С++, собраный Visual Studio в Release, запущенный на ноуте батарейке, но в режиме максимально производительности.

Я нихуя не понимаю, как включив сортировку вы показываете нормальные результаты. Один единственный моего цикл моего пример должен порвать в клочья любые варианты, использующие сортировку. Пусть хоть у вас 5 ГГЦ проц.

Где-то наёбка.
Аноним 30/10/21 Суб 16:32:51 2198164250
>>2198163
>Я нихуя не понимаю, как включив сортировку
Сортировал только я на питоне. О чём ты
Аноним 30/10/21 Суб 16:38:16 2198170251
>>2198163
>Я нихуя не понимаю, как включив сортировку вы показываете нормальные результаты
быстрая сортировка - O(n log n), посчитай log2 (10000000), получи 23 - довольно дешево
Аноним 30/10/21 Суб 16:38:23 2198171252
>>2198164
Единственная оптимизация, которую вижу у тебя - шаг по чётным элементам. я сознательно его не использовал, чтобы оба условия сделать в один проход.

Если заедомо известно, что массив неотсортирован, то обход с шагом 2 даст заметный выигрыш производительности, кроме того что количество итераций сократится в два раза, так ещё лишнего бранча с проверкой на чётность не будет. А условные переходы, как известно, ломают конвейер CPU.

Аноним 30/10/21 Суб 16:42:52 2198175253
>>2198171
>Единственная оптимизация, которую вижу у тебя
Я другой анон, но не важно. Оптимизация у него ссд.
>чтобы оба условия сделать в один проход.
Ерохи делают два прохода и ебут с++.
Аноним 30/10/21 Суб 16:51:32 2198181254
>>2198175
>Ерохи делают два прохода и ебут с++.

Надо было подъебать "ерох" - в сортированных данных последний эелемент сделать меньше преподпоследнего. И тогда бы они соснули красиво. Так-то первый проход останавливается после нескольких итераций, как-только обнаруживается что данные не сортированы.
Аноним 30/10/21 Суб 16:57:31 2198185255
>>2198181
>Надо было подъебать "ерох" - в сортированных данных последний эелемент сделать меньше
Тебе кто-то мешает?
Аноним 30/10/21 Суб 17:02:38 2198191256
>>2198185
Я уже заебался дрочить ноутбук. Пусть он лучше греется на полезных задачах, которые деньги приносят, а не ради потешить ЧСВ на анонимном форуме.
Аноним 30/10/21 Суб 17:04:20 2198193257
>>2198191
>Пусть он лучше греется на полезных задачах
Стоп. Ты тот анон, писавший версию на крестах целый день и работаешь программистом, серьёзно?
Аноним 30/10/21 Суб 17:25:47 2198218258
>>2198193
И что тебя удивляет? Тут половина постов моих.
Ага. Работаю программистом. Пишу на С# на работе. Причём не для пользователей, я для других программистов. Работаю с 2005 из дома, до этого работал в развитой капстране - ебашил в embedded для всякой экзотики, о которой ты не догадываешься. Что не так?
Аноним 30/10/21 Суб 17:29:02 2198223259
>>2198218
>Тут половина постов моих.
А вторая, где я правлю ошибки и хуею с кода, моя.
>Что не так?
Да со мной что-то не так. Надо на работу устроится. Пойду немножко гореть.
Аноним 31/10/21 Вск 00:53:50 2198621260
>>2198218
неплохо. а я репетитор на крестах и решётках - и, чёрт возьми, как же я сильно их разлюбил в последнее время...
Аноним 31/10/21 Вск 07:29:19 2198681261
>>21986218
новые стандарты не нравятся?
Аноним 31/10/21 Вск 07:29:54 2198682262
Аноним 31/10/21 Вск 08:39:38 2198691263
>>2197780
>чтобы ориг не портить
Зачем ты копируешь значения, когда достаточно инициализировать нулями, результат сложения всё скопирванные значения потрет все равно.
Аноним 31/10/21 Вск 11:24:36 2198751264
apl.png 15Кб, 598x144
598x144
Это новый FizzBuzz-трендель?
Версия на APL.

Аноним 31/10/21 Вск 12:27:30 2198812265
>>2198691
А, лол, ты прав. можно и нулями
Аноним 31/10/21 Вск 13:33:42 2198865266
>>2198181
Вот только в продакшен коде важнее простота чтения кода и расширяемость. А оптимизация алгоритма для 1% случаев это уже чистейшей воды олимпиадный онанизм для мамкиных борщехлёбов
31/10/21 Вск 15:34:02 2199002267
>>2198181
>>2198865
На олимпиадках данные четко регламентированы. Никто не будет портить их специально.
Аноним 31/10/21 Вск 17:22:18 2199148268
>>2199002
Всё в рамках регламента. Всё нормально
Будто на том же кф решения не ломали из-за плохих нерандомизированных хешей, ну или там падающей до O(n^2) сортировки для примитивов в java
Аноним 31/10/21 Вск 17:54:35 2199179269
>>2198681
не, попробовал хаскель и офигел от того, что
1) к классам в комплекте нахаляву идёт пачка функций:
конструктор с параметрами, конструктор копии, to_string, from_string, == > < (для некоторых также min,max,map и enum функции)
2) полиморфизм делается проще простого - никаких новых ключевых слов, не требует наследования или указателей
3) темы функций и шаблонных функций можно рассказывать между делом - выведение типов многократно упрощает задачу
4) да и супер-мега for делающий всё и вся вызывает немало затруднений у учеников - простые функции хаскеля могут быть неплохой альтернативой
Аноним 31/10/21 Вск 18:10:16 2199191270
>>2199148
Откуда там такая асимптотика берется? Там quicksort штоле?
Аноним 31/10/21 Вск 18:31:19 2199208271
>>2199191
Да, но это давно было.
Аноним 03/11/21 Срд 17:06:27 2201908272
Кидайте ещё поводы письками меряться.
Мне нравится смотреть на чужие
1 04/11/21 Чтв 02:23:00 2202543273
Аноним 04/11/21 Чтв 02:42:09 2202551274
>>2202543
так а шо этот код делает-то? лень читать целиком
Аноним 04/11/21 Чтв 02:45:51 2202553275
>>2201908
продолжаем перебирать задачи для студентов?
как насчёт этой:
сгенерировать все возможные комбинации заданной длины из чисел 1,0,-1 такие, что сумма комбинации была бы положительной
Аноним 04/11/21 Чтв 03:08:35 2202557276
>>2202551
Что в шапке написано + некая расширяемость типами и поведением.
Аноним 04/11/21 Чтв 03:25:15 2202558277
>>2202557
эк ты тут завернул, однако. то есть я могу заменить чётность на другую проверку, увеличение на уменьшение?
Аноним 04/11/21 Чтв 03:34:53 2202559278
>>2202558
Там примеры в конце есть.
Типа изначально предполагалось фильтрация по чётным индексам в порядке возрастания (скорее всего).
Можно отдельно менять анализ сортировки (по возрастанию или по уменьшению) и фильтрацию по индексам (чётные не чётные). Плюс еще можно вкарячить любое другое что захочешь (по аналогии), но сильно раздувать функцию шаблонами я не хотел.
Аноним 04/11/21 Чтв 07:54:39 2202583279
image.png 48Кб, 500x345
500x345
Пока вы тут куличики в песочнице из питонов строите, на западе уже написали физбаз на асме и превзошли Си и Раст и прочий слоупочный хлам на порядок. Правда, только для avx2-процов, так что сильно не плачьте.

https://codegolf.stackexchange.com/questions/215216/high-throughput-fizz-buzz/236630#236630
Аноним 04/11/21 Чтв 08:33:42 2202589280
>>2202543
Это конечно мило, но ты не особо понимаешь что делаешь

>template < typename T > struct is_even
зачем оно шаблон, если оно не шаблон и вообще может быть лямбдой?

>array_to_check.at
>at
Медленно, убивает оптимизацию, никто этим не пользуется. Особенно в цикле где ты точно знаешь что оно не выйдет за пределы.

>std::variant<T, std::vector<T>>
Хотелось применить вариант, но это очень ректальный способ его применять
Аноним 04/11/21 Чтв 08:34:38 2202590281
>>2202583
Тащемто на С тоже можно юзать интринсики, хоть для авх512
Аноним 04/11/21 Чтв 14:16:49 2202872282
haskell.png 38Кб, 655x308
655x308
О! Специальная олимпиадка. Давно не было.
Ссу на крестоблядей ИТТ
Аноним 04/11/21 Чтв 16:53:08 2203117283
>>2202872
>боже, какой же мерзкий язык. просто неадекватно длинная программа. так намного лучше
>>2190621
Аноним 04/11/21 Чтв 17:45:02 2203178284
Чому до сих пор нет сравнения решений на разных яп по времени?
Аноним 04/11/21 Чтв 17:50:03 2203188285
Аноним 04/11/21 Чтв 17:54:18 2203193286
image.png 18Кб, 754x298
754x298
>>2201908

Вот те данные, которые использовались выше - https://www.sendspace.com/file/adiuau

Задача простая - перегнать их в бинарный формат.

Задача очень примитивная. Можете посоревноваться на красоту и скорость.
Дополнительная задача - выдать контрольную сумму данных.

Фишка задачи в том, что она настолько простая, что её выполнение не требует справочных материалов для языка, на котором вы пишите. Если вы не сможете решить эту задачу без щ=подсказок и справочников, значит вы не умеете программировать.

Аноним 04/11/21 Чтв 17:55:12 2203194287
Аноним 04/11/21 Чтв 17:57:44 2203199288
>>2202553
то бишь просто брутфорс паролей?
Аноним 04/11/21 Чтв 20:18:46 2203322289
raku.png 15Кб, 741x96
741x96
>>2202872
И вариант на сраке до кучи. Наверняка можно и короче, но уж смог как сумел
Аноним 04/11/21 Чтв 20:26:01 2203332290
>>2202589

>Это конечно мило, но ты не особо понимаешь что делаешь
Спасибо.

>зачем оно шаблон, если оно не шаблон и вообще может быть лямбдой?
По аналогии с компараторами less и greater. Шаблон - я хотел показать работу с разными типами в которых определены нужные операторы.
Как ты тут предлагаешь использовать лямбду? Объявлять в самой функции через auto шаблоном и потом юзать? Или откуда-то извне передавать? Ну такое, покажи пример.

>Медленно, убивает оптимизацию, никто этим не пользуется. Особенно в цикле где ты точно знаешь что оно не выйдет за пределы.
В курсе, не было каких-то причин делать доступ через [] я не заявлял, что это супер оптимизированный алгоритм. Там много мест, которые можно оптимизировать.

>Хотелось применить вариант, но это очень ректальный способ его применять
Я не так часто его юзаю. Опять же покажи более простой? Ну да, можно запилить структуру с optional или пару. Моя цель скорее просто показать, что такое бывает. Там много вариантов, как можно сделать.
Аноним 04/11/21 Чтв 20:27:02 2203333291
>>2203322
Перл покусал хачкель?
Аноним 04/11/21 Чтв 20:36:51 2203340292
>>2203332
Хотя в общем про at и перебор в цикле правильно, нет причин делать через at. Мне просто захотелось так.
Аноним 04/11/21 Чтв 20:46:26 2203343293
>>2203333
Не покусал, а конкретно погрыз. И не только хаскель, а всё хорошее, что попалось Ларри под руку. Получилось годно, ящитаю.
По духу всё тот же хакерский швейцарский нож "перл". Напрасно в сраку переименовали
Аноним 04/11/21 Чтв 20:49:46 2203346294
>>2202589
>>at
>Медленно, убивает оптимизацию
Схуяли? Проверки выхода за пределы включаются/отключаются флагами компилятора. В остальном at ничем не отличается от [].
Аноним 04/11/21 Чтв 21:32:11 2203388295
>>2203194
int to_binary(const char  source_filename, const char  dest_filename)
{
    FILE  source, dest;
    unsigned long long value;
    unsigned long long word = 0;
    if (sizeof(unsigned long long) != 8)
    {
        perror("Platform not supported");
        exit(253);
    }
    source = fopen(source_filename, "rt");
    if (source == 0) { perror("Unable open source file"); exit(255); }
    dest = fopen(dest_filename, "wb");
    if (dest == 0) { perror("Unable open destination file"); exit(254); }
    while (!feof(source))
    {
        fscanf(source, "%llu\n", &value);
        if (fwrite(&value, 8, 1, dest) != 1)
        {
            perror("Data write error");
            exit(253);
        }
        word += value;
    }
    fclose(dest);
    fclose(source);
    return word;
}
Аноним 04/11/21 Чтв 21:34:54 2203391296
>>2203388
#include <locale>
#include <codecvt>

void ConvertSpaces(std::string filename)
{
    const std::locale empty_locale; // = std::locale::empty();
    typedef std::codecvt_utf8<wchar_t> converter_type;
    const converter_type⚹ converter = new converter_type;
    const std::locale utf8_locale = std::locale(empty_locale, converter);

    std::wifstream stream(filename);
    if (!stream.is_open())
        throw "Unable open file";
    stream.imbue(utf8_locale);

    std::wofstream outstream(filename + ".bin");
    if (!outstream.is_open())
        throw "Unable open file";
    outstream.imbue(utf8_locale);

    for (wchar_t c; stream.get(c); )
    {
        if (c == ' ')
            outstream << (wchar_t)0x00a0;
        else if (c == '⚹')
            outstream << (wchar_t)0x26b9;
        else
            outstream << c;
    }
}
Аноним 04/11/21 Чтв 21:35:49 2203393297
    FILE ⚹ source, ⚹dest;
Аноним 04/11/21 Чтв 21:40:01 2203401298
>>2203388
>>2203391
ну и пиздец. если язык подразумевает столько писанины для простой задачи - то может ну его нахрен?
Аноним 04/11/21 Чтв 21:41:00 2203402299
>>2203401
На них пишут языки с меньшим количеством писанины.
Аноним 04/11/21 Чтв 21:42:55 2203407300
>>2203402
тоже правда. но использовать их для чего-то кроме этого - тот ещё ад
Аноним 04/11/21 Чтв 21:43:00 2203408301
>>2203401
Это две абсолютно разные задачи.
Полное решение вот тут, но я форшманулся с кодом символа 0x26b9, поэтому там пропали звёздочки.
Ну а второй пример, это подарок местным.
Аноним 04/11/21 Чтв 21:46:12 2203415302
>>2203408
это я заметил - но в обоих случаях выглядит одинаково страшно, так что я отметил оба
Аноним 04/11/21 Чтв 21:47:05 2203418303
>>2203193
>Задача простая - перегнать их в бинарный формат.
В какой? А они сейчас не в двоичном представлении что ли? Ммм?
Аноним 04/11/21 Чтв 21:48:00 2203419304
>>2203408
>> тест звёздочек

int to_binary(const char ⚹ source_filename, const char ⚹ dest_filename)
{
    FILE ⚹source, ⚹dest;
    unsigned long long value;
    unsigned long long word = 0;
    if (sizeof(unsigned long long) != 8)
    {
        perror("Platform not supported");
        exit(253);
    }
    source = fopen(source_filename, "rt");
    if (source == 0) { perror("Unable open source file"); exit(255); }
    dest = fopen(dest_filename, "wb");
    if (dest == 0) { perror("Unable open destination file"); exit(254); }
    while (!feof(source))
    {
        fscanf(source, "%llu\n", &value);
        if (fwrite(&value, 8, 1, dest) != 1)
        {
            perror("Data write error");
            exit(253);
        }
        word += value;
    }
    fclose(dest);
    fclose(source);
    return word;
}

Аноним 04/11/21 Чтв 21:49:11 2203420305
>>2203419
кидай на pastebin - там и подсветку синтаксиса можно выбрать
Аноним 04/11/21 Чтв 21:49:21 2203421306
>>2203418
Нет, в текстовом. Это очевидно. Ты ведь их даже не скачивал. Не смотрел внутрь.

Аноним 04/11/21 Чтв 21:51:08 2203427307
>>2203421
>Нет, в текстовом.
А это что по-твоему? Астральный формат?
Аноним 04/11/21 Чтв 21:51:24 2203428308
>>2203421
да он же тебя тралит, лол
Аноним 04/11/21 Чтв 21:52:58 2203432309
>>2203428
Не траллю, а указываю на кривую постановку задачи.
Аноним 04/11/21 Чтв 21:59:35 2203439310
image.png 72Кб, 1051x487
1051x487
image.png 65Кб, 1051x487
1051x487
>>2203432
Забавно что даже после предоставленного решения ты настаиваешь на кривой постановке задачи. Походу ты не отличаешь текстовые данные, от двоичных. Я сегодня в хорошем настроении и научил тебя чем они отличаются.
Аноним 04/11/21 Чтв 22:01:06 2203442311
>>2203432
вполне обычное разделение. если все файлы звать бинарными - то просто проебётся весь смысл
Аноним 04/11/21 Чтв 22:09:17 2203448312
>>2203442
>если все файлы звать бинарными - то просто проебётся весь смысл
В словах "преобразуйте в бинарный формат" смысла не больше. КАКОЙ ФОРМАТ БЛЯДЬ? Или я что-то пропустил и у нас только два способа представления информации осталось: ASCII и некий бинарный?
Аноним 04/11/21 Чтв 22:13:43 2203453313
hexdump.png 66Кб, 719x497
719x497
>>2203439
Что скажешь насчет этого?
Аноним 04/11/21 Чтв 22:17:27 2203459314
>>2203448
Не копротивляйся.
Вот те две картинки выше, они показательны.
Так удивительно совпало, что 100 чисел заняли ровно 1000 байт - по десять байт на число. Это совершенно случайно, потому что такой набор данных. Те же сто чисел в двоичном формате заняли ровно 800 байт - по восемь байт на число.

Все эти json и yaml съели тебе мозги и ты не знаешь БАЗОВЫХ вещей. Если даже после всей предоставленной информации ты не понимаешь разницы между текстовым и двоичным форматом, то у меня для тебя плохие новости.
Аноним 04/11/21 Чтв 22:18:22 2203460315
>>2203448
>некий бинарный
почему некий? для большинства типов - просто сделать копию их байтового представления и сохранить в файл
>у нас только два способа
эти два способа - практически самые известные, так что большинство байтоёбов должны успешно угадать, что имелось в виду. для тех же плюсов это создать файл с/без флагом, а дальше просто хуярить обычный вывод
Аноним 04/11/21 Чтв 22:20:19 2203462316
>>2203453
Похоже на ASCII, представленный в wchar_t на POSIX системе, где sizeof(wchar_t) = 4

Оверхеад сумасшедший, но почем бы и нет?
Аноним 04/11/21 Чтв 22:23:14 2203463317
>>2203462
Это UTF-32. Просто как пример представления текста в несовместимом с ASCII виде
Аноним 04/11/21 Чтв 22:25:09 2203464318
>>2203418
а ваще мы тут хуями меряемся, а не ракеты в космос запускаем. нахуяришь в крутом бинарном формате вместо обычного - красава, сделаешь файл в дохуя раз больше - мы с тебя покекаем
Аноним 04/11/21 Чтв 22:26:20 2203465319
>>2203463
И тем не менее, на скриншоте текстовый формат, а не двоичный. Это легко определяется при просмотре.

Аноним 04/11/21 Чтв 22:27:31 2203466320
>>2203465
минимальная обфускация легко пофиксит это
Аноним 04/11/21 Чтв 22:31:25 2203468321
>>2203460
>так что большинство байтоёбов должны успешно угадать
Байтоёбы, в отличие от тебя, зададутся вопросом: "в какой бинарный формат?".
Даже в вопросе двоичного представления целых чисел есть куча нюансов типа порядка байтов (BE/LE) и кодирования отрицательных чисел, не говоря уж о всяких BCD
Аноним 04/11/21 Чтв 22:36:12 2203469322
>>2203468
тогда тз будет ебануто сложным. имхо если твой язык успешно считывает бинарник после записи - то всё заебись
Аноним 04/11/21 Чтв 22:40:50 2203473323
>>2202553
f n = filter ((>0).sum).replicateM n
как-то изи
Аноним 04/11/21 Чтв 23:18:33 2203493324
>>2203194
Двачую, это делается однострочником
>>2203193
>$OUT.write: pack "N", $_.Int for $*IN.words
Аноним 04/11/21 Чтв 23:21:45 2203496325
raku.png 9Кб, 503x81
503x81
Аноним 05/11/21 Птн 00:44:39 2203525326
Предлагаю другую задачку:

На прямоугольном поле для игры в морской бой размером M×N расположено несколько прямоугольных кораблей. Корабли не соприкасаются друг с другом. Ваша задача — определить всевозможные типы кораблей на поле и число кораблей каждого типа. Два корабля относятся к одному типу, если их размеры совпадают (корабли, которые могут быть получены друг из друга поворотом, также относятся к одному типу).

Входные данные
Первая строка входных данных содержит два положительных числа M и N, не превосходящих 1000, задающие размеры поля. Далее идет M строк, каждая из которых состоит из N символов. Символ `1' означает, что соответствующая клетка поля занята кораблем, символ `0' — что свободна. Пробелов в строке нет.

Выходные данные
Программа должна для каждого обнаруженного типа корабля вывести одну строку, содержащую три числа. Первые два числа задают размеры корабля (первое число должно быть не меньше второго), третье число задает количество кораблей данного типа на поле. Строки в выводе должны быть отсортированы по первому числу, затем по второму числу.

Пример входных данных

6 10
0111000011
0000011011
0100011000
0101011011
0100000000
0001111011

Пример выходных данных

1 1 1
2 1 2
2 2 2
3 1 2
3 2 1
4 1 1
Аноним 05/11/21 Птн 05:22:06 2203574327
>>2203332
>По аналогии с компараторами less и greater
Это наследие С++98 , тогда не было лямбд. С++ сильно поменялся после С++11, и много что есть в языке и стандартной библиотеке устарело.

>Как ты тут предлагаешь использовать лямбду?
См примеры в https://en.cppreference.com/w/cpp/algorithm/transform , например

>можно запилить структуру с optional или пару
В твоем случае надо пилить две отдельные функции

Типичный юзкейс для варианта - хранить разнородные объекты в векторе, например.

>>2203346
at проверяет всегда, и это всегда сильно медленнее прямого доступа к памяти.
Аноним 05/11/21 Птн 09:59:56 2203600328
Аноним 05/11/21 Птн 10:13:52 2203602329
>>2190286 (OP)
>>2203600
Поясню.
Это студенческая задача. Идешь по массиву ОДИН раз, считаешь сразу произведение, неубывание, хуение, ебение - ставишь флаги.
А после выхода из цикла сравниваешь флаги и делаешь вывод.
Аноним 05/11/21 Птн 12:21:49 2203641330
Аноним 05/11/21 Птн 13:34:08 2203679331
Аноним 05/11/21 Птн 17:23:08 2203843332
>>2203574

>Это наследие С++98 , тогда не было лямбд. С++ сильно поменялся после С++11, и много что есть в языке и стандартной библиотеке устарело.
См примеры в https://en.cppreference.com/w/cpp/algorithm/transform , например
А как в этом случае мне делать декорацию функции на этапе компиляции? Тут я хотел показать декорацию функции обобщенными функторами на этапе компиляции. Это же можно сделать и через лямбды, но выглядеть будет менее читабельно.
То что ты привёл в ссылке отражает другой механизм, когда мы передаём что-то в сигнатуру функции, я же делал параметризацию типами.

>В твоем случае надо пилить две отдельные функции
Это как и зачем? Что за функции, как функции связаны с возвращаемым значением? Типа одна функция возвращает одно значение, а другая другое? У нас точка входа одна единственная функция. Нужны примеры в коде.

>Типичный юзкейс для варианта - хранить разнородные объекты в векторе, например.
Что-то не припомню, что в плюсах, как в питоне можно такое провернуть. Только если не через any или void указатели. Нужны примеры в коде.
Аноним 05/11/21 Птн 17:25:55 2203850333
>>2203525
Типикал задачка на островки и здания, только расширенная. Решается либо рекурсивно либо итеративно обходом графов. Примеров в иннете куча.
Аноним 05/11/21 Птн 17:27:11 2203851334
>>2203850
Жду твоего решения
Аноним 05/11/21 Птн 17:41:34 2203863335
>>2203851
Я тебе уже все вводные дал для решения. Сам подумать не хочешь?
Аноним 05/11/21 Птн 17:52:09 2203881336
>>2203863
За меня-то не беспокойся, я уже с решением сижу, жду твоего
Аноним 05/11/21 Птн 18:54:20 2203922337
>>2203525
изи же. 3 строчки кода максимум
Аноним 05/11/21 Птн 18:55:56 2203923338
>>2203922
Пока не вижу ни одной
Аноним 05/11/21 Птн 19:01:34 2203927339
>>2203641
>Вообще не понимаб, как у тебя скорость уровня жаваскрипта в браузере
Выше скорость объяснена. Насчёт Javascript в браузере - докажи.
Аноним 05/11/21 Птн 21:12:14 2204007340
Аноним 05/11/21 Птн 21:25:17 2204015341
>>2204007
Проверка на внимательность
Аноним 05/11/21 Птн 21:26:30 2204020342
Аноним 05/11/21 Птн 21:27:35 2204022343
>>2204020
ДА ТЫ ОХУЕЛ ПЁС! Код гони
Аноним 05/11/21 Птн 21:31:02 2204024344
>>2204022
Я в нём из-за тебя чуть баги не начал искать. Представь каково ему! Ему к психотерапевту надо, а не на панель
Аноним 05/11/21 Птн 22:01:00 2204045345
Аноним 05/11/21 Птн 22:17:07 2204057346
Аноним 05/11/21 Птн 22:22:37 2204062347
>>2204057
Блядь, хачкель нормальный красивый язык. Но ты устраиваешь какую-то срань со своим гольфом
Аноним 05/11/21 Птн 22:23:36 2204064348
>>2204057
Ну а где чтение и вывод? Почему нет импортов? Где в конце концов main?
>>2204062
Двачую, пишет как на перле
Аноним 05/11/21 Птн 22:23:37 2204065349
Аноним 05/11/21 Птн 22:30:02 2204069350
Аноним 05/11/21 Птн 22:31:58 2204071351
>>2204064
>как на перле
Звучит как вызов
мимо перловик
Аноним 05/11/21 Птн 22:33:55 2204072352
Аноним 05/11/21 Птн 22:55:11 2204083353
raku.png 40Кб, 678x290
678x290
>>2204071
>>2203525
Пришла рака надавать вам всем по сраке.

В общем-то, можно было сделать однострочником, но я решил сохранить код читаемым.

https://tio.run/##ZU9LboMwEN37FLMIDQTi4E0XRomybDe9QBRVVnAKCR8Lk0iAvO8JeoeegR1H6UWosaO0VWczT2/eezMjeJU9jmPegLuVSSpkAI7pXoQ06bSwhtni@QVnacElzplwOwS6NKwPibsi/ioA@uYNPX7o8LEqc1hvYIdFKWEJhgiA7BV@YjJBysMVjy8HTmG50el6GwMb6LTdmTdyWvn1/ql5NfQ7sh9634@MwN6HmRC8iOlf/cekpzHPeM2jW9yPkt2UzCpbRc9XpCKE7KvdqUwLmMM8gNkrlmVV6@sWyvfhWFb/1@Iryy5cartkzeTQ4cHdbobGaMOjcQwJIaEuQlBou4HEwjCcIPnNmkJmbNhv
Аноним 05/11/21 Птн 23:12:36 2204088354
>>2204083
как же форматирование заёбывает. входные запилил, с выходными возиться уже впадлу
https://pastebin.com/WsYJqEXy
Аноним 05/11/21 Птн 23:43:06 2204104355
Аноним 07/11/21 Вск 17:01:01 2205320356
>>2204104
мне в принципе не нравится идея использовать не дефолтый хаскелевский формат для ввода - вывода - уж больно дефолт приятный
Аноним 09/11/21 Втр 16:12:55 2207920357
>>2204104
>import
>import
>import
>import
>import
>import
Господи, ну и помои.
Аноним 10/11/21 Срд 12:56:31 2208691358
Аноним 16/11/21 Втр 14:41:54 2213927359
>>2190800
Дед успокойся, в пистон уже АОТ компиляцию завезли
Аноним 16/11/21 Втр 15:18:51 2213960360
>>2190323
Желательно всё же считать умножение только тогда, когда уже проверил элементы на возврастание. А то вдруг там какая-то неумножаемая фигня которая переполняет всё.
Аноним 16/11/21 Втр 22:14:22 2214272361
>>2213927
Ты про нуитку что ли, которая ускоряет чуть более, чем никак?
Аноним 20/11/21 Суб 03:26:36 2217580362
16190379373930.png 108Кб, 300x300
300x300
Проиграл с треда

мимо сеньор
Аноним 20/11/21 Суб 15:10:03 2217895363
>>2217580
Блесни навыками, сеньёр
Аноним 20/11/21 Суб 15:37:35 2217910364
image.png 409Кб, 1000x800
1000x800
>>2217580
>пик
это только для лохов звучит прикольно
на деле большинство таких "фразочек" это бесполезные трюизмы и переливание из пустого в порожнее (как и сам теоркат, если говорить о нем не как о языке, а как об отдельной науке)
Аноним 20/11/21 Суб 15:53:55 2217920365
Можно и целые числа так определить: (Z,+) это группа Гротендика категории конечно-порожденных абелевых однообъектных категорий, в которых каждый морфизм - это изострелка.

На самом деле так, скорее всего, порочный круг где-то появится, как если \mathbb {R} вводить через пополнение, но кого это ебёт.
20/11/21 Суб 20:16:56 2218111366
>>2217910
>empty set
Там ошибка, это просто initial object in Set category.
Аноним 20/11/21 Суб 20:17:55 2218112367
>>2217895
Смысл блистать навыками в байтоебском треде где челы решают задачку на циклы?
Аноним 20/11/21 Суб 23:38:31 2218288368
>>2218112
Чтобы анон поржал с сеньёра.
Аноним 21/11/21 Вск 04:32:39 2218412369
16127241452330.png 391Кб, 800x600
800x600
Аноним 21/11/21 Вск 11:07:53 2218481370
>>2218412
>>2217910
Очередной "математика бесполезна" клоун. За теорией категорий будущее.
Аноним 21/11/21 Вск 16:20:33 2218802371
>>2218481
Мимо. Мемы были про понты шизов, которые помешаны на "абстрактной чепухе", особенно про nlab-шизов и их идиосинкратический groupspeak. За теоркатом не будущее, а уже НАСТОЯЩЕЕ, если говорить о языке современных математиков.
Аноним 21/11/21 Вск 21:40:46 2219139372
Аноним 22/11/21 Пнд 08:00:11 2219343373
>>2219139
>тифарет
о, да тут ровные пацанчики сидят, оказывается
хотя неудивительно, ибо недавно пара ребят отписалась, что ленга штудировала, а это святое
Аноним 23/11/21 Втр 17:54:21 2220517374
Аноним 23/11/21 Втр 22:22:46 2220844375
>>2190383
ты больной чтоли? зачем вы ему эту упорость с функциями пишете, ему нужен обычный пробег в мейне ушлепки

они тебя тролируют, отчисляйся
Аноним 24/11/21 Срд 17:03:42 2221357376
>>2220844
Он тебя отчисляет. Траллируй
Аноним 29/11/21 Пнд 07:24:38 2224902377
>>2191141
А я частенько на более-менее серьёзных проектах видел связку nginx+apache. nginx отдаёт статику и редиректит, а если запрос пришёл на php страницу - отдаёт запрос на apache.
Аноним 29/11/21 Пнд 07:26:45 2224903378
>>2192792
C# таки компилится, но во время исполнения, как и Java. Но можно и ngen заюзать, будет AOT.
Аноним 29/11/21 Пнд 07:29:27 2224905379
>>2192400
> Господин, а почему на дотнет в три раза меньше вакансий, чем на джаву?

Последствия многолетней стратегии бизнеса Майков по продаже Винды. Сейчас C# умеет запускаться и под Линем. Оттого, набирает популярность.

> Почему asp net за столько лет все еще проигрывает экосистемой спрингу?

ASP.NET ебёт в рот и в жопу любой фреймворк жабы.

> Почему сишарп и фарш не используются в компаниях уровня FAANG

Потому что правовые затыки.

> (а даже с++используется)?

Потому что C++ быстрый и потому что C++ свободный.
Аноним 29/11/21 Пнд 09:00:31 2224911380
>>2224905
>ASP.NET ебёт в рот и в жопу любой фреймворк жабы.
Web.Forms топчик!
29/11/21 Пнд 11:11:19 2224973381
>>2224905
> Сейчас C# умеет запускаться и под Линем. Оттого, набирает популярность.
В твоих влажных мечтах.
> ASP.NET ебёт в рот и в жопу любой фреймворк жабы.
В твоих влажных мечтах.
> Потому что правовые затыки.
Потому что сирешётка ваша нахуй никому не впёрлась.
Аноним 29/11/21 Пнд 12:04:49 2225016382
>>2224973
Пиздец ты еблан. C# и до кучи WinForms под Linux живут лет эдак... точно больше пяти.

DotNet Core хуй его знает с какого года живёт под Линуксами. Более того, в Kubernetes живёт и здравствует.

Не позорился бы ты своей некомпетентностью.

>никому не впёрлась.
Ну точно еблан, ибо только еблан говорит за всех.
Аноним 29/11/21 Пнд 18:52:02 2225387383
>>2225016
>WinForms под Linux
Ну и как мне твои винформы запустить под линуксом? Ну или WPF? как запустить?
Аноним 29/11/21 Пнд 20:30:45 2225471384
Аноним 29/11/21 Пнд 22:26:29 2225552385
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов