Как стать автором
Обновить

Комментарии 99

> Можно нанять на фрилансе человека, который напишет эту программу. Не думаю, что это будет стоить больше 500 рублей.

А как проверить корректность такой программы?
Он может сказать номер символа, 10 правильных символов подряд и эти 10 символов из нашего файла с ошибкой.

www.dix.ru/2539.12

Здесь можно вбить через поиск по странице эти символы и убедиться, что они правильные, а в файле — нет.
Вставить число в гугл, а он поправит.
Умный человек не будет читать глупых статей (вывод — я не умный) и притворяться кем-либо.
Умный человек выяснит все условия значимые для решения задачи.
Что значит экономически выгодное решение? Для оперативной памяти? Для дисковой памяти? Для процессора? Для времени?

1) Конкретно в моем случае, кирпич с веревкой, залезть на крышу по пожарной лестнице, по пути измерив нужную длину, дальше ясно.
2) Если жать руку самому себе не считается, то любого знакомого за небольшое вознаграждение просим на время сменить ФИО на нужное.
3) В краткосрочной плане — выспаться, в долгосрочном — открыть свое дело (или по крайней мере — попробовать).
В случае с Пи:
Возможно заумный поискал бы алгоритм нахождения числа Пи, который при каждой следующей итерации дает все большую точность, считывал бы последовательно из файла символы и сравнивал бы их с уже вычисленными.

И что-то интуиция мне шепчет, что автор поста как раз решил последовать своему же совету из заголовка.
Писать мудренный пост вместо того чтобы напрямую попросить помощи — довольно оригинально.
А хозяева квартиры не пускают в дом или в квартиру? А вообще можно зайти к соседу или чего-нибудь сбросить с крыши на верёвке (длину верёвки можно посмотреть снизу).

А по теме статьи, человек всегда думает образами и голова у него тоже всё сохраняет в образах и путём проговаривания мы просто лучше можем создать образ. Те же различные мнемотехники пытаються опять же разными способами всё превратить в образы, а потом запомнить.

Я в одной книге по мнемотехнике читал, что человек хранит не целые образы, а скорее их части, то есть, если к примеру это лицо, то хранится не лицо целиком, а например щека, нос, лоб итд… Этот концепт кстати очень хорошо нейросети подтверждают, тут как-то было видео от яндекса, они там говорили, что если отследить обратные связи в нейросети(которая распознает картинки), то видно, что там образы на части поделены. Там ещё много следствий из этого выходит, про количество памяти например.
Ответ на первый вопрос:
— забираемся на крышу, взяв с собой верёвку и что-то тяжёлое, например гаечный ключ (связку ключей из кармана, небольшой камень)
— опускаем веревку примерно до середины окна, запоминаем длину (здесь возможны варианты от измерения высоты одной плиты, хоть на земле, хоть в процессе подъёма по лестнице, до… гугления)
— закрепляем веревку в отмеченном месте к краю крыши
— прикрепляем к концу веревки тяжёлый предмет
— теперь с силой кидаем привязанный предмет в сторону противоположную стене (перпендикулярно)
— тяжёлый предмет с силой ударит по стеклу
Есть много мест, где доступ на крышу закрыт, что тогда делать?
«условия задачи» же, в которых ничего не сказано о…
я лишь сказал о варианте который работает и, да, я лично именно такой и проверял
Я бы купил или арендовал пневматическое ружье и попытался бы сделать это с помощью него.
купил или арендовал

"steal acquire a rifle" © troll science
Зайти к соседям этажом выше. Ведь в задаче не говориться что они вас тоже не пускают в квартиру.
Достать болторез из хаммерспейса и срезать замки, очевидно же.
Пи: если не знать программирование, то открываем тот текстовый файл, гуглим правильную последовательность, затем по ctrl+c ctrl+f ctrl+v ищем большие куски из плохого файла в правильном (может, удастся и половину текста искать за раз, всю тыщу символов). Нашли блок, который не ищется — делим пополам и ищем первую половину, и так до победного. Ориентировочно — несколько минут. Возможно, если знать программирование, но не писать код (хоть даже баш-скрипты) каждый день, то этот вариант тоже будет быстрее.

По разбитию окна: учитывая, что в задаче ничего не говорится про целостность других окон, то вариантов много… Формулировка недостаточно определяет допустимые меры. Скажем, можно ли остановить прохожего с РПГ на плече и попросить его пальнуть? Или ковровую бомбардировку квартала заказать?

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

