• Почему 1с-битрикс не отображает компонент в списке?

    GBreazz
    @GBreazz
    Нужно обновить список компонентов. Для этого нажать стрелку вниз справа от кнопки "Компоненты" и нажать на пункт всплывающего меню "Обновить"

    6451448286d93381243788.jpeg
    Ответ написан
    Комментировать
  • Как решить задачу с CodeWars Simple Fun #159: Middle Permutation?

    GBreazz
    @GBreazz
    Напишу два способа решения проблемы.

    Первый. Для нахождения средней перестановки строки из 4-х символов например "abcd" рассмотрим все возможные перестановки этой строки. Существует 4 блока перестановок:

    abcd bacd cabd dabc
    abdc badc cadb dacb
    acbd bcad cbad dbac
    acdb bcda cbda dbca
    adbc bdac cdab dcab
    adcb bdca cdba dcba

    Один начинается с "a", потом "b" и так далее. Заметьте, что средняя перестановка для всего этого - самая последняя в блоке 'b'.

    Рассорим подробнее эту перестановку. Видно что буквой "b" идут остальные символы последовательности в обратном порядке. То есть символ "ниже среднего", за которым следуют остальные в обратном алфавитном порядке. Решением будет функция которая возвращает 'b' + 'acd'.Reverse().

    Мы только что узнали, как найти среднею перестановку для строки из 4 символов

    Для строки "abcde" из 5 символов, после записи всех перестановок по порядку, можно будет заметить, что средняя перестановка - это середина блока "С". Здесь нам поможет описанная выше закономерность которая будет работать для последовательностей и больше 4 символов (здесь стоит доверится чтоб не расписывать все перестановки).

    Нам нужен символ "c", за которым следует средняя перестановка четырех символов. Вот и готов алгоритм для строк длинной 5 символов и более: необходимо вызвать рекурсивно нашу функцию- "c" + Recursive("abde").

    Решение:
    def middle_permutation(string):
        s = sorted(string)
        if len(s) % 2 == 0:        
            return s.pop(len(s)//2-1) +''.join(s[::-1])
        else:
            return s.pop(len(s)//2) + middle_permutation(s)


    Второй:
    Я решил эту задачу через Factoradic

    Вот моё решение, оно универсальное можно найти любую произвольную перестановку

    Суть в том, что есть зависимость номера перестановки и позиции символа в строке. Для решения комбинаторных задач существует факториальная система представления числа (Factoradic). В этой системе число представлено в виде подразрядных номеров - позиций символов исходной строки после перестановки. Например число 14 в Factoradic будет 2100 (для строки из 5 символов будет 21000, 6 -210000). Что означает что для строки "abcd" 14-ая перестановка будет (считаем от нуля)

    ab[c]d - взять второй символ и удалить
    [2]100 - Факторадик 14
    ----------
    a[b]d - взять первый символ и удалить
    [1]00 - Факторадик 14 в котором удалили 1 позицию
    ---------
    [a]d - взять нулевой символ и удалить
    [0]0 -- Факторадик 14 в котором удалили 2 позиции
    ---------
    [d] - взять нулевой символ и удалить
    [0] - Факторадик 14 в котором удалили 3 позиции

    В итоге получим "cbad". Подробности этого алгоритма здесь
    Ответ написан
    1 комментарий
  • Как вам такое решение задачки?

    GBreazz
    @GBreazz
    Вопрос автору, где такие задачи задают?
    Мой код, решение универсальное работает с повторениями. По классике
    function range (a) {
        if (a.length < 2) return a
        a.sort( (a, b) => a-b )
        let pred = null
        let e = false
        let result = ''
        for (let i of a) {    
            if (pred === null) {  
                result = pred = i
                continue
            }
            if (i != pred+1 )  {
                e ? result += '-' + pred + ', ' + i : result += ', ' + i
                e = false
            } else e = true
            pred = i
        }
    if (e) result += '-' + pred 
    return result
    }
    
    console.log(range([1, 4, 5,  2, 3, 9, 8, 11, 0]))
    console.log(range([1, 4, 3, 2]))
    console.log(range([1, 4, 8]))

    Или так
    function range (a) {
        a.sort( (a, b) => a-b )
        a = [...a,'']
        return a.reduce((st, item, i, arr) => i==0 ? st += item : ( item != arr[i-1]+1  ) ? st += '-' + arr[i-1] + ', ' + item :  st = st, '')
                .split(',')
                .map((item) => (eval(item) == 0 ? item.slice(0, item.indexOf('-')) : item).trim())
                .slice(0, -1)
                .join(', ')
      
    }
    
    console.log(range([1, 4, 5,  2, 3, 9, 8, 11, 0]))
    console.log(range([1, 4, 3, 2]))
    console.log(range([1, 4, 8]))

    И для полной идиоматичности сделаем так
    const range = a => [...a.sort( (a, b) => a-b ),''].reduce((st, item, i, arr) => i==0 ? st += item : ( item != arr[i-1]+1  ) ? st += '-' + arr[i-1] + ', ' + item :  st = st, '')
                                                      .split(',')
                                                      .map((item) => (eval(item) == 0 ? item.slice(0, item.indexOf('-')) : item).trim())
                                                      .slice(0, -1)
                                                      .join(', ')
    
    console.log(range([1, 4, 5,  2, 3, 9, 8, 11, 0]))
    console.log(range([1, 4, 3, 2]))
    console.log(range([1, 4, 8]))
    Ответ написан
  • Как заменить символы переноса строки?

    GBreazz
    @GBreazz
    Чтобы заменить все совпадения, нужно использовать для поиска не строку "-", а регулярное выражение /-/g, причём обязательно с флагом g:

    https://learn.javascript.ru/regexp-methods
    Ответ написан
    Комментировать
  • Как создать картинку из блока div?

    GBreazz
    @GBreazz
    Никак ты не создашь скриншот посредством PHP. Так как твой див нужно отрендерить браузерным движком. Такое можно сделать, гуглить PhantomJS (проект закрыт) и Headless Chrom.

    Как работает Headless Chrome
    Ответ написан
  • Роутер Mikrotik hap ac lite после потери питания не может восстановить соединение с интернетом?

    GBreazz
    @GBreazz
    Провайдер блокирует порт. Поставь задержку на реконект 1-5 минут. У меня такое было когда на pppoe у ТТК порт блокировался по словам провайдера от большого количества запросов на авторизацию.
    Ответ написан
    2 комментария
  • Компонент IdFTP.Put повреждает файлы в RAD Studio XE 6 помоге исправить?

    GBreazz
    @GBreazz
    В данном случае проблема скорее всего заключается в том, что установлен режим передачи данных ASCII. В этом режиме для бинарных файлов неверно интерпретируются управляющие символы. Бинарный тип означает, что сервер передает файлы без какой-либо обработки, как есть. Необходимо установить свойство TransferType компонента idFTP в ftBinary
    Ответ написан
    Комментировать
  • Какой хеш лучше получать у файла?

    GBreazz
    @GBreazz
    КО намекает что быстрее MD5 только CRC32. Кроме шуток с двадцатью гигабайтами, быстро ничего работать не будет, просто потому что эти гигабайты надо через память прогнать. Такие задачи решаются разбиением исходного объёма данных на блоки. Например, брать хэш сумму каждого мегабайта, а потом общую хэш сумму полученных сумм. Достоинство такого подхода в том, что можно считать хэш у частично закаченного файла или считать в несколько потоков.
    Ответ написан
    1 комментарий
  • Какие есть desktop python 3 ide c визуальным пошаговым деббагером?

    GBreazz
    @GBreazz
    А чем Pycharm не устраивает? Вот годная статья от КО pedrokroger.net/python-debugger
    Ответ написан
    Комментировать
  • Как переопределить поведение на дабл клик по иконке в верхнем левом углу заголовка окна Windows?

    GBreazz
    @GBreazz Автор вопроса
    Добавлю что хук на WM_NCLBUTTONDBLCLK проблему не снимает. Окно закрывается, а нужно чтоб не закрывалось.
    Ответ написан
  • Raspberry + PureData rак и где найти разработчика?

    GBreazz
    @GBreazz
    Мне кажется что необходимо разделить этапы. Отдельно собрать, а потом уже писать софт. Выставите проект с более или менее детальным описанием на форум . Для обсуждения с понимающими людьми. Иначе вы сильно усложняете себе задачу. Я сам собрал с десяток проектов на Arduino и могу сказать что двигаться нужно постепенно. Все и сразу не получится.
    Ответ написан
    1 комментарий
  • Как доказать время последнего изменения файла?

    GBreazz
    @GBreazz
    В файловой системе NTFS временные атрибуты файлов содержатся в файловой записи для каждого файла в главной файловой таблице (MFT). И как ни странно у файла их ровно 8!, а не 3 как мы привыкли. За временные атрибуты отвечает две структуры $STANDARD_INFORMATION и $FILE_NAME, каждая из которых содержит: дату и время создания файла, последнего изменения файла, последнего доступа к файлу, а также дату и время последнего изменения сведений в файловой записи. Правильная оценка временных атрибутов из структур $STANDARD_INFORMATION и $FILE_NAME дает возможность правильно восстановить хронологию событий и понять когда и как менялись параметры

    https://xakep.ru/2013/02/22/60167/
    Ответ написан
  • Какая есть программа для поиска файлов в Windows?

    GBreazz
    @GBreazz
    Любой программой поиска. Используй символы подстановки. Надо только объединить запросы символом ";" пример "Программа1;Программа2;Файл1;Документ12". Я советую программу Everything (www.voidtools.com) как самый толковый и самый быстрый поиск на NFFS томах. Вот обзор habrahabr.ru/post/42354 . Кроме всего в Everything можно использовать регулярные выражения.
    Ответ написан
    Комментировать
  • ISO-образ Windows 8.1 — существует ли?

    GBreazz
    @GBreazz
    Microsoft в своем стиле. Максимально все усложняет. Но образ вполне существует.

    Ссылка на образ (Magnet-URL)
    ----------------------------------------------------------
    magnet:?xt=urn:btih:9d26b250bb23799cff8590cdb10cfbcb67a6e40d&dn=MICROSOFT.WINDOWS.8.1.ENTERPRISE.RTM.X64.VOLUME.RUSSIAN.DVD-WZT&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337
    Ответ написан
    Комментировать