August 3rd, 2016

lenin

Кстати о программистах, чтоб вы знали

Originally posted by willie_wonka at Бутерброды и роботы


[Там еще много прекрасного, но раз уж речь зашла о программистах... - S.]

Я: А поскольку вы программист, то давайте вы мне напишете, какими качествами обладает хороший программист. Какими чертами характера. В отличие от плохого программиста. Мы с вами уже потренировались...
Жаклин пишет: «Хороший программист пишет хороший, понятный другим код. И этот код работает».
Я: Ну-у, я имела в виду... не совсем это. Я думала, вы напишете, что он должен быть человеком, там, не знаю, умным, серьёзным, внимательным, должен уметь сосредоточиться, должен быть изобретательным, ещё каким-то... не должен быть рассеянным, не знаю... что-то такое. Чтобы слова наши употребить, которыми вся доска исписана!
Жаклин: М-м-м... До тех пор пока он пишет хороший код, который реально работает и который понятен всем остальным, он хороший программист. Сам он при этом может быть каким угодно. Весёлым, рассеянным, оптимистом, пессимистом, раздражительным, энергичным, апатичным, с чувством юмора, любопытным, унылым, скучным, недалёким... всё это не имеет никакого значения. (Видя, что я несколько разочарована, добавляет) Понимаете, программист – это не человек. Это вообще не человек. Это единственная такая профессия, которая с человеческим не имеет ничего общего.
lenin

Слегка математический вопрос

И слегка относящийся к работе, но это не очень важно; для работы он не критичен, а так, в порядке делового бреда. Ключевых слов, чтобы попробовать погуглить возможные решения, я навскидку не придумаю, так что предлагайте ваши варианты.

Даны два набора [произвольных]битовых строк фиксированной длины. Нужно найти минимальный набор позиций в этих строках, такой, что [сочетание символов]некоторая функция от конфигурации битов в этих позициях позволяет определить, к какому набору принадлежит строка.

Продемонстрирую на человеческих примерах:

Например, если один набор (корова, ворона, корона, собака), а другой (солнце, лошадь, молоко, дерево), то ответом будет [6] (в 6-й позиции в одном наборе буква А, а в другом - не А).

Или если один набор (голова, окорок), а другой (смалец, яичник), то ответом будет, например [1,2] - в одном наборе в этих позициях количество согласных чётное, а в другом - нечётное.

Ну и, естественно, в худшем случае окажется, что количество позиций в минимальном наборе равно длине строки. Это положение дел хотелось бы уметь определять как можно более эффективно.