Чтобы стать счастливым и довольным жизнью, надо для начала устранить все явно дестабилизирующие факторы один за другим, а затем перестать задавать подобные вопросы.
Если при решении задачи с Пи мучаться с файликами, тогда проще нагуглить значение с нужной точностью, скопировать, сохранить в файл, сравнить два файла любым инструментом, например встроенным в ТоталКоммандер.
Очень здорово про деление пополам!
Это если строка поиска позволит ввести несколько тысяч знаков. А редактор сможет работать со строкой такой длины.
Посмотрел — даже хром ищет по огромным блокам текста.
Этот вариант показался мне слишком капитанским для его упоминания…
найти любого Барака Обаму

Сменить имя и фамилию на «Барак Обама» и пожать руку самому себе.
Пройти семь кругов бюрократии и потом долго отбиваться от толп остряков? Сложноватое решение. Вариант с манекеном мне кстати еще больше нравится.
Проще всего найти в инете правильное число пи перенести его в текстовый файл, распечатать на двух, достаточно тонких листах оба варианта и посмотреть на просвет. Скорее всего разница будет бросатьться в глаза. Если правильная и неправильная цифра сливаются в одну, можно поискать шрифты, где цифры не накладываются друг на друга.
отличный вариант!
кстати опытные юристы так проверяют большие договора перед подписанием на соответствие шаблону — не вписали ли в него что-ть неоговоренное.
НЛО прилетело и опубликовало эту надпись здесь
Мне первым в голову тоже пришел графический метод, но с применением граф редактора. Можно просто вычесть один скриншнот из другого.

… но это, коенчно, если текстового diff под рукой почему-то нет ;)
jsfiddle.net/tLafamx3/
наркоманский графический способ
> Про проблемы с законом, с жильцами и прочее временно можно забыть. Хозяева квартиры вас внутрь пускать не хотят.

Раз проблем с законом и жильцами нет, можно снести дом. Ведь в условии задачи не сказано, что нужно разбить только выделенное окно. Тяжёлый предмет не подойдёт наверное — вроде как окно из пластикового стеклопакета, разбить стекло довольно трудно.

А умный человек вообще сначала спросит, зачем надо разбивать это окно.

Как вы снесёте дом проще, чем разобьёте одно окно?
В 99-м с этим справлялись без проблем. В 2001-м тоже.
В условии сказано «наименее затратными способами». Не сомневаюсь что для кого-то данный способ не является затратным, но всё же.
Наименее затратным — подождать 1000 лет. Дом сам развалится. Затрат ноль.
Затраты бывают не только денежными. Надо смотреть на задание шире. Если мне обещали X денег за разбитие окна, то через 1000 лет я во-первых не дождусь, а во-вторых деньги обесценятся.
Ну, тогда можно вечно спорить о том, как считать затраты, ибо без этого выраженеи «наименее затратными способами» становится бессмыслецой и любые способы становятся неадекватными.
Не вопрос. Но большинство задач из жизни вообще имеют некорректные/неполные формулировки. Это только в математике удаётся описать задачу полностью, ничем не пренебрегая. Вот, например, «хозяева квартиры вас внутрь пускать не хотят». Но не указано не хотят априори и непоколебимо или это можно изменить. Например — угрожая оружием, предлагая тройную стоимость стеклопакета, предложив сексуальные или иные услуги (вдруг кому-то незатратно) и т.д.
Тогда уж проще им дать денег, чтобы они сами стекло разбили. При этом никого впускать не надо.
Самый разумный вариант, но непонятно что означает «наименнее затратный способ».
какую тысячу, ему и лет 60 хватит.
Про проще тоже ничего нет в условии.
Оптимальный способ. Если мне нужно взять яблоко со стола, я не буду нанимать физика, который просчитает падение слона с вышки на край стола, чтобы яблоко подскочило мне в руку. Я просто протяну руку до яблока, хотя, конечно, траектория движения моей руки тоже не будет идеально короткой, но это уже занудство)
Помните байку про то, как Нильс Бор предложил профессору сотню способов измерить высоту здания с помощью барометра, и среди тех способов было всё кроме сравнения давления вверху и внизу?
Знаю эту историю, но так же думаю, что нужно знать меру. Есть дела, в которых нужно проявить себя, найти новое решение, проявить оригинальность. Но в машине Голдберга смысла не так много)
Мне кажется, если владельцы квартиры не пускают, надо попроситься к соседям и разбить шваброй высунувшись из соседнего окна.
Ну, попробуйте шваброй разбить стекло из пластикового стеклопакета.
НЛО прилетело и опубликовало эту надпись здесь
Тогда вам сразу следовало уточнить, что швабра у вас доработанная.

