Для вызова главных полицейских, нажмите здесь
УВЕДОМЛЕНИЕ. Эта задача теперь закрыта. Любые трещины, которые размещены сейчас, не будут засчитаны в таблицу лидеров, и принятый ответ не изменится.
Вызов
Учитывая исходную программу, ее выходные данные и выходные данные измененной программы, вы должны выяснить, какие символы необходимо изменить, удалить или добавить, чтобы получить ожидаемый результат.
Когда вы взламываете чей-то код, оставьте комментарий со ссылкой на ваш взлом на его ответ.
Форматирование
# [<language>, <username of program owner>](<link to answer>)
## Description
<description of change and how you found it>
## Code
<changed code>
выигрыш
Человек, который взломал большинство решений, побеждает.
Leaderboard
13 трещин:
- Деннис
8 трещин:
- Алекс Ван Лью
5 трещин:
- Sp3000
- isaacg
3 трещины:
- Луис Мендо
- jimmy23013
- Дом Гастингс
2 трещины:
- mbomb007
- Sluck49
1 трещина:
- Номер один
- Jakube
- ProudHaskeller
- Дэвид Чжан
- samgak
- paul.oderso
- rayryeng
- mgibsonbr
- n̴̖̋h̷͉a̷̭̿h̸̡̅ẗ̵̨d̷̰ĥ̷̳
- Стьюи Гриффин
- abligh
cops-and-robbers
Бета распад
источник
источник
Ответы:
CJam, Маурис
Описание
Оригинальный код Mauris делает следующее:
Никакие другие математические операторы CJam не дадут такое большое число для небольших входных данных, поэтому
:#
их нельзя изменить. Поскольку#
при использовании для возведения в степень в качестве входных данных используются только целые числа,:i
их также нельзя удалить. Это оставляет только одно место для изменения ввода: строку"f~"
.Независимо от того, сколько символов содержит строка, результатом будет левоассоциативная башня власти. CJam поддерживает символы в диапазоне от 0 до 65535 (за исключением суррогатов), поэтому мы должны выразить вывод как b n × k × j , где b , n , k и j - целые числа в этом диапазоне.
Десятичный логарифм целого числа, полученного из модифицированного кода, немного меньше log 10 (2,44 × 10 242545 ) = log 10 (2,44) + 242545 , поэтому мы можем разделить это значение на логарифмы всех возможных оснований, чтобы найти правильные значения для n × k × j .
По факту:
Сравнение первых 8 цифр оказалось достаточным.
Это означает, что мы можем выразить вывод как 5 347,004 = 15625 57,834 = 125 9 × 102 × 126 , поэтому его достаточно заменить
"f~"
на"㴉"
или"} f~"
.Код
или
Обратите внимание, что пробелы в коде ASCII должны фактически быть табулятором.
Попытка выполнить этот код в онлайн-интерпретаторе, вероятно, плохая идея, но вот как вы можете проверить результаты из командной строки:
источник
~f
где-то в программе.Рубин, гистократ
Описание
Изменено x, чтобы быть массивом вместо скаляра, добавляя
*
Изменено последнее,
9
чтобы быть строкой вместо числа, добавив?
Результат состоит из массива с одним элементом (
[9]
), умноженным 9 раз, а затем разложенным в"9"
качестве разделителя.Код
источник
Питон 2, мутная рыба
Описание
Через испытания и невзгоды, связанные с факторизацией больших чисел и поиском последовательных факторов, я понял, что замены 87654 на 58116 будет достаточно. Затем я разложил 58116 на 87 * 668. Затем я понял, что 01234 = 668, поэтому мне просто нужно было изменить 87654 на 87 и полностью удалить 01234. Это достигается с помощью комментария.
Код
источник
print sum(range(054321)*9876)*87#654)/01234
)Шекспир, AboveFire
В сцене III нужно заменить Клавдия на Клаудио в следующем фрагменте:
Модифицированный код:
Используя компилятор, связанный с @AboveFire, он печатается
11
.источник
Пролог, Фатализировать
Описание
Добавьте два
\
с.\
побитовое отрицание и\/
побитовое или.Код
источник
MATLAB / OCTAVE, Стьюи Гриффин
Простая часть сложной арифметики.
источник
C, LambdaBeta
Описание
Превратись
main(a,_)
вmain(_)
. Первый аргумент mainargc
это инициализированный как1
.Код
источник
Python 2, рп.белранн
Измените внешнее понимание списка на множество пониманий. Частичная заслуга @ mbomb007, который исключил все «скучные» решения (подкачка
x
иy
обход, подстройка операторов, изменение диапазона).Объяснение:
В оригинале
[(x,y)[x%2]for x in[y for y in range(8)]]
генерируется следующий список:Это связано с тем, что в Python 2.7
y
внутреннее понимание списка просачивается в область видимости с последним известным значением (которое в конце диапазона равно 7). Таким образом, в кортежеy
всегда 7.x
, однако, проходит по списку как обычно, в диапазоне от 0 до 7. Когдаx
оно четное, оно выбирает значениеx
, когда оно нечетное, оно выбираетy
(которое всегда равно 7). Я заметил, что если я включил ровно одну 7 и все остальные значенияx
, я получил 19; затем я понял, что могу превратить внешнее понимание в комплексное понимание, которое устранит все повторяющиеся значения и оставит мне ровно 19.Это было довольно умно, я не думаю, что когда-либо раньше использовал комплексное понимание. Престижность.
источник
print len('~'*sum([(x,y)[x%2]for x in[y for y in range(6)]]))
возвращается21
. Просто присвойте код переменной, а затем напечатайте, если она равна требуемой строке. Если вы видитеTrue
, вы взломали его._
предал меня, наверное.Йонас, Матлаб / Октава
Описание
Я заметил, что ответ был
i^pi
, так что тогда я просто должен был превратитьсяsin
в НОП.Код
s
->0
,n
->+
источник
Баш, Денис
Оригинальный код:
Исходный вывод:
Модифицированный код:
Модифицированный вывод:
Объяснение:
В Bash вы можете вывести разделенный запятыми список элементов внутри пары фигурных скобок, например:
печать
Таким образом, измененный код выводит список ничего, числа 1..9, ничего.
источник
МАТЛАБ, Луис Мендо
Оригинальный код:
Новый ответ:
Описание:
Измененный
-sin
кpsi
, функция полигаммы в MATLAB.-
Знак замещенp
иn
удаляются.источник
C, LambdaBeta
Описание
Изменение
-1
в*0
так что результат умножения0
(а falsy значение).Код
источник
Brainfuck, Kurousagi
Описание
Удалите первое
>
и измените первое<
на.
Протестировано на brainfuck.tk . Обратите внимание, что вывод не совсем соответствует посту Курусаги из-за того, что SE пожирает непечатные символы.
Код
источник
Фантом, Каин
Безопасность через неизвестность - очень плохая форма безопасности (особенно когда два метода находятся рядом друг с другом в документах Fantom, и любой, кто знает, как выглядит поплавок, сразу же узнает, что делать).
источник
CJam, Бассет-хаунд
Рассчитывает е 25 . Попробуйте онлайн.
Онлайн-переводчик дает немного другой результат в моем браузере, что является проблемой округления.
Печатает интерпретатор Java
7.200489933738588E10
, который является желаемым выводом, но в другом формате.источник
Python 2, Sp3000
Описание
Поменял
01234
на0x1234
иmin
на9in
.Тот факт, что
4669 = (01234-1)*sum(m<<m in R for m in R)
вводит в заблуждение.Код
источник
m<<m in(m,n)
, но главное в том, чтобы изменитьmin
кin
.MATLAB / Octave, Стьюи Гриффин
Описание
Это потребовало отмены ввода в анонимную функцию
g
, а также изменения коэффициента масштабированияg
функции на 2 вместо 7:Код
источник
Perl, светлый
Описание
Добавьте в строку оператора повторения
x
и вставьте дополнительную цифру!Код
источник
Java, TheNumberOne
Описание
Программа представляет собой одноразовую реализацию
Random.next()
с начальным начальнымInteger.MAX_INT
числом и всеми шестнадцатеричными числами, преобразованными в десятичные. Изменение семени в дополнениеMAX_INT
генерирует вывод:(поскольку должно быть ровно два изменения, выберите любое изменение без операции: где-то добавьте пробел, дополнительную точку с запятой и т. д.)
источник
Integer.MAX_VALUE
Integer.MAX_VALUE+1
Integer.MIN_VALUE
+1
но так как я делал это на Python, он просто перешел на долгое время, ахаха. Вообще-то, это была моя первая мысль.Brainfuck, AboveFire
эта программа является модификацией этого кода мне ответ печенья. этот ответ работает путем предварительного вычисления таблицы полезных кодов ascii полезных символов, а затем содержит три условных оператора, состоящих из трех циклов, которые вводятся
1
в правильном положении.начало того, как я нарушил код, состоит в том, что повторяющийся шаблон в измененном выводе - это в основном то, что печатается, если вы входите в третий цикл со смещенной влево таблицей.
(дополнительные символы отмечены круглыми скобками)
источник
Питон 2, мутная рыба
Описание
Изменения
<<
в<>
(устаревшее версию!=
) и0x156
до0156
, точка кода"n"
(который появляется в 3 раза в строке длиной 23'<built-in function sum>'
).Код
источник
JavaScript, разван
Описание
Измененный вывод - это, естественно, натуральное число Эйлера, к которому можно получить доступ как
Math['E']
.Изменяя
''
к'3'
и32
к36
,String.fromCharCode
генерируетE
.Код
источник
Фантом, Каин
Описание
Индексация массива уже настроена, так что мне просто нужно сделать 55. Честно говоря, самой сложной частью была загрузка языка.
Код
(Вставьте запятую,
0
->3
)источник
Шекспир, AboveFire
НЕ ПРАВИЛЬНО - извините :(
Посмотрим дальше, когда я вернусь домой с работы. В первоначальном значении Клаудио 1132462081, а значение Клавдия 1
В финальной сцене значение Клаудио печатается дважды,
открой свое сердце x2 = напиши ценность другого человека на сцене (Клаудио). Таким образом, если вы измените Клавдий на Клаудио (2 знака) - значение Клавдия будет напечатано - это 1 - дважды
источник
VBA от JimmyJazzx
Измененный
IRR
кMIRR
и изменилось5
к,
так есть 3 параметра.Я нашел это, когда искал, как работает
IRR
функция Excel . Была статья: Как функция MIRR в Excel может исправить функцию IRR . Это предупредило меня. Умная попытка, хотя. Я никогда не использовал VBA раньше, так что это было интересно.источник
Матлаб / Октава, Йонас
Описание
В последней строке добавьте
'
для преобразованияarg'
в строку'arg'
, которая будет интерпретироваться как числа ASCII. А затем добавьте еще один'
в конце, чтобы сохранить формат столбца.Почти ненужное
'
в исходном коде было главной подсказкой. Кроме того, в перспективе, тот факт, чтоarg
был определен отдельно (а не непосредственно вsin
строке), должен был выглядеть подозрительно.Код
источник
до н.э.
Просто вставил математические операторы. На поиски ушло около 1 минуты, как только я посмотрел, что такое bc и какие у него были математические операции. Первым делом я подумал о разделении, но не было общих факторов, которые выглядели бы хорошо. Таким образом, я немедленно пошел на возведение в степень и модуль. По крайней мере 15 цифр были необходимы для модуля b / c ожидаемого выхода. После этого я дважды угадал и нашел его.
источник
Луа, TreFox
Описание
«_G» - это глобальная таблица, поэтому «_G.load» ссылается на глобальную функцию «load». Преобразование функции в строку приводит к возвращению адреса функции, который затем переводится в длину строки оператором длины «#».
Код
Кроме того, так как это мой первый пост здесь, я не могу комментировать оригинальный ответ.
источник
0x321a40c6d0
, для окончательного вывода22
.load
, и я знал,_G
что это глобальная таблица символов ... Я просто не сложил их вместе.Python, рп.бельтран
Описание
Я заметил, что нужные буквы всегда были 2 перед цифрой. изменение третьего,
\w
чтобы\d
получить все правильные буквы, кроме пробелов.\D
была единственная\
группа, в которой я мог найти разрешенные буквы и пробелыКод
w
->D
,w
->d
в регулярном выражении.источник
Пит, Исаак
Описание
Исходный код выполняет следующие действия:
Так как 156490583352162063278528710879425690470022892627113539022649722 - 58227066 дает 156490583352162063278528710879425690470022892627113538964422656 , которая равна 2 26 × 3 × 7 × 7477 × 381524422711 × 17007550201751761 × 2288745700077000184147 , требуемый выход может быть получен путем замены
^3y21
с чем - то , что имеет значение делителя этого продукта и больше , чем 58227066 .^
В исходном коде позволяет предположить , что мы могли бы использовать его для вычисления мощности из 2 , то 3 , что мы можем вычислить фитинг делитель вида 3 × 2 л .Оба вводят в заблуждение. Растворы с расстоянием Левенштейн 3 (
%CG^2 26
,%CG^y2 13
,%CG^4y13
) или 4 (%CG.<3y13
) легко найдены, но раствор на расстоянии 2 требует иного подхода.Строчный алфавит (
G
) имеет 26 букв, поэтому его набор степеней (набор всех строго возрастающих последовательностей строчных букв) имеет 2 26 элементов. При заменеy2
сyG
вычислим этот набор мощности.Мы можем получить длину набора, заменив
3
наl
, что оставляет нас^lyG1
, т. Е. 2 26, возведенных в первую степень.Код
Обратите внимание, что это будет работать только на компьютере с достаточным объемом доступной памяти (примерно 6,43 ГБ, согласно
time
), поэтому он не будет работать с онлайн-переводчиком.Вот как вы можете проверить результаты из командной строки:
источник