- 1
do { code = randomCode(); } while (code.contains("FUCK"));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
do { code = randomCode(); } while (code.contains("FUCK"));
Пользователь с ником «Чапаев» опубликовал скриншот рекламного SMS-сообщения от
сбербанка, содержащего код «CRYVKILLJEWS», что можно перевести с английского
как «плачь, убивай евреев».
Интересно, а как генерируют все эти случайные коды? Там ведь много чего вылезти может... Например, мне от банка приходят 4-хзначные коды, но я не помню, чтобы пришли, скажем, 4 одинаковые цифры. Не знаю, случайность ли это или алгоритм такой.
(проверочный код: 8bog)
12 символов по 5 значащих битов — это 60 битов. Значит, для такого слова хватит стандартного генератора 64-битных псевдослучайных чисел.
1) все буквы будут одинаковые
2) будет содержаться слово "FUCK"
3) будет содержаться последовательность символов, которую можно воспринять как непристойную или оскорбительную.
Для пункта 3 придётся составить словарь оскорбительных и непристойных последовательностей символов.
Всего же 12-символьных слов у нас 2^(5*12) = 2^60. Значит, вероятность встретить слово «FUCK» порядка 1/2^17 = 1/131072 ≈ 7 × 10^(-6). Семь случаев на миллион. Т. е. если 60 миллионов клиентов «Сбербанка» получат по одной эсэмэске, то в 420 сообщениях будет содержаться слово «FUCK».
https://ideone.com/ea5Joi