Советские швабры, в общем, тоже не были особо тяжёлыми. У нас дома была советская алюминиевая швабра. Вполне лёгкая. Не забывайте, что шваброй уборщице нужно орудовать весь день. До алюминиевых были деревянные. Тоже не сказать, чтобы тяжёлые. Хотя алюминиевые легче.

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

НЛО прилетело и опубликовало эту надпись здесь
В подавляющем большинстве стеклопакетов используется обычное стекло (просто не самое дешевое и всё) и с дефектами стёкла — тут же в брак.
То есть — прочность самих стёкол там — «обычная»! А вот герметик и резиновые уплотнители, а так же воздух находящийся внутри стеклопакета и «заключённый» там герметиком навсегда — играют роль амортизатора (и прочие ништяки).
окей, ломом?
А дотянетесь?
Мне последний раз привезли окно сразу с треснувшим стеклом. Никакой особенно прочности там нет.
Про число пи — я бы вывел заданное число и правильный вариант в файлы в виде столбиков одинаковой ширины (лучше — в один файл, но для этого надо немного знать программирование). Потом развёл бы глаза, чтобы столбики слились в один и просмотрел бы файл в таком режиме. Ошибка будет заметна.
Другой вариант — запустить Maple, заказать большое значение Digits и посчитать evlaf(Pi-заданное_число). Ответ покажет разряд ошибки и разность. Программирования для этого знать не нужно.
Да прост открыть два блокнота и альттабить пару раз в секунду: меняющаяся цифра бросится в глаза.
Хорошее решение, правда. Нестандартный способ, мне на ум не приходил совершенно.
А diff алгоритмьі бьіли написаньі еще в 70. И програм сравнения море.
у вас очень интересная раскладка клавиатуры, даже подумал что у меня испачкан монитор. ы)
Я бы окно разбил из воздушной винтовки с утяжелёнными пулями. Если нет винтовки, то — кирпич на верёвке. Если нет кирпича, то можно зайти к соседям сверху и захватить с собой лопату/длинную палку. Дотянуться вполне реально.

Про Обаму. В условии действительно ничего не сказано про то, какому именно Бараку Обаме нужно жать руку. Поэтому предполагаю, что для решения задачи вполне подойдёт манекен, названный нужным именем.

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

Теперь интересное: Пи. Думаю, умный человек нашёл бы быстренько софт для сравнения текстовых файлов. Если Пи записано одной строкой, то стандартный diff не очень поможет, но спецсофт справится.
А если провести замену любой цифры переводом строки (например, LibreOffice с этим справится) — то diff поможет. В 10% случаев, задача разрешится просто сравнением количества строк.
Не совсем понятно: задача «найти неправильный знак в числе» или «получить правильное число Пи»?
Если второе — то просто нагуглить с нужной точностью, заменить им число в файле и всё =)
Если же первое — то может вы ставите себе неправильные задачи?
Задача: найти номер неправильного символа в файле.
Распечатать правильное число на соседней строке с неправильным. Беглый палец и зоркий глаз подскажут две различные цифры. Впрочем, можно и в графическом редакторе их навести друг на друга с фильтром XOR.
Раз у нас нет никаких ограничений, то первую задачу можно решить вот так:
Он попадёт в стену, а не в окно, я линейкой проверил.
1. Квадрокоптер же.
2. Заведите себе воображаемого друга по имени Барак Обама.
3. Никак. Жизнь — боль.
Верёвку можно померить с третьего этажа, потом привязать пластиковую бутылку с водой и бить окно с крыши.
И спасти кота.
Для этого ещё надо устроить КЗ на ЛЭП.
В условии задачи не сказано, что нельзя разбивать другие окна ;)
Выбить дверь к соседям, опустошить холодильник, после чего выбросить пианино через целевое окно на улице.
Какие-то вы все асоциальные и не делегируете :)
Надо найти во дворе пацана и поспорить с ним на 100 рублей, что он не сможет разбить нужное окно в течение часа.
Я просто всегда хотел выбросить пианино из окна)
Про Pi: Взять программу SuperPi и сравнить результат вычислений с файлом в TotalCommander

  1. Попробовать с помощью пневматики. Если не поможет забраться по пожарной лестнице справа с промальповской обвязкой, спусковухой, жумаром и молотком. Закрепиться на крыше, спуститься к окну, разбить, profit!!!
  2. Подумать 5 минут и забить.
  3. Составить список самых бесящих вещей, отсортировать по времени на устранение и лечь спать.
Про файл с числом Пи

