Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[8]

Рекомендованные сообщения

 

 

готовые их блять решения не устраивают

 

Их не не устраивают готовые. Их жаба душит.  :smile:  


 

жаба скрипт. Азазхаызахзахзхахза

 


 

DB

59221730.png


Я - гений, ёпта

bfe7003be27e8e81ce6a7d2d8192e9ae.jpg


22


msg-93176-0-72842500-1438846470_thumb.jpg

Поделиться сообщением


Ссылка на сообщение

@@Kant оцени убийцу авто-шашек 

 

батлрояль на 691200 тетрис ботов на одной видеокарте в одном фреймбуфере

 

 

 

Описание, коротко - каждая доска тетриса использует 220 бит (3 пикселя*4(цвета)*24 бит в каждом=288 бит, пустые биты хранят логику)

и рисую максимальное количество полей(ботов) на разрешение экрана, у меня 1920*1080/3=691200

 

бот очень простой и умирает за минуту собрав 30-60 очков (сложный/нормальный крашит драйвер когда больше 10тыщ и он слишком медленный, я пробовал)

 

 

 

как запустить у себя в браузере все 691200 ботов:

1. запустите хром командой chrome.exe --use-angle=gl

2. перейти по ссылке https://www.shadertoy.com/view/3dlSzs (там сам шейдер/исходники)

3. в редакторе на шадертое выбрать Common и удалить #define no_AI

4. (также в Common) установить #define AI 199 равным 0, тоесть #define AI 0

5. нажать кнопочку компиляции(под окном редактора на шадертое) и нажать фулскрин

 

на моей 750нвидии было гдето 2ФПСа на максимальном количестве ботов

 

както так

ElGobedano, Nikki Sixx, SKYnv и 13 другим понравилось это

Поделиться сообщением


Ссылка на сообщение

Хира не забудь дать денех когда в сони устроишься !


Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
 

Поделиться сообщением


Ссылка на сообщение

 

я вот иногда недоумеваю откуда у заказчиков берутся кейсы когда "подрядчик год делал - нихуя не сделал"

а теперь понятно откуда

земля тебе конечно пуховик, но раз ни за что не отвечаешь - можешь и поебстись с этим, вай нот

Я могу мотивацию заказчиков объяснить. Они давно уже хотели такую систему под свой бизнес сделать, готовые CRM все их задачи не решают. Хотели заказать у IT компаний такую систему с нуля, и им сказали 5 лямов отдавайте. За внедрение в какие-то готовые CRM'ки без расширения функционала - 500к. Они подумали, что нанять студентов за печеньки, и посмотреть результат через несколько месяцев - будет профитнее. Хотят сэкономить одним словом. Но с таким подходом ничего толкового не сделать - я это понимаю, поэтому поебусь несколько месяцев, выкатим хоть какой-то результат, опыта наберусь полный рот и портфолио пополню. А там с этим багажом в норм фирму джуниором пойду. 

 

заказчики долбаебы. если их система стоит 5 лямов значит она стоит 5 лямов

и дешевле 5 лямов она им не обойдется

скорее всего они потратят лям на ветер и поймут что получили нихуя

я честно не представляю как студенты могут запилить быстро систему которая будет работать и делать всё то что они хотят.

но пусть пробуют. наверное они тоже решили поэкспериментировать и чему-то научиться

пацаны, пытаюсь вот разобраться в оценке сложности алгоритмов

поправьте, если ошибаюсь (можете гнобить офк)

 

java.util.ArrayList

Вставка элемента будет в среднем - O(n)

Нам ведь не важно оценивать здесь худший случай (О большое)? (ибо в худшем случае массив перекопируется 3 раза)

Как понять, когда какая метрика и когда важнее: худший случай [O()] или средний случай [O()+]?

 

Надеюсь, сформулировал вопрос правильно

с чего вдруг вставка O(n)

вставляй хоть 1 элемент хоть 1000000 - один хуй будет один и тотже набор операций с memcopy - как ты правильно сказал 3 копирования (головы, самих вставляемых данных, хвоста)

 

что важно оценивать зависит от того с какой целью ты оцениваешь

в общем случае нужно уметь оценивать всё и вся

на практике зачастую тебе надо лишь знать как отличаются трисет, хешмапа и арейлист


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
(изменено)

ну ващета надо все элементы справа двигать для вставки в arraylist, это те не связный список


Изменено пользователем Matriarch

Поделиться сообщением


Ссылка на сообщение

