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

Из совершенно безобидных вещей могут вырастать монстры. Возьмем, например, игру в 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? На самом деле много больше, чем Гугол, и много больше, чем ГуголПлех.
Источник
Электричество: от уравнений Максвелла до лилового свечения в пяти шагах
Пять способов сымитировать аргументацию в диалоге с языковой моделью
Биологические логические элементы и рибосомная память
Правило 0,7%: секрет выдающегося успеха и карьеры
Почему ChatGPT отлично рассуждает о покере, но ужасно в него играет
Как разгадать загадку университетского квеста
Обязаны ли мы использовать квантовые компьютеры для познания химии?