Если есть правильное число в файле pi.txt и проверяемое в файле hz.txt
в коммандной строке windows (Пуск выполнить cmd) можно выполнить
fc /b pi.txt hz.txt > rezult.txt

Спасибо всем за деликатные уточнения насчёт Барака Обамы, отредактировал запись, надеюсь, все будут довольны :)
2. Ждем когда он преставится, покупаем билет и идем на публичное прощание.
Если вы — американский школьник, который выиграл международную олимпиаду по математике/физике/информатике, то у вас есть все шансы пожать руку Бараку Обаме. Аналогично в России с Путиным.
Блин, зашёл в пост узнать номер выпуска xkcd и прочитать title, который уже который раз не вставляют вместе с картинкой :) А тут ни того, ни другого.
xkcd.com/1163/

Кстати, перевод неправильный. Последнюю фразу следует понимать как «Я не знаю, как определить, проблема это или нет».
1. Подождать. Рано или поздно окно будет сломано.
Еще 1. Заменить на картинку разбитого окна.
1) Разбить окно.
Можно к воздушному шарики привязать косточку. Поднять шарик с косточкой на уровень окна. Если в квартире есть собака, то она может бросится за косточкой и разбить собой окно.
Можно не на крышу подниматься, а к соседям сбоку. Разбить окно обычной чайной кружкой с соседнего окна.
Вертолетик на пульте управления можно у друга одолжить, ему на нос прилепить размоченное тесто. Подлететь к окну и носом вертолета прилепить тесто к окну. Дождаться, когда птица заметят тесто, подлетят и клюнут в окно.

2) Пожать руку Обаме.
Я бы избрался в президенты США, и когда Обама передавал бы мне свои полномочия, сам бы пожал мне руку.
НЛО прилетело и опубликовало эту надпись здесь
Да, вы правы. Вариант с собакой будет получше
Тоже по-моему нереал. Собака не такая тупая, да и не разобьет она окно своим весом.
А мне в решении некоторых тупиковых задач помогает способ: представить, что меня попросили помочь решить эту проблему.
Нарисовать на окне карикатуру.
Вы напомнили мне любимую главу в Библии — «Книга притчей Соломоновых». Прочитаешь главу — и какая-то ясность в голове, все как будто выстраивается по своим местам, хочется стать мудрее. Захотелось перечитать в новом переводе.
Забавно, раньше замечал что когда работаю над сложной задачей начинаю неосознанно проговаривать все действия, и так действительно эффективнее получается. Не воспринимал это как прием. Спасибо!)

на счет задач.
С числом Пи — вставить строку в любой графический редактор (online редакторы тоже подойдут), можно уменьшить шрифт до нечитаемости, неважно. Дублировать слой и заменить текст на правильное число Пи. Потом режим слоя поставить на «вычитание» и станет виден отличающийся символ.

Остальные задачи — менее детерминированны, потому менее интересны. Слишком многое зависит от нюансов и начальных ресурсов.
К примеру чтобы разбить окно проще всего заплатить жильцам и они сами его разобьют. С другой стороны метод грубой силы тоже никто не отменял, и то что жильцы не хотят пускать в квартиру — не значит что не пустят… :) Ну и т.п.

Если крыша открыта — то проще всего камень на веревке нужной длины. А если рассматривать «умные» способы — то посоветовал бы придти к жильцам в виде съемочной группы, типа берем интервью у жильцов. Люди на такие вещи очень падки, и пока будут бегать вокруг да наводить марафет — бьем окно и смываемся))

На счет Обамы — тоже неясно, какие ресурсы в достижении цели для нас ключевые? Какими мы обладаем? Опять же надо гуглить в каких случаях президент жмет руку «простым смертным»?.. Думаю самое простое — следить за его твиттером и ездить на все публичные выступления посвященные радостным событиям. Рано или поздно думаю удастся поздороваться.

Опять же нужно учитывать не абсолютные ресурсы потраченные на достижения такой цели, а на относительные. Т.е. которые человек не собирался потратить без стремления к этой цели. Например, если мы говорим о умном человеке, и он скажем гениальный актер/ученый/писатель и т.п. У него и так есть шанс быть поздравленным президентом, но ему нужно будет «сдвинуть» свою карьеру чтобы принести пользу не австралии, а сша. Сам «сдвиг» может быть незначительным (выбор площадки для выступления/университета/названия книги), а результат — значительным.
1. Окно. Проблем с законом нет, говорите? Берем дробовик… Нет дробовика? Ищем знакомого охотника… Нет такого? Идем на авито, размещаем объявление — нужен охотник для разовой работы. Что происходит далее, утрировать не буду) Ни на какую крышу лезть не надо.