если вы вставляете в коллекции построенные на массивах куда-то кроме конца - вы долбоеб


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

ну ващета надо все элементы справа двигать для вставки в arraylist, это те не связный список

это одна операция memcopy независимо от количества элементов


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Охуенно, вот тебе надо воткнуть середину массива длиной 10 новый элемент
Сколько по времени это будет выполняться?
А в середину массива из 1000 элементов?
А в середину массива из 100000000000000000 элементов?

И по памяти такая же ебалень.
В чем смысл тогда твоей замерки сложности по кол-ву операций? Тем более что она там не одна будет, это будет n копирований и n записей, хоть как угодно абстрагируй это в одной функции

Поделиться сообщением


Ссылка на сообщение

блять заебали мерить сложность, оперативка косарь стоит суки

`KV понравилось это

Поделиться сообщением


Ссылка на сообщение
(изменено)

хуйня 


Изменено пользователем Rooster

Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение

блять заебали мерить сложность, оперативка косарь стоит суки

если тебе бомбанёт n^2 памяти на любой мало-мальски приличный список там тебе нужна будет серверная планка на 128ГБ которая стоит даже не косарь баксов

Поделиться сообщением


Ссылка на сообщение

винда вообще не дает выделять непрерывные блоки больше 2гб

думаю в линуксах тоже что-то подобное есть


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

в линуксе можно

 

я знаю как бомбит 35к^2 на один блок

Поделиться сообщением


Ссылка на сообщение

пацаны, пытаюсь вот разобраться в оценке сложности алгоритмов

поправьте, если ошибаюсь (можете гнобить офк)

 

java.util.ArrayList

Вставка элемента будет в среднем - O(n)

Нам ведь не важно оценивать здесь худший случай (О большое)? (ибо в худшем случае массив перекопируется 3 раза)

Как понять, когда какая метрика и когда важнее: худший случай [O()] или средний случай [O()+]?

 

Надеюсь, сформулировал вопрос правильно

Вставка в конец O(1) или O(n) если нужно ресайзить.

Вставка в начало O(n) 

Вставка в середину формально O(n-m) или O(n) если нужно ресайзить.

типо операция копирования массива или сдвига выполняется через регистры по одному адресу за одну итерацию.

 

Хотя если проц современный и там AVX512 то там это все может произойти за меньшее число итераций, ибо может сразу по 512 бит копировать. По 8 адресов за раз.

 

Но это типо условности железа, поэтому O(n)

 

А по поводу этого, если тебе надо добавлять в конец, то аррей лист пойдет ибо будет в основном константное время.

 

Если тебе надо добавлять по индексу, то он тоже пойдет. 

Если тебе надо удалять вставлять дохуя в середине не по индексу а в итерации, то лучше линкедлист и листитератор. Единственное адекватное применение линкед листа.

https://i.imgur.com/j3nqsRo.png

 

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

Поделиться сообщением


Ссылка на сообщение

не уверен, что там используют AVX и прочее

считать ведь ничего не надо, а он именно для подсчетов, а их инициализация сожрет всю производительность скорее всего

 

я уже когда-то давано читал, там всё что делают это для выровненных указателей фигачат по машинному слову, вместо байтов, а если не выровнено, то по байту

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


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

 В середину массива они добавляют  :lol:. Я уже не помню когда последний раз .push юзал

ок .concat (иммутабельный .push) юзаю иногда


Все добавления/удаления идут в бд, а бэк и фронт просто преобразуют данные через map/filter/reduce. А Index походу в гугле работает, чтобы о таких вещах задумываться


Изменено пользователем .felix

Поделиться сообщением


Ссылка на сообщение

Ну так указатель и равен машинному слову.

Массив - набор указателей в памяти.

 

Было бы глупо JVM не утилизировать конвеерные возможности avx в memcpy

Поделиться сообщением


Ссылка на сообщение
(изменено)

Охуенно, вот тебе надо воткнуть середину массива длиной 10 новый элемент

Сколько по времени это будет выполняться?

А в середину массива из 1000 элементов?

А в середину массива из 100000000000000000 элементов?

И по памяти такая же ебалень.

В чем смысл тогда твоей замерки сложности по кол-ву операций? Тем более что она там не одна будет, это будет n копирований и n записей, хоть как угодно абстрагируй это в одной функции

да ты прав. я попутал

почему-то у меня было представление что memcpy выполняется за O(1), т.е. скорость не зависит от объема копируемого


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

ну ето бан

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...