Задать вопрос
  • Зачем нужна рекурсия в реальных случаях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Рекурсия нужна при обработке иерархических данных. Например - обойти файлы и каталоги
    в файловой системе и выполнить какое-то действие. Или действие с условием. Например если
    в текущем фолдере есть фолдер .git - то выполнить какой-то git script.

    Рекурсия может понадобиться при работе с документами XML/JSon (шаблон composer). И хотя
    в некоторых API рекурсия может быть частично скрыта за языками XPath/JSonPath тем не меннее
    ее рекурсивная природа остается налицо. Кроме того если вам достался узкий API типа DomDocument
    без поисковых диалектов - то обойти его можно на любом ЯП с рекурсивной функцией.

    Рекурсия нужна при парсинге сайтов. Это вобщем просто более расширенная трактовка работы с файловой
    системой. Если Url-s это как-бы файлы в web пространстве и они имеют ссылки друг на друга - то вы
    можете рекурсией это все обходить.

    Рекурсия почти всегда нужна при работе с графами. Берите любой алгорим на теорию графов и я готов
    спорить что 99% он будет содержать рекурсию.

    Все настольные игры (шахматы-шашки) в основе своего алгоритма альфа-бета поиска с отсечениями и
    BWF базируются на рекурсии.
    Ответ написан
  • Возможно ли вытащить пароли Chrome из мертвой системы?

    А папка с хромом живая? То можно подкинуть профиль старый и всё должно подцепиться
    Ответ написан
    Комментировать
  • Как скопировать текст множество раз с счетчиком на конце?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так простейший же FOR справится:
    for /l %%N in (1,1,3000) do echo Example-%%N.jpg >>out.txt
    Ответ написан
    5 комментариев
  • Как максимально недорого и просто сделать звуковой эффект эха аппаратно?

    размером с тумбочку

    Пружинный ревербератор! Одна (или несколько) длинных пружин, с одной стороны электромагнит создаёт колебания, с другой пьезодатчик их снимает, как вариант. Несложное устройство. Тёплый ламповый – вот это вот всё )
    фото
    1200px-Spring_Reverb_8325.jpg


    Звук, как я понимаю, снимать со стекла, с поверхности — тоже лучше пьезодатчиком. Купить для акустической гитары, например. Тогда постукивания по стеклу снимутся, а громкий динамик соседнего стенда меньше попадёт в сигнал.
    Ответ написан
    3 комментария
  • Как скопировать определенные (не все) свойства объекта?

    Fragster
    @Fragster
    помогло? отметь решением!
    const {b, c} = obj
    const obj2 = {b, c}
    Ответ написан
    Комментировать
  • Транзисторный ключ вместо реле на 24в?

    @VT100
    Embedded hardware & software.
    Схемы на 12 и на 24 - отличаются только номиналами.
    Полевой транзистор на такое напряжение - да, будет лучше.
    Вопрос не полон без указания:
    1. что за нагрузка (влияет на схему защиты);
    2. к какому выводу источника питания подключена нагрузка (влияет на тип транзистора и влияет на схему в целом);
    3. какой сигнал управления (относительно какого вывода источника питания и какой размах сигнала - влияет на схему);
    4. в каком радиомагазине закупаетесь или какие детали есть в наличии или в разборе.
    Ответ написан
    2 комментария
  • Как привести формат ФИО к одному значению?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Если это задача объемная и/или регулярная, попробуйте NLP-фреймворк natasha. Я его использовал, он хорошо распознает бОльшую часть фамилий, имен и отчеств. Правда, сам фреймворк очень развесистый и обращение с ним довольно непростое. Но работает неплохо.
    Ответ написан
    Комментировать
  • Как в гугл таблицах сделать последовательность ссылок?

    ForestAndGarden
    @ForestAndGarden
    Совершенствовать среду обитания
    ={
        "Наши ссылки"
        ;ARRAYFORMULA(
            "https://....product/mod"
            &SEQUENCE(100)
            &"/"
        )
    }
    Ответ написан
    1 комментарий
  • Как рассчитать пройденное расстояние, которое тело пройдёт при разгоне с 0 до 100 км/час?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для с̶ф̶е̶р̶и̶ч̶е̶с̶к̶о̶г̶о̶ ̶к̶о̶н̶я̶ ̶в̶ ̶в̶а̶к̶у̶у̶м̶е простейшего случая тут уже привели вычисления.
    В реальности мощность двигателя зависит от оборотов, обороты связаны со скоростью и переключением передач, лобовое сопротивление растёт пропорционально квадрату скорости. В результате график ускорений выглядит как-то так:
    image203.png
    Ответ написан
    2 комментария
  • Как получить самую давнюю дату, хранящуюся в массиве?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const [ date = null ] = arr.map(n => n.date).sort();

    или

    const date = arr.reduce((min, { date: n }) => min !== null && min < n ? min : n, null);

    или

    const date = arr.length
      ? new Date(Math.min(...arr.map(n => new Date(n.date)))).toISOString()
      : null;
    Ответ написан
    Комментировать
  • Как получить самую давнюю дату, хранящуюся в массиве?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    new Date( // чтобы конечный результат был в виде человеко читаемой строки
     Math.min.apply(  // применим функцию поиска минимального элемента в массиве с помощью apply
       null, // контекст не нужен
       arr.map(i => new Date(i.date)) // в качестве массива, среди которого ищем минимум - массив дат, преобразованных в Date
      )
    ).toISOString() // собственно, преобразовываем в человеко понятную строку.


    Ну или нагляднее:
    const dates = arr.map(i => new Date(i.date))
    const minDate = Math.min.apply(null, dates)
    const minDateString = new Date(minDate).toISOString()
    Ответ написан
    Комментировать
  • Как в Google Sheets вывести курс валюты по конкретной дате?

    ForestAndGarden
    @ForestAndGarden
    Совершенствовать среду обитания
    У вас массив 2×2. Нужно получить значение из определённой позиции — для этого есть функция INDEX. Вуаля!
    =INDEX(GoogleFinance("Currency:USDRUB";"price";"20.10.2022");2;2)
    Ответ написан
    5 комментариев
  • Как эффективно получить данные со страницы из элемента script?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Google Apps Script не подготовлен для Cheerio.

    Следует избегать загрузки этого модуля.

    Пример без него.

    const url = 'https://www.pdfah.com/product/4944/hylo-gel-lubricating-eyes-drops-%E0%B8%99%E0%B9%89%E0%B8%B3%E0%B8%95%E0%B8%B2%E0%B9%80%E0%B8%97%E0%B8%B5%E0%B8%A2%E0%B8%A1%E0%B8%8A%E0%B8%99%E0%B8%B4%E0%B8%94%E0%B9%80%E0%B8%88%E0%B8%A5-10ml-300%E0%B8%AB%E0%B8%A2%E0%B8%94';
    
    function getData() {
      const data = UrlFetchApp.fetch(url);
      const content = data.getContentText();
      const exec = /application\/ld\+json">(.*?)<\/script>/gi
        .exec(content.replace(/[\r\n]+/g, ' '));
      if (exec) {
        const product = JSON.parse(exec[1]);
        console.log(product);
      }
    }


    В Таблице https://docs.google.com/spreadsheets/d/1DQPeBVHMeQ...
    Ответ написан
    Комментировать
  • Как отследить изменения?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Одним из основных способов является подписка на триггер изменений в Таблице, который реализуется в Google Apps Script.

    Вы можете построить свое решение на основе примера https://qna.habr.com/q/1207030#answer_2234340
    Ответ написан
    Комментировать
  • Как передать параметры из функции в QUERY?

    @remaikee Автор вопроса
    Огромное всем спасибо за присланные ответы! Они натолкнули меня на мысль и задачка была решена!

    Собственно хотел заставить работать встроенную гугловскую функцию QUERY с наименованиями полей в передаваемой таблице. Решение напрашивалось самое простое - заменить в запросе наименования полей на соответствующие наименования Col1, Col2 и т.д. Надо было только найти красивое решение как перехватывать запрос и на лету изменять его:)

    Ниже найденное мною решение. Возможно кто-то решит его доработать - присылайте свои варианты :)

    Решение:

    В Google.Docs есть такая штука, как именованные функции: https://support.google.com/docs/answer/12504534

    В итоге я через именованные функции сделал свою:
    M_QUERY(диапазон, запрос)
    которую описал как:
    =QUERY({диапазон}; Q(диапазон; запрос))

    а в Apps Script описал функцию Q, которая и обрабатывает передаваемые запросы:
    function Q(table, query){
      console.log(query);
      if (table[0].map){
        table = table[0];
        for(var key in table){
          query = query.replaceAll('`'+table[key]+'`', 'Col'+(1+Number(key)));
        }
      }
      return query;
    }


    Собственно все подготовительные операции проведены и можно в таблицах гугл использовать созданную функцию M_QUERY

    Берём таблицу вида:
    6356da09f2f86969780191.png
    где первая строка содержит наименования полей

    и на требуемом листе пишем формулу:
    =M_QUERY(1:1000; "select `ID` where `ASIGNED_BY` like '%Иванов%'")
    "1:1000" - заменяем на диапазон, содержащий исходные данные :)

    Профит!
    Ответ написан
    Комментировать
  • Как передать параметры из функции в QUERY?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Формулы не поддерживают распределение аргументов, т.н. spread arguments. Даже если вы переопределите именованную функцию, то ничего не изменится, т.к. нет метода.

    Единственное, что можно сделать - обращаться к результатам функции по порядковому номеру в массиве

    function Q(table, query, i) {
      return [table, query][i];
    }


    =QUERY(
      Q({1\2\3\4;5\6\7\8};"select Col1, Col2";0);
      Q({1\2\3\4;5\6\7\8};"select Col1, Col2";1);
      0
    )


    635652c9499e5439642174.png

    Пример в Таблице https://docs.google.com/spreadsheets/d/1Tb-b5ZTW9L...

    Я подозреваю, что вам нужно что-то другое, а не передача аргументов неявным способом.
    Ответ написан
    Комментировать
  • Как узнать, какой процесс обращается дисководу?

    3r1k
    @3r1k
    the quieter you become, the more you hear
    Используй Process Monitor, особое внимание удели всем процессам svchost.exe
    Самый частый случай - это "svchost.exe -k secsvcs " :
    Модуль ресурсов Защитника Windows
    Ответ написан
    Комментировать
  • Как реализовать 2d физику?

    @MarkusD
    все время мелю чепуху :)
    Нужную литературу ты сможешь найти здесь.
    Твой раздел - девятый.
    Но чтобы использовать знания для разработки физики, тебе потребуются знания второго, третьего, четвертого и пятого разделов.
    А если хочешь чтобы физика была быстрой, то потребуются еще и знания седьмого раздела.

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

    Базовая теория по твоему вопросу раскрыта в школьном учебнике физики, еще в разделе механики. Проблемой станет перенос этой теории в код. С этого и начнется знакомство с моделированием законов физики на компьютере.
    Ответ написан
    Комментировать
  • Какую формулу использовать?

    ForestAndGarden
    @ForestAndGarden
    Совершенствовать среду обитания
    Используйте функцию ВПР (на английском — VLOOKUP).
    Ответ написан
    1 комментарий
  • Можно как-то исправить автоперевод от Google?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Где то в подвале добавляете вот такой скрипт

    Ответ написан
    1 комментарий