Профиль пользователя заблокирован сроком «навсегда» без указания причины
  • Поиск наиболее подходящих наборов из последовательности (очень много сочетаний)

    @MikhailEdoshin
    @leventov А, ну да — кривой пример получился. Вот правильный:

    01111100
    11110000
    00011110
    10000011
  • Поиск наиболее подходящих наборов из последовательности (очень много сочетаний)

    @MikhailEdoshin
    Тоже можно придумать пример:

    011110
    111000
    001110
    100001

    N=2. На третьем шаге мы выкинем первый элемент, но опять-таки первый и четвертый оказываются лучше. И тут уже и повторный просмотр как-то не обнадеживает.
  • Поиск наиболее подходящих наборов из последовательности (очень много сочетаний)

    @MikhailEdoshin
    (Думая вслух.) Как вариант — просмотреть список, сосчитать, сколько раз встречается каждый бит. Просмотреть второй раз и назначит каждому элементу взвешенный рейтинг — 1 для каждого включенного бита / количество таких битов. Отсортировать по рейтингу и взять первые десять элементов. Эвристика, конечно, но вроде как логичная.
  • Поиск наиболее подходящих наборов из последовательности (очень много сочетаний)

    @MikhailEdoshin
    Например

    10000
    01100
    00011
    01111

    N = 2. Просматриваем сверху; на первом и втором шаге складываем первые два элемента; на третьем видим, что если заменить первый на третий, получим плюс в 1 бит, заменяем. Но правильный ответ — взять первый и четвертый элементы.

    Хотя если несколько раз просмотреть, может и выгорит чего.
  • Поиск наиболее подходящих наборов из последовательности (очень много сочетаний)

    @MikhailEdoshin
    Как минимум, можно исключить те последовательности, которые являются подмножеством другой последовательности. Сложность O(n^2).
  • Структура данных

    @MikhailEdoshin
    Да вот я тоже перечитал вопрос, вижу, что само значение в качестве ключа использовать вроде как не предполагается, предполагается вроде как вставить и получить некоторый «номер в списке» («номерок» :), по которому затем можно получить обратно значение. Хотя где будет хранится этот «номерок»?

    Если так, то можно сделать тупо увеличивающийся массив — сначала выделяем, например, 512 элементов, запоминаем номер следующего пустого (0), при вставке вставляем и сдвигаем указатель на позицию, когда больше вставлять некуда — realloc до 1024 элементов и т. д. Удаление только вот не предусматривается, хотя можно и удаление сделать, со связанным списком пустых элементов.

    По сути это тоже хэш, только с особой функцией вычисления ключа :) Дело в том, что ограничение O(1) вариантов-то не дает — только хэш. Или вот такой вот хитрый массив, хотя хэш — это и есть массив, потому он и O(1).

    Если само значение использовать для ключа, то это сильно зависит от значения. Ключ хэша должен быть целым числом, равномерно распределенным по размеру хэш-таблицы. В простейшем случае если входные значения уже равномерно распределены, но по большему интервалу, можно просто делить их на размер хэш-таблицы и брать остаток. Если брать значение указателя, то, во-первых, зачем? Чтобы получить потом по нему обратно значение? Но ведь у нас уже есть указатель на него. В условии упоминаются еще целые числа, но опять-таки надо знать характер распределения этих чисел. Хотя можно и не заморачиваться, а взять какую-нибудь хорошо перемешивающую функцию, скорее всего, подойдет.
  • Apple Mail. Изменение цитирования?

    @MikhailEdoshin
    Для Mac OS X это нормальное решение. Теоретически эта строка должна быть в ресурсах Mail.app, но а) править ресурс — это ненормальное решение :) и б) что-то я и найти ее там не могу.
  • Алгоритм нахождения точек внутри выбранной области

    @MikhailEdoshin
    Смысл использования «большого M» в том, чтобы получить точку, которая заведомо находится вне многоугольника. В конкретной задаче может быть удобным брать, например, (0, 0). Насколько я помню, это работает для любых фигур, т. е. и для невыпуклых многоугольников тоже; Мартин Гарднер даже описывал фокус, основанный на этом принципе.
  • Надо сделать dll на python. Где почитать?

    @MikhailEdoshin
    Не так и долго. Одна внутренняя функция для инициализации модуля, если еще не инициализирован, и по одной __dllexport обертке для каждой функции, которую нужно экспортировать. Для инициализации создать объект типа PyModule и выполнить код модуля в его словаре. Все обертки будут примерно одинаковые: вызвать функцию Python, проверить результат, если ошибка — вернуть код ошибки и, возможно, описание, если все нормально — преобразовать значение в нужный формат. Вряд ли хоть одна функция будет длиннее экрана.
  • Надо сделать dll на python. Где почитать?

    @MikhailEdoshin
    cython предназначен для написания расширений для самого питона. То есть он делает формально DLL, но та экспортирует только один символ void initXXX(void), который инициализирует модуль и ничего не возвращает. К функциям и классам внутри можно получить доступ только из Python, они принимают и возвращают структуры PyObject, и чтобы использовать их еще где-то, нужно все равно преобразовывать эти PyObject во что-то еще. Единственный плюс может быть в использовании промежуточного кода на C, но обертку для DLL все равно придется писать.
  • Работа на иностранную фирму или как оформить отношения фрилансеру?

    @MikhailEdoshin
    Да, из-за границы, приходят в долларах (у Сбербанка, кстати, важно, чтобы приходили в валюте счета, иначе не зачислят), для заполнения декларации беру курс ЦБ на дату поступления, считаю сумму в рублях, 13 процентов от нее — это налог. Там на листе Б декларации все довольно понятно. Кстати, листы эти вечно в дефиците, приходится искать в сети свежую форму (они взяли моду менять ее каждый год) и распечатывать.
  • Работа на иностранную фирму или как оформить отношения фрилансеру?

    @MikhailEdoshin
    Это уже как вам проще — наверное, один договор будет удобнее и вам, и заказчику. И, кстати, вверху, наверное, правильно говорят — можно не заморачиваться с первичкой, а подать голую декларацию (ну или может быть с выпиской из банка), а договор прикладывать, если спросят. Хотя заключить его можно и заранее.
  • Работа на иностранную фирму или как оформить отношения фрилансеру?

    @MikhailEdoshin
    Насчет банка — у меня Сбербанк, деньги идут сразу на карточку (со счета они потом забирают 1% при снятии, причем заранее разведать такие финтифлюшки трудно), когда-то давно (последний раз лет пять назад) спрашивали подтверждение — я им честно писал, что это авторские отчисления (я продавал shareware), а теперь уже и не спрашивают.
  • Работа на иностранную фирму или как оформить отношения фрилансеру?

    @MikhailEdoshin
    Это обыкновенный гражданско-правовой договор, который может заключать любой человек с любым человеком или организацией; см. Гражданский кодекс. Трудовой договор не нужен, потому что заключает его работодатель, а он не в России, значит, он ничего и не должен. Это и не предпринимательская деятельность, потому что в ней нет элемента риска, вы не рекламируете свои услуги, не вкладываете деньги в их развитие. Это как если бы вы с соседом договорились с ребенком посидеть или ремонт ему сделать за деньги — вы же не становитесь от этого предпринимателем. Предпринимателем вы будете, если повесите на подъезде объявление «сижу с детьми» или «делаю ремонт». Например, в статье о профессиональных налоговых вычетах пункт второй гласит:

    2) налогоплательщики, получающие доходы от выполнения работ (оказания услуг) по договорам гражданско-правового характера, — в сумме фактически произведенных ими и документально подтвержденных расходов, непосредственно связанных с выполнением этих работ (оказанием услуг);


    И это не ИП или нотариусы, для них там предусмотрен первый пункт — это все остальные.
  • Работа на иностранную фирму или как оформить отношения фрилансеру?

    @MikhailEdoshin
    Я неправильно выразился — я не имел в виду трудовой договор в форме приема на работу (с больничными и т. п.), а простой гражданский договор между двумя благородными донами. (С больничными вам и не заключить.) И да, я ошибся насчет вычета — без документов только индивидуальным предпринимателям, без регистрации вычет возможен, но с документами.

    Но смысл тот же — заключаете договор, переводите его на русский, заверяете у нотариуса что перевод выполнен дипломированным переводчиком, заполняете декларацию о доходах, посылаете, и до 15 июля платите вычисленную сумму. Говорят, что можно и не заморачиваться сильно с подтверждениями — вроде как вы не обязаны подтверждать происхождение денег, достаточно объяснить — но у нас любят спросить лишнюю бумажку. Главное подать декларацию и заплатить.

    По объему писанины это самый щадящий вариант. Кроме того, можно с каждого платежа 13 процентов складывать на пополняемый депозит — так и сумма нужная соберется к моменту уплаты, и процент набежит.
  • Нужен совет, по изучению английского

    @MikhailEdoshin
    Лично я себе мысленно даю установку — представляю, что у меня во рту как бы точка, из которой идет звук, и «сдвигаю» ее вглубь.
  • Выбор некриптографического алгоритма хеширования?

    @MikhailEdoshin
    Меня смутило, что вы пишете о контрольных суммах :) т. е. я не совсем понял вопрос. Увы, со знанием дела ничего своего сказать не смогу. Но вот нашел интересную статью вполне по теме, там как раз есть мотивированная оценка fnv (негативная) и дается некий Bob Jenkins hash, судя по тестам, куда более симпатичный.
  • Семантичная HTML-вёрстка многострочной цитаты?

    @MikhailEdoshin
    Я не совсем понимаю, почему затруднит обработку скриптом :) Но даже если и затруднит — скрипты для того и нужны, чтобы решать сложные задачи, в то время как люди все время добавляют нужную им сложность. Я обычно привожу в пример шрифты — мало того, что их сотни тысяч и все время создаются новые, но еще и внутри шрифтов добавляются, например, разные двоеточия или разные написания цифр. Понятно, что CSS с этим не управится. (Ему хотя бы с переносами управится, что уж говорить про более сложные типографские идеи.)