Гугология (это не опечатка) для программистов

Из совершенно безобидных вещей могут вырастать монстры. Возьмем, например, игру в substrings. Напишем строку из букв a и b и выделим подстроки с символа 1 до символа 2, с 2 до 4, с трех до 6, с n до 2n, пока хватит длины основной строки. Наша задача сделать так, чтобы в этих подстроках более короткая не входила в любую более длинную. Я даже написал анализатор на SQL:
declare @s varchar(max) = 'abbbaaaaaaab' declare @n int=1 declare @sub table (n int, sub varchar(max)) while @n*2<=len(@s) begin insert into @sub select @n,substring(@s,@n,@n+1) set @n=@n+1 end select *,(select max(sub) from @sub I where I.n>O.n and charindex(O.sub,I.sub)>0) as FoundMatch from @sub O order by 1
Вот пример вывода:

Как видно, подстроки 1 и 5 не прошли проверку. Мы можем убрать последний символ, и получившаяся строка из 11 символов ‘abbbaaaaaaa’ проверку пройдет. Оказывается, что это и самая длинная возможная строка в алфавите из двух символов, которая удовлетворяет данному условию.
Для алфавита из одного символа максивальная длина строки равна 3, и то по чисто техническим соображениям. Оказывается, максимальная длина конечна для алфавита из любого количества букв. Итак, мы имеем:
Проверьте свою интуицию, какой длины строку можно соорудить в алфавите из трех букв. 100? 1000? На самом деле много больше, чем Гугол, и много больше, чем ГуголПлех.
Источник
Мир под тёмным светилом: разбираем хоррор. Часть 1
Запуск миссии JAXA за образцами с Фобоса — а заодно и с Марса
Вероятностное мышление: почему одних частот недостаточно — интервью с Брендет Фителсон
7 удивительных параллелей между устройством Вселенной и человеческим организмом
Прозрачное куриное филе благодаря Doritos: как работает оптический трюк
Асимметрия как фундаментальное свойство жизни и способ решить проблему «навешивания колокольчика на кошку» для искусственного суперинтеллекта
Проанализировал 50 тысяч матчей по настольному теннису: какие математические закономерности удалось найти
Приставка «Денди» с доступом в интернет