Также необходимо устранить последовательность символов разделителей в начале и в конце строки, для корректной работы функции разбиения.
Это требование кажется не вполне универсальным. Предположим, мы разбираем строку, считанную из .csv-файла, в котором несколько первых или последних полей имеют значение пустой строки. При отбрасывании разделителей эти поля будут потеряны.
В доинтернетные времена был такой английский джентльмен, который устроил себе аналогичную задержку «новостной ленты» — ежедневно читал газету то ли 20-летней, то ли 50-летней давности.
Стивен Хокинг считал, что ни одного бита информации нельзя извлечь из чёрной дыры. Впоследствии от признал ошибку и изменил своё мнение. Но Стивен Хокинг не знал про Сбербанк!
Приведённый алгоритм хорош для малозаполненных битбордов. Наличие в нём цикла и проверки условия не слишком дружественно к предсказателю ветвлений в процессоре. Поэтому, если важна скорость, обычно используют или ассемблерные вставки с POPCNT, или алгоритм без циклов. Пример из моей шахматной программы:
Не стоит забывать, что основная ценность законов роботехники Азимова, с которых списаны первые заповеди — невозможность их строгого формального соблюдения. На чём и строится фабула большинства рассказов из цикла о роботах. То есть эти законы спроектированы для пользы писательского ремесла и конкретного автора, а не для блага общества ;)
Помню, в школьные годы имел дело с шахматной программой (консольной, естественно) для мини-ЭВМ семейства PDP-11. Там ходы полагалось вводить именно в такой вот описательной нотации. Пришлось освоить ;)
Всегда пользуюсь эмпирическим правилом: время в пути равно (число перегонов + 2 x число пересадок) x 3 минуты. Понятно, что между разными станциями расстояния существенно разные, но на практике всё хорошо усредняется, и при поездках через пол-города формула даёт точность не хуже пяти минут.
Это требование кажется не вполне универсальным. Предположим, мы разбираем строку, считанную из .csv-файла, в котором несколько первых или последних полей имеют значение пустой строки. При отбрасывании разделителей эти поля будут потеряны.
кот брошен с высоты торшерной лампы.
Придав хвосту вращательный момент,
он падает на все четыре лапы.
Волнение не в силах побороть,
спешит к буфету труженик науки,
роняет недокусанный ломоть
и портит маслом импортные брюки.
Но, позабыв, что завтрак был таков,
ученый горд: век не напрасно прожит!
Открыт Закон Падения Котов!
Теперь один вопрос его тревожит:
как полетит лабораторный кот,
когда к спине привязан бутерброд?
Это был бриллиг и скользкие Тувы.
Неужели Гир и гимбл в вабе:
Отрубить ему голову!,
Как мюмзики в мове.
— Берегись Бармаглота, сын мой!
Челюсти, которые кусают, когти, которые ловят!
Остерегайтесь птицы Джубджуб и избегайте
В frumious Брандашмыг!”
Он взял свой ворпальский меч в руку.;
Долгое время manxome врага он искал—
Так отдыхал он у дерева Тумтум
И постоял немного в раздумье.
И, как уффиш думал, он встал.,
Бармаглот с горящими глазами,
Пришел whiffling через Бармаглот древесины,
И бормотал, когда он пришел!
Раз, два! Раз, два! И насквозь, насквозь.
Клинок ворпала хихикнул-закуска!
Он оставил его мертвым и с головой.
Он пошел галопом обратно.
“И ты убил Бармаглота?
Приди в мои объятия, мой мальчик Бимиш!
Сегодня волшебный день! Каллу! Callay!”
Он захихикал от радости.
Это был бриллиг и скользкие Тувы.
Неужели Гир и гимбл в вабе:
Отрубить ему голову!,
Как мюмзики в мове.
Вот только кто бы объяснил, откуда у ИИ такое желание отрубить голову в первой же строфе, когда в оригинале об этом нет и речи:
’Twas brillig, and the slithy toves
Did gyre and gimble in the wabe:
All mimsy were the borogoves,
And the mome raths outgrabe.
Появился в вейбе:
Все мимсы были бороговыми,
И крысики-момомомы перестают существовать.
»Остерегайся Бармаглота, сын мой!
Челюсти, которые кусаются, когти, которые ловят!
Остерегайся птицы Jubjub, и избегай
Жестокий Бандерснатч!"
Он взял в руки вихревой меч;
Давным-давно мужественный враг, которого он напугал…
Так отдохнул он у дерева Тамтум.
И задумался.
И, как в уффишской мысли, он стоял,
Бармаглот с огненными глазами,
Пришёл вздрогнуть в тюльгийском лесу,
И сгорел, как только пришел!
Раз, два! Раз, два! И через и через
Лезвие ворпала пошло на хихиканье!
Он оставил его мертвым, и с его головой
Он поехал галумфать обратно.
«И ты убил Джаббервока?
Иди ко мне на руки, мой бревенчатый мальчик!
Слабый день! Каллу! Каллей!»
Он замерз в своей радости.
«Бриллиг, и щелевые печи
Появился в вейбе:
Все мимсы были бороговыми,
И крысики-момомомы перестают существовать.
Переведено с помощью www.DeepL.com/Translator (бесплатная версия)
Стивен Хокинг считал, что ни одного бита информации нельзя извлечь из чёрной дыры. Впоследствии от признал ошибку и изменил своё мнение. Но Стивен Хокинг не знал про Сбербанк!
Увы, страница с объявлением в ВК комментариев пользователей не предусматривает :)
Факт, попутал :))
На Хабре, конечно, такой фильтр не столь актуален.
Пошёл экспериментировать в ВК.
Криворукие тупые уроды, сработает ли ваш фильтр на этом комментарии?
(только тест, прошу никого не обижаться)
Возможно, старая добрая The Incredible Machine тоже так просто ИИ не сдастся.
Подам этому кому-то ещё одну идею: используя буквенные обозначения нот, добавить в базу все существующие музыкальные мелодии. Вперёд и с песней :)
Несколько первых ходов какого-нибудь дебютного варианта:
e4e5Nf3Nc6Bb5
d4d5c4e6Nf3
f4e6g4?Qh4#!
Хотя, строго говоря, все эти пароли можно рассматривать как словарные.