-
Сообщений
129 -
Зарегистрирован
-
Посещение
-
Время онлайн
2д 7ч 9м 46с
Все публикации пользователя Kurku
-
сразу видно ты ебучий студент 0 опыта в коммерческой разработке тебе докер нужен для легковесной изоляции окружения, чтоб на любом кудахторе всё выполнилось одинаково с минимумом действий, а не дрочкой со скриптами и переменными чувак я знаю что такое контейнеры у нас в унике автотесты к домашкам в контейнерах поставляются + я сам писал докерфайлы ручками но это оверкил ради того чтобы написать скрипт на коленке, который будет исполняться на одной единственной машине цель которого визуализировать какие-то данные и операции ну вот нахуя если я могу просто nix-shell -p php touch index.php php -S localhost:8080 & ну вот зачем усложнять себе жизнь на ровном месте
-
настраивать докер ради такого и собирать свои пакеты эт пиздец типа это как заместо того чтобы воспользоваться комбинацией awk/sed, переписывать эти утилиты каждый раз на пайтоне а чтобы не переписывать ты еще пакет соберешь / докер файл напишешь
-
можно но зач в пыхе оно всё уже из коробки сверху еще сахар в виде heredoc, бектиков и прочего в теории даже написать свой личный шаблонизатор не проблема, но просто зачем
-
короче, бесит невероятно, когда перед решением задачи стоят всякие мелкие дурацкие душные преграды хочется просто брать и тут же делать то, что хочешь, моментально
-
я думал для этого придумали джанго админку мне кажется изкоробочый шаблонизатор на любом языке тоже самое даст ну даст-то даст, но он реально изкоробочный в твоём языке?! или ты это откуда из 3d-party тащишь как зависимость ты получишь только шаблонизатор или еще сверху скачаешь пол планеты на всякий случай? у тебя есть лайтовый сервак, который из коробки умеет эти скриптики прям из папки запускать или надо еще чот придумать чтобы подключить оное к тому что ты хочешь каждый раз будешь всё настраивать чтобы что-нибудь просто потестить по-быстрому? допустим ты это всё делаешь на новой машине, прямо по ssh в консоли или еще по какой-то причине когда ты мягко говоря немного не в полном окружении а я как бы могу просто поставить пакет из пакетного менеджера моей системы или через nix/guix вытянуть свой php со всеми батарейками и тут же запуститься и начать что-то делать сделать port forwarding и всё у меня php-вебморда
-
ну тут скорее обилие информации раньше у тебя была книга по фортрану одна единственная, в библиотеке твоего райцентра ты брал читал на чердаке лёжа и не жаловался а ща этого говна навалом и ты сидишь и теряешься, думая как бы сэкономить ресурсы поэтому в данный момент развития истории человечества оптимальный маршрут - случайный
-
Прям без знаний, гитхаба, проектов пытаться? Как-то стремно. Или просто потестить как рынок вообще реагировать будет? Но даже хз есть ли смысл, потому что картинку для себя составил Спасибо, откажусь, еще не так отчаялся, есть возможность поучиться на перспективу. А вот тут база. Значит ситуация такова : 1) Php/js - на бумаге легкий вкат, вакансий много, есть даже где без опыта берут, ну и обычные адекватные требования. На деле иллюзия простоты : почти все они состоят из 1С-Битрикс или 1С-Битрикс и другие CMS. Правильно ли я понимаю, что это не хорошая вакансия и возможность для вката, это надо обходить стороной? Выглядит как болото, я тип буду клепать на конструкторе сайтики и допиливать их? Ну как бы о перспективах и развитии тут заикаться не буду. Есть laravel/symfony - но их также мало, как и плюс минус остальных. Ещё мне объяснили, что такие ООО ставят без опыта и такие требования, а потом лутают тысячи откликов, перебирая лучший вариант, готовый пахать за еду. Кароче, это походу ловушка. 2) Java - с вакансиями более менее норм, но только на удаленке. Однако тут примерно каждая третья вакуха - требуется вышка или хотя бы хантят 3-4 курс (я уже начал посматривать вузик куда бы пойти со следующего года на заочку ) Есть и те, которые готовы стажировать, даже не студентов, пускай и за еду видимо. Такого дна как в пыхе я не видел. Ну так я почекал всякие банки, вб, финтех какой-то еще - реально вакансии джавы висят и чуть ли готовы не стажировать, да (но офк еще попади туда), с пыхой ничего такого не видел. Но офк сложно, энтерпрайз, всё серьезно, очково немного, поверить что смогу пробиться туда. А, есть еще школа21 от сбера, которая дает шансы вкатиться, в том числе через джаву, но если даже и пройду туда, то мне нужно всё бросать и переезжать, вряд ли соглашусь, они разбросаны в какой-то залупе все. Выглядит норм, может есть у кого опыт? 3) Есть еще C# - но я так и не понял, какой толк выбирать его, он весь такой пиздатый и пытается быть лучше джавы, и вроде там интересно поучавствовать в проектах с нуля без легаси, но на деле ни каких-то стажировок и востребованности не видел, и вакух меньше, они еще и почти все фулстэк. Ну литры такой годной уверен там нет или меньше Кароч, подскажите, как поступить лучше : №1 Откинуть ссыкование, и упороться в джаву, может и не так всё там сложно, попытаться пробиться через всякие стажировки хоть куда. Ну на крайняк свалить в пайтон/жс, на том багаже знаний, уже легче будет (или не давать мозгу даже шанса на запасной аэродром и идти до победы?) №2 На 95% уверен, что смогу освоить пыху и/или жс и попытаться вкатиться спидраном, что-то связанное с ларавелем может получиться найти, и там уже упорюсь либо в жс, если вкатит фронтэнд, если нет, то пойду в го/ноду, кароч что перспективно и востребованно просто пойди и начни делать что-нибудь придумай какой-то проект или просто повтори что-то существующее если сомневаешься какую технологию выбрать из двух выбери любую брось монетку просто покрути рулетку гадай на книге перемен нет разницы откуда ты пойдешь когда в микроволновке греется рамен тебя никто не ограничивает выучив php потом выучить джаву а выучив джаву для личных целей выучить php и python а когда прижмёт ты и C++ выучишь если графикой серьёзной займёшься php например стоит выучить просто за то, что на нём очень приятно писать мелкие утилиты с вебмордой (in-house) он в этом плане почти как bash для консоли интерполяция строк, пакет всё включено (работа с сессиями, с query параметрами, прочая дичь) возможность дёргать программы установленные на машине с лёгкостью и передавать туда параметры ты только посмотри на это говно <!doctype html> ... <? $query = $_GET["query"]; $file = "results_by_year.txt"; $results = trim(`cat $file | grep "{$query}"`); ... типа берешь пишешь башпортянку, пыхопортянку, js-порятнку всё это склеиваешь в одну большую портянку за минут 10 делаешь php -S localhost:1234 explode explode , немного стилей и можно выводить на экран пишешь localhost:1234?query=2024 и он тебе выводит строки из файлика, где есть 2024 ну это немножко выдуманный пример можно что-то более полезное делать я вот недавно на коленке сварганил себе file watcher javascript дёргает пыху каждые 500 ms, пыха смотрит изменились ли файлы на твоём компе с помощью $_SESSION и filemtime и если есть какие-то изменения в папке, то что-нибудь компилируем... отрисовываем заново интерфейс делал, чтобы набирать текст в vim-е в scribble и сразу видеть как формулки математические рендерятся катехом в моём браузере типа в теории конечно можно сделать на любом другом языке на практике тебе будет тупо лень даже разбираться как всё это говно склеить и ты в итоге не сделаешь а вот что-то более навороченное в плане состояния, уже на php заебет, потому что он типа stateless
-
ну да фича =)) хотя существуют определенные straw man аргументы, почему это типа хорошо
-
сочувствую то ли дело мобильные разработчики, на маке с чистым столом (жена отполировала), еще и пыль иногда собирается от простоя ну на мак я бы ради дизайнерского/художественного софта пересел там реально есть киллер штуки типа Glyphs я вот думаю можно как-нибудь этим заняться, типа потенциальный рынок и спрос на ПО на других платформах таки большой, а еще он огромный на хоть сколько-нибудь юзабельный FOSS
-
ну я не курю разве что, но в остальном ровно так я/мой рабочий стол и выглядят прикольно кстати, реально работает но код конечно говно ваще мешанина) по-человечески у нас задача делится на две части: 1. подсчет ответа на отрезке [0, 10^k - 1] (тривиально) 2. подсчет на произвольном отрезке [0, b] через пункт 1 Показать содержимое from functools import cache # up to n digits with digit sum of s @cache def unbounded(n, s): if n < 0 or s < 0: return 0 if (n, s) == (0, 0): return 1 return sum( unbounded(n - 1, s - d) for d in range(0, 10) ) # up to the bound # (maximum as list of digits) def bounded(bound, s): n = len(bound) if n == 0: return int(s == 0) max_digit, *r = bound result = bounded(r, s - max_digit) for d in range(max_digit): result += unbounded(n - 1, s - d) return result def cnt_digsum(num, sum): bound = [int(d) for d in str(num)] return bounded(bound, sum) print(cnt_digsum(2**63, 159))
-
haskell прям заебись на самом деле я тут его в рамках курса по ФП прохожу и в целом мне кажется можно поставить этого персонажа на пьедестал 'языки на которых приятно писать код' на равне с лиспом но чтобы оценить охуенность происходящего, надо конечно почитать что-нибудь хотя бы на тему формального интуиционистского исчисления высказываний там (в теории доказательств) одна теорема [double negation translation], вернее её конструктивное доказательство является предтечей хаскельных монад и монадических операций, а конкретно continuation monad
-
не ну я вон рисовал граф листья дерева - индивидуальные события с вероятностями заданными через умножение вероятностей до корня
-
не ну так-то почему нет ваще кстати в задаче не сказано, что выбираем случайно равновероятно поэтому победил энкатадор с распределением коробок 0, 0, 1 получаем 100% с распределением 1, 0, 0, получаем 0% ну а при желании можно получить любой другой ответ, например 1/3: 1/6, 2/3, 1/6
-
ну не мне так не нравится наш участник в таком случае чот выбирает не очень случайно а мне хочется всё же соблюсти это условие что он выбирает и выбирает случайно а тут как бы получилось еще полезную социальную функцию внедрить люди приобщаются к общему делу, великой государственной тайне, проходят обряд инициации и разделяют чувство единства с другими гражданами через длинную волю государства все живые и мёртвые отныне связаны в вечности ведь каждый теперь ступает символически в прошлое, когда он тянет шар за другого человека он в этот момент находится в безвременье эксперимент повторяется снова и снова, снова и снова в каком-то смысле это вечная жизнь ведь кто-то когда-то будет тянуть шар из твоей коробки будучи мысленно и душой тобою даже когда ты будешь мёртв а аппроксимация 1/2, которая будет высвечиваться на огромном циферблате в столице, будет демонстрировать поддерживается ли баланс всего живого и мёртвого, будущего и прошлого, золотого и серебряного
-
единственное что меня продолжает смущать в том как я поставил эксперимент так это то, что участник вытянув серебряный шар теперь точно знает что победить ему не удастся зачем спрашивается его заставлять дальше заниматься идиотизмом ведь далее всё понятно надо либо всё таки стирать ему память либо как-то переформулировать постановку эксперимента возможно приглашать каждый раз нового солдата и просить его сделать две вещи а не одну: сначала проголосовать в эксперименте под индексом K другого солдата мы выдадим ему приказ, чтобы он "выбрал коробку номер 3" (допустим) он скажет "так точно, я выбрал коробку номер 3" и вытянет случайно шар и потом второй при этом он не знает успешен ли был этот эксперимент до него или нет, только мы это знаем если не успешен... не в счёт, если успешен и был успешен до... не в счёт и если не был успешен и сейчас стал успешен, то только тогда мы считаем а потом, дабы эксперимент был полностью симметричен для всех солдат и для приобщения молодежи к общему делу мы заведём новое досье для этого солдата и проведём для него лично новый эксперимент ну и будем продолжать это дело бесконечно пока существует наше светлое государство Вероятния результаты эксперимента будут покрыты военной тайной а поток новых солдат обеспечим срочной математической службой
-
не ну понятно но у нас такие условия: there are 3 boxes, each contains 2 balls & (🟡, 🟡); (🟡, ⚪); (⚪, ⚪) you pick a box at random you put your hand and take a ball at random you can't see into any of the boxes it's a gold ball то есть мы, как организатор если хотим честно всё сделать должны предоставить участнику три коробки вида (🟡, 🟡); (🟡, ⚪); (⚪, ⚪) наш участник знает только это далее по условию наш участник случайно выбирает коробку раз он выбирает случайно, мы никак не можем повлиять на выбор нашего участника дабы исключить ситуацию, что наш участник что-то всё таки знает про то, как расположены коробки мы сделаем случайную перестановку, бросив кубик так мы гарантируем что наш участник выберет коробку действительно случайно наш участник, по условию, далее так же случайно должен выбрать шар мы не можем повлиять на то, какой шар он выберет но и он не должен обладать никакой информацией о том, что он тянет так уж может случиться, что последнее условие в итоге не будет соблюдено тогда нам надо нашему участнику стереть память и попытаться снова продолжить с того момента когда что-то пошло не так стереть память участнику можно по-разному но один из гуманных способов это сделать — попросить шар назад и провести случайную перестановку внутри коробки даже если у него теперь есть стратегия, после того что он увидел, ему это не поможет по условию задачи он должен вытянуть золотой шар случайно и он вытянет его случайно, просто не с первого раза коробка с серебряными шарами тут не принципиальна, можно считать что у нас две коробки: (🟡, 🟡); (🟡, ⚪) потому что ну можно конечно и бесконечно долго зависнуть но от того что организатор скажет, что это dead end, ничего не убудет всё равно в зачёт ничего из этого не попадёт ну и собственно аргумент в чём? ну вот в том что с точки зрения организатора с точки зрения человека с экспериментальным мышлением корректно исполненная 2/3 интерпретация — в чём-то проще потому что корректно исполнить 1/2-интерпретацию и правильно интерпретировать полученные результаты ему будет чутка сложнее более того можно всякие философские возражения ультрафинитистов об идеальном и о вреде абсолюта сюда приплести не то чтобы эта группа нынче какой-то супер-мейнстрим напротив это достаточно маргинальная группа но какое-то время назад в принципе многие люди были финитистами избегали рассуждений о бесконечностях и даже с потенциальными бесконечностями старались работать очень осторожно прибегая к таким рассуждениям в последнюю очередь
-
ну в общем если я нигде не ошибся по идее должно быть 1 / [(Σ 2^-i [1, k]) + 1] что в итоге даёт нам 1/(2 - 2^-k) поэтому вообще говоря достаточно быстро мы убываем до 1/2 и погрешность при такой эвристике будет экспоненциально убывать по мере увеличения k уже при 10 бросках мы получим почти 1/2, первые три десятка будут верными 0.500... заключение итоговая стратегия вычисления для 2/3-сообщества остаётся неизменной, тот код который был предъявлен ранее (мной и другими людьми): рабочий а стратегия вычисления для 1/2-сообщества должна быть изменена в виду того что вычисления могут никогда не заканчиваться и нас это не устраивает мы будем занимать ценные ресурсы, производящие силы общества будут направлены непонятно на что однако можно приблизиться к истине со сколь угодной точностью и достаточно быстро используя эвристику: "я заебался реролить", которая срабатывает после k неудачных бросков после которых вы переходите к следующему эксперименту освобождая ценные ресурсы другим людям чем больше k, тем экспоненциально ближе вы к истине
-
ну это ты рассуждаешь как математик математики это люди как известно сумасшедшие выдумали свой маня мирок и что-то там рассуждают о категориях абсолютных как это всё соотносится с реальностью одному Богу известно бесконечностями махаете как будто это что-то обыденное в то время как в настоящей жизни у тебя всё весьма и весьма финитно картошки у тебя в подвале мешок, но не счётное множество картофелин форма твоего стола это не идеальный цилиндр: там скол, здесь угол горчица в холодильнике имеет вполне себе конечный объём да и живёшь ты не особо долго и вот допустим ты тупой, математику не понимаешь или не тупой, но скажем так чёрной магии этой, ереси, не доверяешь и умеешь только бросать монетки и выбирать коробки соответственно уповая на господа Бога, считая отношение побед к поражениям как тебе посчитать вероятность численно (учитывая что удача нас совсем не покинула) соблюдая условие что в коробки ассистент заглядывать не может? и какие могут странности на этом пути возникнуть ведь если задача имеет чисто умозрительный характер и никакого численного решения, отношения к реальности и так далее не имеет то и решать её особо смысла то и нет
-
Если задача решается только одним методом и из одной точки отсчета, это не задача а залупа. Да в универе часто так делают, дают 100 задач в которых нужно применить какую-то формулу. Чтобы даже обезьяна запомнила. В итоге челы типа женька уже не могут правильно условие прочитать, им везде байес мерещится. Вообще, так поступать со студентами -- это не гуманно, я прекрасно понимаю людей, которые списывают и всячески избегают такого насилия долбёжкой одной и той же хуеты в голову есть кстати один интересный аргумент в пользу 2/3 он таков: в условии сказано что мы не можем смотреть внутрь коробок это значит что исполнитель эксперимента, который не видит, что находится внутри коробок потенциально никогда не сможет закончить эксперимент если мы берем 1/2-интерпретацию задачи ведь если это коробка с золотым шаром, а мы вытянули серебряный, то единственная возможность получить золотой (ведь мы должны были вытянуть золотой) это пойти вернуть серебряный шар в коробку и попробовать снова рандомно вытянуть золотой в случае (0, 1) мы имеем крайне невероятный сценарий когда выпадают только серебряные шары в случае (0, 0) процесс вообще никогда не терминируется в случае же 2/3 симуляция прерывается как только мы увидели серебряный шар всё: мы достигли точки которую достигнуть невозможно поэтому мы повторяем процесс полностью заново: выбираем новую коробку, пытаемся вытянуть условно говоря в 1/2-интерпретации нам нужен параллелизм или эмуляция параллелизма рота солдат короче, какие-то записи на каждый отельный эксперимент (ведь он может бесконечно долго длиться) чтобы приблизительно посчитать вероятность и сказать что она почти 1/2 а в случае 2/3 нам, учёным мужам, требуется лишь один асистент ветеран гражданской войны, который за скромное жалование, помогает нам в экспериментах в общем симуляция 2/3 она гораздо менее ресурсно-интенсивная postscriptum нам всё равно прогресс не гарантирован (ну как всегда в таких вещах, в извращенном смысле гарантирован) но каждый отдельный эксперимент хотя бы заканчивается а это значит что нам не надо вести контекст предыдущих не закончившихся экспериментов потому что если мы будет в случае если процесс подвис за k шагов (асистенту не везёт) выбрасывать результат в надежде что это (0, 0) коробка, то мы получим конечно не 2/3, но число между 1/2 и 2/3 ну надо строго доказывать, но я махаю руками, потому что вроде интуитивно ясно что к 2/3 мы сходимся если число бросков до перезапуска эксперимента - 1 к 1/2 мы сходимся когда число бросков до выброса результатов - ∞ а всё что между должно лежать между, больше ждём — ближе к 1/2, меньше ждём, ближе к 2/3
-
ну тебя спрашивают меру некого события X в рамках свершившегося события Y мера чисто философски не может иметь два значения, потому что иначе у нас нет как минимум естественного порядка а значит цель "измерения" не выполнена, как бы ты себе не представлял что такое вероятность мы не узнали как соотносятся объекты A и B отметая случай неоднозначности меры, её фиксации много ответов мы могли бы получить только если бы в X, Y были свободные переменные но их там нет, выражения, описывающие события никак не параметризованы
-
не, так просто рассуждение не сломается я вон картинку выше рисовал там очевидно будет то же самое рисуй или не рисуй лишние коробки с тем же количеством серебряных шаров все финалы так же останутся равновероятными и можно просто посчитать вины к лузам но! рассуждение немного похерится (подсчёт случаев) если мы засунем дохера лишних золотых шаров в коробку либо переформулируем задачу в стиле автомата с кока-колой и фантой, как я чуть раньше сделал но это потому, что элементарные события уже будут иметь неоднородное распределение и надо взвешенно считать вины к лузам, тогда ничо меняться не будет при таких трансформациях ВП но в случае если начать пушить миллиарды серебряных шаров во вторую коробку то вероятность вытянуть второй золотой будет стремиться к единице то есть почти наверное вытянув золотой ты получишь золотой в следующий раз
-
что это значит По условию ты уже взял золото. Это означает, что если засовываешь руку во 2-ю коробку, то боженька кладёт в неё золотой шар с шансом 100% Об этом собственно 338 страниц идёт речь по условию ты всё таки "случайно" тянул золото но если ты со 100% вероятностью тянешь то будет 1/2 конечно разница в коде буквально в одном ифе: rechose: Box box = choose_box(boxes, gen); if (!golden_ball(box, gen)) { goto rechose; } box.goldBalls--; // вынули золотой шар winCount += golden_ball(box, gen); rechose: Box box = choose_box(boxes, gen); if (box.goldBalls == 0) { goto rechose; } box.goldBalls--; // вынули золотой шар winCount += golden_ball(box, gen); в первом случае в итоговой выборке гораздо чаще появляется третья коробка а во втором случае такого быть не може Ага, тянем рандомный золотой шар, получается. А ты код сам писал? Довольно похож на мой да это считай твой я просто rand() заменил на более нормальные вещи не то чтобы это прям сильно на что-то влияет, но всё же rand() % 2 в зависимости от RAND_MAX это например не совсем честная монета а распределение вроде такого вида: Bern(((RAND_MAX + 1) >> 1) / (RAND_MAX + 1)) ну и аналогично когда большой интервал берешь %n, у тебя получается не совсем честные 1/n, а чот близкое к ним на самом деле похер потому что я всё равно бернули использую UPD: убрал бернулю #include <iostream> #include <vector> #include <numeric> #include <random> struct Box { int goldBalls; int silverBalls; }; // using bernoulli = std::bernoulli_distribution; using uniform_int = std::uniform_int_distribution<>; template<typename Gen> const Box & choose_box(const std::vector<Box> & boxes, Gen& gen) { uniform_int dist(0, boxes.size() - 1); return boxes[dist(gen)]; } template<typename Gen> bool golden_ball(const Box& box, Gen& gen) { int total = box.goldBalls + box.silverBalls; uniform_int dist(0, total - 1); return dist(gen) < box.goldBalls; } int main() { // Коробки с шарами std::vector<Box> boxes = { {2000, 1000}, {1000, 2000}, {1, 1} }; std::random_device rd; std::mt19937 gen(rd()); // Тянем шары const int N = 1000000; int winCount = 0; for (int i = 0; i < N; i++) { rechose: Box box = choose_box(boxes, gen); if (!golden_ball(box, gen)) { goto rechose; } box.goldBalls--; // вынули золотой шар winCount += golden_ball(box, gen); } std::cout << "Answer = " << (1.0l * winCount) / N << "\n"; }
-
что это значит По условию ты уже взял золото. Это означает, что если засовываешь руку во 2-ю коробку, то боженька кладёт в неё золотой шар с шансом 100% Об этом собственно 338 страниц идёт речь по условию ты всё таки "случайно" тянул золото но если ты со 100% вероятностью тянешь то будет 1/2 конечно разница в коде буквально в одном ифе: rechose: Box box = choose_box(boxes, gen); if (!golden_ball(box, gen)) { goto rechose; } box.goldBalls--; // вынули золотой шар winCount += golden_ball(box, gen); rechose: Box box = choose_box(boxes, gen); if (box.goldBalls == 0) { goto rechose; } box.goldBalls--; // вынули золотой шар winCount += golden_ball(box, gen); в первом случае в итоговой выборке гораздо чаще появляется третья коробка а во втором случае такого быть не может