UPD: технический метод — FPV квадрокоптер/самолет, с разгона, с закрепленным стеклобоем (кусок заостренного металла).
Да… насоветовали тут про число Pi. Какой Гугл? Где гарантии точности в нем? Проще всего перевести число в 16-ричную систему счисления, дальше провести тест по формуле Бэйли-Боруэйна-Плаффа.

Либо воспользоваться одним из быстросходящихся разложений, например, алгоритмом Брента-Саламина и посчитать свою версию числа Pi, сравнить.
А где гарантии того, что во время вычисления числа Пи своим способом (прогона теста) не произойдет сбоя в процессоре/оперативной памяти/вашей версии компилятора/…? Чем эти риски менее вероятны, чем риск наткнуться на неверное значение в соответствующих источниках?

ну и вызывает некоторое удивление понимание словосочетания проще всего :-)
Так ведь алгоритм реально очень простой, псевдокод:

for digit in pi_string:
    pos = pi_string.pos(digit)
    if int(digit) != BBP_DIGIT(pos):
        print "Digit at " + str(pos) " position of given pi string is invalid"
    else:
        print "Digit at " + str(pos) " position of given pi string is valid"


Где BBP_DIGIT(n) — функция, возвращающая верную n-ю цифру цисла Pi. Как ее правильно реализовать можно спросить у Франсиса Беллара, у него терабайтный диск был забит числом Pi.

Но, вероятно, метод Брента-Саламина может дать более быстрый результат. BBP_DIGIT(n) может считаться долго.

Для контроля и исключения процессорных ошибок следует использовать методы безошибочных вычислений.
Но все-таки интересно — почему считается, что реализация скачанная из интернета, не проверенная на соответствие алгоритму (и при этом не проверен лично на корректность, собственно, сам алгоритм) заслуживает большего доверия, чем просмотренный в интернете же результат его работы?)
Простите, я нигде не говорил, что надо скачать в интернете непроверенную реализацию, и что не нужно разбираться в самих алгоритмах.
При всем уважении к вашим знаниям и опыту, ваше решение, если обсуждать его в рамках концепции статьи нельзя назвать «умным».

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

Проверим.
Предположим некто способен за 5 минут написать код который мгновенно вычислит число pi до 5000 знака и сравнит с исходной строкой. При этом вероятность допустить ошибку в коде — не более 0,00001.

Только что, по запросу «число пи до + знаков» менее чем за минуту нашлось число pi в виде одной строки нужной длины.
Еще 1-2 минуты займет вставить их в графический редактор и сличить с исходной строкой.

Т.е. выигрыш по скорости ~2 раза. А что же с точностью?

Представим.
В графическом редакторе сразу видно все отличающиеся символы. И очевидно если он будет не один, то зная, что в исходной строке только 1 неверный символ, будет ясно, что в интернете было неправильное число, и нужно взять число на другом сайте.

Однако есть вероятность, что в найденной в инете строке, по случайности, будет два неверных символа — один тот что и в исходной строке (причем именно такой как в исходной строке), а другой в другом месте. В таком случае алгоритм сравнения даст ошибку. Какова вероятность этого?

Я не математик, но полагаю что вероятность найти ровно две ошибки в строке из 5000 знаков — никак не больше 1/5000. Вероятность что один из ошибочных знаков придется на ошибочный символ — еще 2/5000, что он будет равных ошибочному — 1/10. Итого — примерно 1/125000000

Таким образом, даже если считать что в инете полно неправильных чисел pi, вероятность получить ошибку на три порядка меньше, чем поручив написание кода профи.

Конечно, можно возразить, что профи тоже будет тестировать код, вставит проверки на кол-во ошибочных символов и т.п… (которых кстати нет в вашем псевдокоде). Но по сути это только увеличит отставание по времени, не прибавляя точность решения, т.к. решение профи тоже может выдать две ошибки, как и прямое сравнение…

Все это я пишу не к тому что одно решение лучше, другое хуже. Просто хочу показать, что в реальности не часто нужно идти самым «правильным» путем. А «простой» — не значит плохой. Оценка рисков и эффективности — как раз и отличает умное решение от остальных.
Согласен, вообще термин «правильное решение» сомнителен. Никогда не понимал его в школе, а сейчас не понимаю и в вузе.
Часто дают задачи, которые можно решить другим способом, совсем простым. Но преподаватели говорят, что нужно решать таким-то способом.

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

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

Распечатать одного Барака Обаму с рукой на принтере. Аккуратно вырезать лишнее. Пожать
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации