• Как подготовиться к Олимпиаде по криптографии?

    @dmshar
    Странный вопрос. Мне казалось, что в Олимпиадах участвуют те, кто уже занимается тем или иным предметом, имеет о нем хоть какое-то представление понимает, где искать ответы на вопросы, которые могут возникнуть. А не те, кто - как следует из вопроса - первый раз услышал о том, что такое "криптография".
    Ну, если вы даже в Google сами искать не умеете - помогу вам. Вот ссылки на подборки книг по криптографии, в основном для новичков:
    https://progerlib.ru/cryptography-encryption-books
    https://codernet.ru/articles/drugoe/knigi_po_kript...
    https://www.afisha.ru/article/5-interesnyh-i-ponya...
    https://gorky.media/books-collection/5-knig-o-tom-...
    Выберете себе 4-5 книг, прочитайте, разберитесь, потом - можно пару учебников себе отобрать:
    https://studfile.net/preview/6311470/
    https://www.mccme.ru/free-books/izdano/2013/crypto...
    https://books.ifmo.ru/file/pdf/929.pdf
    https://intuit.ru/studies/courses/691/547/info
    https://books.google.ca/books?id=vbZXDwAAQBAJ&pg=PA86

    и на Олимпиаду. Будет шанс хоть на какой-нибудь вопрос достойно ответить
    Ответ написан
    Комментировать
  • Как стоит изучать операционные системы начинающему безопаснику?

    @dmshar
    Похвальная забота о других. Но почему вы сами не следуете своей-же идее и не ищите
    ответ на свой вопрос, хотя-бы на этом сайте? Вы же не думали, что вопрос о том "по какому пути изучения пойти" при изучение информбезопасности вы задаете первым, ? И какие книжки читать, и про операционные системы с точки зрения ИБ, и про полезные сайты и что надо а что нет? Ну неужели же трудно самому напрячься и поискать, почитать? Так почему вы думаете, что вашим советом кто-то воспользуется?
    https://qna.habr.com/q/1265226
    https://qna.habr.com/q/1271398
    https://qna.habr.com/q/1259324
    https://qna.habr.com/q/1232136
    https://qna.habr.com/q/1165180
    И это только за последнее время. А если копнуть глубже.....

    Кстати, если вы считаете, что Таненбаум - которого тут практически рекомендуют (!) в каждой теме - на самом деле "не то", что зачем снова задавать тут-же тот-же по сути вопрос?
    Ответ написан
    2 комментария
  • ML/AI/NN технологии которые можно использовать в своём сервисе?

    @dmshar
    Лучшая технология - это нанять специалиста, который сможет создать необходимое ПО по тому описанию, которое вы ему дадите. Задача интересная, для толкового специалиста - не суперсложная. Необходимость в ML/AI/NN - очень под вопросом.
    Ну, или самому изучить то, что уже знает "толковый разработчик". Рассчитывать на готовую волшебную полочку, которую взял, махнул и задача решается сама собой без усилий - я бы не стал.
    Ответ написан
    Комментировать
  • Где учить алгоритмы и структуры данных?

    @dmshar
    "Грокаем алгоритмы". Насколько она хороша? - хороша. Изучайте.

    Что можете посоветовать ещё? - ну,например, https://superstudy.guide/algorithms-data-structure... Достаточно сжато, понятно, все необходимое на месте и без заумствования.

    На что обратить большее внимание при ознакомлении? - странный вопрос. Вы выбираете книгу и учите. А не "обращаете внимание" и торгуетесь "что больше, что меньше, а что может вообще пропустить" .
    Ответ написан
    1 комментарий
  • Что эффективней, чтение из файла или массив?

    @dmshar
    Уважаемый mayton2019 дал в общем-то почти исчерпывающий ответ. Но раз вы задали этот вопрос "из возникшего интереса", то есть шанс, что и другим ответы данной темы будут интересы, потому попробую еще чуть-чуть дополнить упомянутый ответ.

    Возможно многие и не слышали, но тем не менее существуют т.н. In-memory database (по-русски это, кажется, называется "Резидентная база данных", но я не уверен). Применяются такие системы как правило в высоконагруженных приложениях - в системах провайдеров телекоммуникационных услуг, когда-то читал - что в системах он-лайн биржевой торговли и пр. Там где данных очень много и доступ к ним нужен очень быстро. И главное - владелец таких данных оччччеееень богатенький, что-бы позволить себе приобрести оборудование с объемом оперативной памяти сопоставимым с объемом внешней памяти для "обычных" серверов баз данных. И вот тогда, для таких задач все данные СУБД, включая все индексы и другой служебно-вспомогательной информации, загоняются в оперативную память, обеспечивая и нужную скорость доступа и удобство доступа, которое обычно присуще СУБД.
    Главнейшая проблема, которую решают разработчики таких систем - как обеспечить целостности базы данных при внезапной перезагрузке систем. Это влияет на производительность In-memory database, заставляя тратить часть вычислительных ресурсов на синхронизацию данных в ОП и резервных копий на внешней памяти.
    Список таких систем можно, кстати, найти даже в Википедии:
    https://en.wikipedia.org/wiki/List_of_in-memory_da...

    Если же "спуститься" с небес на землю и учесть финансовые возможности "нормального" пользователя, то например, в языке программирования Python есть такой модуль - Pandas. По сути он дает удобство доступа к данным, почти такое-же (а может и еще большее) как SQL, сохраняя таблицы в ОП. А скорость обработки - сопоставимую с реализацией на "голых" массивах, а для сложных поисковых запросов - и еще большую. Естественно, что объем таблиц (DataFrame в терминологии Pandas) не может быть слишком большим. И не смотря на то, что есть прямой шлюз для перехода от DataFrame к SQL-структурам СУБД и обратно, скорость работы "в памяти" на много выше, чем скорость работы с теми-же данными, выгруженными в БД. Поэтом программист может комбинировать работу DataFrame для скорости обработки и СУБД для долговременно энергонезависимого хранения, найдя приемлемый для своего приложения компромисс.
    Ответ написан
    2 комментария
  • Не те выходные данные как починить код?

    @dmshar
    А вы точно понимаете, что и зачем вы проверяете в своем коде?
    Вот здесь
    field = [input() for _ in range(n)]
    вы задали свои данные. И пошли по циклу. Как вы думаете, условие
    field[i+dx][j+dy] == '.'
    хоть когда нибудь на ваших данных (тех, которые вы привели в условии) примет значение True? Очевидно, что в массиве field значений '.' нет. Значит эта составляющая вашего условия ВСЕГДА будет False. Объединив через оператор
    0 <= i+dx < n and 0 <= j+dy < m and field[i+dx][j+dy] == '.'

    три условия, одно из которых ВСЕГДА равно False, в результате получите разумеется снова False.
    any проверит, получилось ли хоть раз у вас True. А поскольку такого, как мы видели, ни разу не было, в свою очередь выдаст False и поместит его в переменную valid_move.
    Соответственно,
    not valid_move
    даст значение True, сработает условие оператора if, выполниться последовательность

    print('NO')
           exit()

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

    Как работает код я показал. А вот логика ваша мне непонятна вообще. Зачем выписывать условие проверки, которое заведомо никогда не выполняется. Кстати, есть и другие вопросы. Например - если i=j=2, а (например), dx=0, dy=1, то как вы себе представляете элемент массива field[i+dx][j+dy]? Чему будет равно j+dy и какому элементу оно соответствует?
    Что за такую дивную задачу вы решаете - вы не сообщаете. Наверное предполагаете, что все должны это угадать, что-бы суметь подсказать вам правильное решение. Но мне почему-то гадать абсолютно не интересно. Поэтому проблемы с вашим кодом обозначил, а с логикой разбирайтесь дальше самостоятельно.
    Ответ написан
    2 комментария
  • Как вызвать все атрибуты объекта через цикл?

    @dmshar
    А какое-бы значение атрибута вы бы хотели получить, обращаясь к классу, а не к объекту??

    А вообще-то, например, вот так:

    import numpy as np
    arr=np.empty(10)
    for item in dir(arr):
        print(item, getattr(arr,item))


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

    interesting_methods = [method for method in dir(arr) if method.startswith('__') is False]   
    for item in interesting_methods:
        print(item, getattr(arr,item))


    Тоже, конечно, не понятно, что вы с этой информацией делать то собираетесь, но в выдаче, если порыться, можно найти осмысленную информацию, которую вы как бы проверяете.
    Ответ написан
    1 комментарий
  • Можно ли стать бизнес-аналитиком самостоятельно?

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

    А вообще, в бизнес анализ приходят как правило одним из двух путей. Или от Data Science, постепенно отходя от теоретических моделей и все более погружаясь в те бизнес-модели и и бизнес-задачи, которые характерны для выбранной прикладной области. Или уже будучи специалистом в прикладной области, все более углубляясь в анализ данных. Но вот что-бы вообще без образования, т.е. без глубокого понимания ни методов анализа как такового, ни особенностей предметной области? Похоже - это чистая фантастика.
    Ответ написан
    2 комментария
  • Как можно увеличить R^2 в ариме?

    @dmshar
    Подсказываю:
    1. "может можно подкрутить R" - можно.
    2. "может допущена ошибка" - может.
    Особенно просто ответить на эти вопросы не видя вашего кода.

    3. "прогноз выходит всего на пару дней" - ну если точность прогноза вас устраивает - то это вполне нормально. Если это реальная задача, а не подобранный учебный пример.
    4. " Вот только R^2 получается равен 0,03" - это может означать что данные ваши имеют такую природу, что предсказывать по ним невозможно. Так вполне может быть тоже.
    5. Если "прогноз идет не цены, а абсолютного изменения" и вы ничего не можете предсказать, то очень может быть, что вам повезло, вы действительно удачно "стационаризировали" ряд и предсказание надо вести не методом ARIMA, а элементарным анализом распределения полученного ряда, строя по ним вероятностные характеристики, потом выделять трендовую составляющую каким нибудь методом, а потом агрегировать полученныей результаты в общую модель предсказания. Часто бывает, что это работает как минимум не хуже, чем ARIMA/

    6. Имеется такой модуль pmdarima в котором есть функция auto_arima(). Она пытается самостоятельно найти параметры ARIMA, которые для конкретного набора данных дают лучший результат. Попробуйте.
    Ответ написан
    Комментировать
  • Построение нейро-нечетких сетей?

    @dmshar
    Встречались мне такое понятие, даже в Википедии оно присутствует:
    https://ru.wikipedia.org/wiki/Нейро-нечёткие_системы
    или вот даже книжечка на этот счет есть
    https://studme.org/133119/informatika/intellektual...

    Если лично мое мнение, то несмотря на то, что первую вышедшею на русском языке книгу Лотфи Заде про нечеткие множества, логику, лингвистические переменные и прочее я прочитал еще в 1977 году, и потом достаточно долго этой темой увлекался - постепенно мое отношение стало абсолютно скептическим. Не вижу прикладных задач, в которых этот аппарат позволил бы решить хоть какую-то задачу быстрее, красивее, проще и пр., чем без ее применения.
    Но если надо посмотреть - то ссылочки вверху. Копайте.
    Ответ написан
    Комментировать
  • Какую литературу следует почитать, чтобы систематизировать все практические знания?

    @dmshar
    Вдохновленный вашим вопросом я тут порылся у себя в старых закладках. Казалось бы 2011 год.
    https://sharpc.livejournal.com/67583.html
    По мнению многих посетителей форума- это доисторическая эра. А вот и нет. Просмотрел список. Поменялись некоторые конкретные моменты, но вот глобально - все то-же самое. Потому как это и есть основы и попытка их систематизация, ведь систематизация - это фундамент, который стоит веками, но дает возможность в случае необходимости разобраться в чем нужно быстро и просто. Посмотрите с этой точки зрения, а уж по какому источнику осваивать каждый пункт - вопрос вторичный. И не пытайтесь охватить все. Любому человеку надо знать немного о многом и много о немногом. Поэтому именно для систематизации - знать хоть немного из каждого пункта - весьма полезно.( Хотя скажу честно, по себе - там есть несколько пунктов, которые даже после многих десятилетий в отрасли я либо в принципе не знаю (химия), либо знаю очень поверхностно (физика), либо вообще избегаю даже читать что-то (квантовые вычисления)).
    Ну и вот несколько еще подборок на тему фундаментализации знаний, может пригодится:
    https://tproger.ru/curriculum/computer-science-ste...
    https://proglib.io/p/cs-learning
    Ответ написан
    2 комментария
  • Есть ли в мире программистов спрос на аналитику поведения не-людей?

    @dmshar
    Какая-то каша в вопросе.
    Во-первых, "аналитика данных" или точнее "Data Sience", "Data Analytics" etc. это наука, занимающаяся хоть изменением климата, хоть финансами, хоть технической диагностикой, хоть эпидемиологией и медициной, хоть информационной безопасностью, хоть психологией и маркетингом, и характеризующаяся в первую очередь набором своих методов и алгоритмов решения задач. Методы практически везде (почти) одинаковы, а вот интерпретация результатов делается на языке той предметной области, из которой к специалисту по данным пришел заказчик со своей задачей.
    Во-вторых, паттерны поведения - это что? (Кроме иностранного слова, вносящего ореол таинственности и значительности говорящего). Ну вот "пользователи заходят на сайт в основном с 18 до 24 вечером по будням, и с 9 до 18 по субботам и воскресеньям и праздничным дням. Летом заходят чаще чем зимой - это "паттерн поведения"? Или "люди покупают чаше пиво с воблой, чем пиво с конфетами" - это паттерн поведения? Или - при повышении температуры на 5 градусов продажи бензина повышаются на 3%, а при снижении температуры до -3градусов количество пациентов с переломами конечностей в пунктах скорой помощи возрастает на 20% от среднегодового количества. " Или "уровень преступности положительно коррелирован с коэффициентом 0.73 с уровнем безработицы и отрицательно коррелирован с коэффициентом -0.62 с уровнем образования" - Вот это все - паттерны? Они связаны с "поведением"? Они о паттернах поведения людей?

    Поэтому - на вопрос "Существуют ли вообще компании, не имеющие цели подстроить сервис под клиента, а работающие с базами данных ради исследования и выведения новых паттернов поведения?" надо прямо сказать "подстраивание поведение компании под клиента" - это только одна и не самая большая, и точно - не самая полезная ни для общества ни для экономики ниша использования аналитики данных.
    Ответ написан
    Комментировать
  • Как интерпретировать код YOLOV5 под свои нужды?

    @dmshar
    Да нет, все правильно вы делаете. И сеть обучали теоретически правильно, и дальнейший план составили нормально. Другое дело "хочу" и "могу" это как бы разные вещи. Если у вас сеть обучена правильно, т.е. ваша архитектура сети и веса подобраны правильно, то дальше вы можете вообще писать свою систему на чем угодно - хоть на Python, хоть на Julia, хоть на С++, хоть на Go.... в общем, на чем угодно, на чем вы свое "хочу" лучше сумеете превратить в "могу".
    В Гуугле гайдов вы ненайдете, потому-что в Гуугле размещают по сути "рекламно-образовательные" тексты/ролики, из которых суть понятна, а вот как ее воплотить в реалии - нет. Поэтому, конечно, всегда лучше разбираться по книгам.
    Если вот в одном абзаце - то на этапе обучения у вас происходил цикл: подали данные на вход, получили какой-то отклик (ответ) , немного дернули коэффициенты и далее по кругу. В конце получили модель (набор коэффициентов) . После того, как вы решили, что сеть достаточно обучена, вы просто разрываете этот цикл и убираете из него подстройку коэффициентов. Остаётся "подали данные - получили отклик". В вашем случае отклик-ответ (не уверен, ибо не спец в нейрохирургии) - выделение на снимке некоторой зоны мозга. Ну вот собственно ваша задача и решена.
    Ответ написан
    Комментировать
  • Как переменную в цикле for сделать глобальной?

    @dmshar
    Да, глобальная переменная - это зло, но если очень хочется, то объявляется она просто:
    global balance
    Хотя в вашем конкретном случае, в дополнении к тому, что уже отметил уважаемый Сергей Горностаев добавлю, что ваш цикл - еще более странен. Вы на каждой итерации записываете в переменную balance данные, затирая те, что были в ней перед тем. По сути, значение переменной balance после окончания цикла можно предсказать заранее и будет оно равно ("%d" % (result[-1][1])). Зачем вам цикл? Ну разве что вы организовали асинхронное выполнение нескольких процессов, и передачу данных между ними - но судя до допущенным ошибкам это более чем сомнительно.
    Ответ написан
    Комментировать
  • Мне надо чтобы в 1 переменной было время а выводило время +15сек, что я делаю не так?

    @dmshar
    У вас ошибка связана с импортом.

    import datetime as dt
    print(dt.datetime.now()+dt.timedelta(seconds=1))

    Результат:
    2023-03-26 14:16:33.012528
    Ответ написан
    2 комментария
  • Где брать данные о появление новых AI инструментов?

    @dmshar
    godsplane, Если такой сайт уже есть, то зачем будет нужен ваш сайт? Но идея хорошая, попробуйте сами собирать такую информацию и выдавать ее в агрегированном виде. Вот это буде уже интересно.
    Впрочем, вспомнил:
    ai-news.ru
    Конкурируйте!
    Ответ написан
    Комментировать
  • Как стать специалистом по информационной безопасности (кибербезопасность)?

    @dmshar
    Вот за что я люблю этот форум. За то, что тут можно отвечать на "уникальные" вопросы даже не напрягаясь. Правда спрашивающие напрягаются еще меньше.
    https://qna.habr.com/q/944247
    https://qna.habr.com/q/911555
    https://qna.habr.com/q/788547
    https://qna.habr.com/q/797949
    https://qna.habr.com/q/772603
    https://qna.habr.com/q/530392
    https://qna.habr.com/q/688576
    https://qna.habr.com/q/676974

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

    @dmshar
    Непонятно все-же, в чем вопрос?
    Вы написали свое видение разбивки времени суток на неформальные интервалы так, как вы это видите. У кото-то может быть другое видение (например - только "первая половина дня", "вторая половина дня", "ночь" или любая другая. Единой разбивки нет и быть не может. Значит, это не вопрос.
    Второе, вы написали, что хотите добавить столбец в датафрейм. Как это сделать - причем так, что-бы он заполнялся по вашему условию - показываю ниже. Я НЕ решаю вашу задачу, я показываю принцип решения. А уж подправить его так, что-бы он и на вашем датафрейме и на ваших данных работал, у условие ваше проверял - оставляю вам. Надеюсь, справитесь.

    df=pd.DataFrame({'A':[1,2,3,4,5,6,7,8,9,10]})
    def foo(dt):
        if dt<=3:
            ret='A'
        elif dt<=7:
            ret='B'
        else: 
            ret='C'
        print (ret)
        return ret
    df['B']=df.apply(lambda x: foo(x['A']), axis= 1 )


    P.S.И да, Jupiter файл сюда не загружают, загружают чистый код, составленный так, что-бы каждый мог его себе скопировать, запустить, получить результат и возможно как-то его подправить.
    Ответ написан
    1 комментарий
  • Какая книга по Python самая лучшая для новичков и продолжающих?

    @dmshar
    Да читайте хоть что-нибудь, а не торгуйтесь "а вот если я прочту книгу А то стоит-ли мне читать книгу Б". Читайте сначала ЛЮБУЮ книгу. Когда хоть-что-то будете понимать в теме - тогда уже сможете осмысленно судить одинаково-ли у них "информационное наполнение" или разное. И с умом выбирать из других книг (именно ДРУГИХ, а не ДРУГОЙ, потому-что этот процесс никогда не заканчивается, даже у профи) то, знаний чего вам будет недоставать при попытке написать очередной проект. У программистов этот процесс продолжается всю профессиональную жизнь.
    Да и не зачем искать "самую лучшую" книгу. Ищите ту, которая именно вам будет наиболее понятной (а это - очень индивидуальный вопрос).
    А пока вы не проекты пишете, а "книги читаете" - то читайте любую. Лучше Лутца. Нет- читайте то что уже есть под рукой.
    Ответ написан