Два делают все различие - грабители


29

Для вызова главных полицейских, нажмите здесь

УВЕДОМЛЕНИЕ. Эта задача теперь закрыта. Любые трещины, которые размещены сейчас, не будут засчитаны в таблицу лидеров, и принятый ответ не изменится.

Вызов

Учитывая исходную программу, ее выходные данные и выходные данные измененной программы, вы должны выяснить, какие символы необходимо изменить, удалить или добавить, чтобы получить ожидаемый результат.

Когда вы взламываете чей-то код, оставьте комментарий со ссылкой на ваш взлом на его ответ.

Форматирование

# [<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

1
@ mbomb007 Можете ли вы воздержаться от редактирования этого поста, потому что мне становится сложнее узнать, где я нахожусь при обновлении таблицы лидеров
Beta Decay

Ответы:


10

CJam, Маурис

Описание

Оригинальный код Mauris делает следующее:

"f~"     e# Push that string on the stack.
    :i   e# Cast each to integer. Pushes [102 126].
      :# e# Reduce by exponentiation. Pushes 102^126.

Никакие другие математические операторы 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 .

По факту:

$ cjam <(echo '65536,2>{2.44AmL242545+1$AmL/i:I#s8<"24399707"=}=SIN')
5 347004

Сравнение первых 8 цифр оказалось достаточным.

Это означает, что мы можем выразить вывод как 5 347,004 = 15625 57,834 = 125 9 × 102 × 126 , поэтому его достаточно заменить "f~"на "㴉"или"} f~" .

Код

"㴉":i:#

или

"}  f~":i:#

Обратите внимание, что пробелы в коде ASCII должны фактически быть табулятором.

Попытка выполнить этот код в онлайн-интерпретаторе, вероятно, плохая идея, но вот как вы можете проверить результаты из командной строки:

$ wget -q https://bpaste.net/raw/f449928d9870
$ cjam <(echo '[15625 57834]:c`":i:#") > mauris.cjam
$ cat mauris.cjam; echo
"㴉":i:#
$ cjam mauris.cjam | diff -s - f449928d9870
Files - and f449928d9870 are identical
$ echo -en '"}\tf~":i:#' > mauris-ascii.cjam
$ cat mauris.cjam; echo
"}  f~":i:#
$ cjam mauris-ascii.cjam | diff -s - f449928d9870
Files - and f449928d9870 are identical

11
Не просто победить Денниса в CJam
Fatalize

Как вы выяснили, какие цифры использовать?
Алекс Ван Лью

@AlexVanLiew Грубая сила. Я сейчас пишу объяснение. Я просто хотел опубликовать кряк раньше, чем кто-то другой.
Денис

@ Денис: достаточно справедливо. Я пробовал это, но я не знаю CJam; Я подумал, что предполагаемое решение на самом деле используется ~fгде-то в программе.
Алекс Ван Лью

1
@Mauris Вопрос говорит о том, что в программе меняются только два символа (выделено мое), поэтому я предположил, что все в порядке. В любом случае, факторинг числа был трудной частью.
Деннис

15

Рубин, гистократ

Описание

Изменено x, чтобы быть массивом вместо скаляра, добавляя *

Изменено последнее, 9чтобы быть строкой вместо числа, добавив?

Результат состоит из массива с одним элементом ( [9]), умноженным 9 раз, а затем разложенным в "9"качестве разделителя.

Код

x=*9;puts x*9*?9

12

Питон 2, мутная рыба

Описание

Через испытания и невзгоды, связанные с факторизацией больших чисел и поиском последовательных факторов, я понял, что замены 87654 на 58116 будет достаточно. Затем я разложил 58116 на 87 * 668. Затем я понял, что 01234 = 668, поэтому мне просто нужно было изменить 87654 на 87 и полностью удалить 01234. Это достигается с помощью комментария.

Код

print (sum(range(054321)*9876)*87)#654)/01234

Да, почти точно, как у меня было (у меня было print sum(range(054321)*9876)*87#654)/01234)
Blue

Умный умный! Я рад, что кто-то получил это, и что это было более интересно, чем «играть с числами»!
Алекс Ван Лью

11

Шекспир, AboveFire

В сцене III нужно заменить Клавдия на Клаудио в следующем фрагменте:

[Enter Claudio]

Claudius:
 Thou art as stupid as the sum of thee and the product of the 
 product of me and Helen and Helena

[Exeunt]

Модифицированный код:

The Hidden Change.

Helen, a young woman with a remarkable patience.
Helena, a likewise young woman of remarkable grace.
Claudio, a remarkable man much in dispute with Claudius.
Claudius, the flatterer.
The Archbishop of Canterbury, the useless.


          Act I: Claudius's insults and flattery.

          Scene I: The insulting of Helen.

[Enter Claudius and Helen]

Claudius:
 Thou art as hairy as the sum of a disgusting horrible fatherless 
 dusty old rotten fat-kidneyed cat and a big dirty cursed war.
 Thou art as stupid as the product of thee and a fat smelly 
 half-witted dirty miserable vile weak son.

[Exeunt]

          Scene II: The complimenting of Helena.

[Enter Claudio and Helena]

Claudio:
 Thou art the sunny amazing proud healthy peaceful sweet joy.
 Thou art as amazing as the product of thee and the pretty
 lovely young gentle handsome rich Hero. Thou art as great 
 as the sum of thee and the product of a fair golden prompt good honest 
 charming loving noble king and a embroidered rich smooth golden angel.

[Exeunt]

          Scene III: The insulting of Claudio

[Enter Claudius and Helen]

Helen:
 Thou art as stupid as the sum of the sum of thee and a cat and me.
[Exit Helen]

[Enter Claudio]

Claudio:
 Thou art as stupid as the sum of thee and the product of the 
 product of me and Helen and Helena

[Exeunt]

          Scene IV: The Final Countdown

[Enter The Archbishop of Canterbury and Claudius]

Claudius:
 Thou art the sum of you and a cat.

The Archbishop of Canterbury:
 Am I better than a fine road?

Claudius:
 If not, let us return to the insulting of Claudio.

[Exit The Archbishop of Canterbury]

[Enter Claudio]

Claudius:
 Open your heart!
 Open your heart!
[Exeunt]

Используя компилятор, связанный с @AboveFire, он печатается 11.


2
Не могли бы вы пояснить, какие символы были изменены? Это не совсем легко увидеть, оглядываясь назад и вперед.
mbomb007

Блин, опоздал на 15 минут. Поздравляю.
Сумырда - Восстановить Монику

2
Jeebus H. Christ. Хорошая работа!
rayryeng - Восстановить Монику

1
@ mbomb007 Надеюсь, моя редакция прояснила ситуацию. AboveFire: извините :)
plannapus

3
@plannapus Хаха, все в порядке, но предполагаемый способ прояснить это было заменить слово «король» на «свинья». При этом Хелена была равна 0 и «сумма тебя и произведение продукта меня а Елена и Елена "были равны 1. Я составил список всех слов, которые можно перевернуть двумя буквами, и использовал их много в моем коде (например: радость-> боров-> сын, война-> кошка, дорога-> жаба, герой-> ад, проклятие-> кошелек, хелен-> хелена, клаудио-> клаудиус и многие другие) Единственное, что может изменить программу Шекспира с двумя символами, - это изменение переменной, изменение существительное и смена гото.
AboveFire



7

C, LambdaBeta

Описание

Превратись main(a,_)в main(_). Первый аргумент main argcэто инициализированный как 1.

Код

main(_){puts(_*_-1||_*_*_-1||_*_*_*_-1?"Expected Output":"?");}

Это решение, которое я имел в виду. Хорошо поймал. Между прочим, если argv загружен в ячейку памяти 1, это не сработает. Я просто не могу представить себе какую-либо систему, которая могла бы сделать это, которая также может запускать различные интерпретируемые языки на этой странице.
Лямбда-бета,

6

Python 2, рп.белранн

Измените внешнее понимание списка на множество пониманий. Частичная заслуга @ mbomb007, который исключил все «скучные» решения (подкачка xи yобход, подстройка операторов, изменение диапазона).

'~'*sum({(x,y)[x%2] for x in[y for y in range(8)]})

Объяснение:

В оригинале [(x,y)[x%2]for x in[y for y in range(8)]]генерируется следующий список:

[0, 7, 2, 7, 4, 7, 6, 7]

Это связано с тем, что в 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, вы взломали его.
mbomb007

Bizarre. _предал меня, наверное.
Алекс Ван Лью

@ mbomb007 Я понял.
Алекс Ван Лью

Ты поймал меня. Отлично сработано.
rp.beltran


5

Баш, Денис

Оригинальный код:

echo {{{1..9}}}

Исходный вывод:

{{1}} {{2}} {{3}} {{4}} {{5}} {{6}} {{7}} {{8}} {{9}}

Модифицированный код:

echo {,{1..9},}

Модифицированный вывод:

1 2 3 4 5 6 7 8 9

Объяснение:

В Bash вы можете вывести разделенный запятыми список элементов внутри пары фигурных скобок, например:

echo {a,b,c}

печать

a b c

Таким образом, измененный код выводит список ничего, числа 1..9, ничего.



4

C, LambdaBeta

Описание

Изменение -1в *0так что результат умножения 0(а falsy значение).

Код

main(a,_){puts(_*_*_*_*_*0?"Expected Output":"?");}

Ой, похоже, я представил (недостаток безопасности?) Во время игры в гольф. Я лениво придумаю это, чтобы посмотреть, смогу ли я это исправить. Хороший улов, хотя.
Лямбда-бета,

4

Brainfuck, Kurousagi

Описание

Удалите первое >и измените первое <на.

Протестировано на brainfuck.tk . Обратите внимание, что вывод не совсем соответствует посту Курусаги из-за того, что SE пожирает непечатные символы.

Код

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[>.+<-]

@muddyfish Я связал этот ответ во втором комментарии, но все еще жду подтверждения от
Kurousagi

4

Фантом, Каин

Безопасность через неизвестность - очень плохая форма безопасности (особенно когда два метода находятся рядом друг с другом в документах Fantom, и любой, кто знает, как выглядит поплавок, сразу же узнает, что делать).

Float.makeBits32(1123581321)

1
Вы получили меня на 1 минуту! хорошо сыграно
AboveFire

1
Ха-ха, ты меня понял, наслаждайся свободным крэком
Каин

@Cain Это было намеренно
oO

1
@BassetHound Я имею в виду, это был скорее социальный эксперимент, чтобы увидеть, потрудятся ли люди выучить какой-то непонятный язык для крэка. Я должен был сделать это труднее, хотя бы взять какую-то реальную работу.
Каин

4

CJam, Бассет-хаунд

25me

Рассчитывает е 25 . Попробуйте онлайн.

Онлайн-переводчик дает немного другой результат в моем браузере, что является проблемой округления.

Печатает интерпретатор Java 7.200489933738588E10, который является желаемым выводом, но в другом формате.


Хе-хе, это было легко. Особенно для бога CJam. Правильный.
The_Basset_Hound

4

Python 2, Sp3000

Описание

Поменял 01234на 0x1234и minна 9in.

Тот факт, что 4669 = (01234-1)*sum(m<<m in R for m in R)вводит в заблуждение.

Код

R=range(0x1234);print sum(m<<9in(m,n)for m in R for n in R)

Красиво сделано! У меня было m<<m in(m,n), но главное в том, чтобы изменить minк in.
Sp3000

4

MATLAB / Octave, Стьюи Гриффин

Описание

Это потребовало отмены ввода в анонимную функцию g, а также изменения коэффициента масштабирования gфункции на 2 вместо 7:

Код

>> f=@(x)x^.7;g=@(x)2/f(x);g(-7)

ans =

  -0.3011 - 0.4144i

Спасибо за ваш комментарий к моему (теперь удаленному) ответу. Я опубликовал новый (очень похожий), который можно взломать с помощью WolframAlpha. Я считаю, что это справедливее.
Доктор Велизарий


3

Java, TheNumberOne

Описание

Программа представляет собой одноразовую реализацию Random.next()с начальным начальным Integer.MAX_INTчислом и всеми шестнадцатеричными числами, преобразованными в десятичные. Изменение семени в дополнение MAX_INTгенерирует вывод:

class T{public static void main(String[]a){System.out.print(((~Integer.MAX_VALUE^25214903917L)&281474976710655L)*25214903917L+11L&281474976710655L);}}

(поскольку должно быть ровно два изменения, выберите любое изменение без операции: где-то добавьте пробел, дополнительную точку с запятой и т. д.)


1
Integer.MAX_VALUEInteger.MAX_VALUE+1Integer.MIN_VALUE
Хорошо

О, ты знаешь что? Я пытался, +1но так как я делал это на Python, он просто перешел на долгое время, ахаха. Вообще-то, это была моя первая мысль.
Алекс Ван Лью

3

Brainfuck, AboveFire

эта программа является модификацией этого кода мне ответ печенья. этот ответ работает путем предварительного вычисления таблицы полезных кодов ascii полезных символов, а затем содержит три условных оператора, состоящих из трех циклов, которые вводятся 1в правильном положении.

начало того, как я нарушил код, состоит в том, что повторяющийся шаблон в измененном выводе - это в основном то, что печатается, если вы входите в третий цикл со смещенной влево таблицей.

++++++++++[->++++++++<]>>++++++[-<---------->]<-------[----------->>>-<<+<[->->+<<]]>>>+<<>>>+++[->++++++++++<]>(<)++ .<+++++++++[->>>>>>>++++++++++<+++++<++++++++++++++<++++++++++<+++++<++++++++++<<]++++++++++>>+++++...>++>++>-->+>(>)++++<<<<<<<.<<<[->>>>>>.<<>>>>>.<<<<<.>>>>>.<<<<<>>>.<<<<.>>>>>.<<<<.>>>>>.<<<<<.>>>>.<<<<<.>>>>.<<...>.<<<<<<]>[->>>>>.<<...>>>.<<<<.>>>>>.<<<<...>>>>.<<<<<.>>>>.<<...>.<<<<<]>[->>>>.<<>>>>>>.<<<<<<..>>>.<<<<.>>>>>.<<<<>>>>>>.<<<<<<.>>>>>>.<<<<<<>>>>.<<<<<.>>>>.<<...>.<<<<]

(дополнительные символы отмечены круглыми скобками)


3

Питон 2, мутная рыба

Описание

Изменения <<в <>(устаревшее версию !=) и 0x156до 0156, точка кода "n"(который появляется в 3 раза в строке длиной 23 '<built-in function sum>').

Код

print sum((ord(i)<>0156 for i in `sum`))

3

JavaScript, разван

Описание

Измененный вывод - это, естественно, натуральное число Эйлера, к которому можно получить доступ как Math['E'].

Изменяя ''к '3'и 32к 36, String.fromCharCodeгенерирует E.

Код

a=1,b=a*2,c=a+b,d=[a+b];while(c>b)c-=a;for(i=1;i<=c;i++)d.push(i);i='3'+c*d['length']*d['length'];alert(Math[String.fromCharCode(i.charCodeAt(0) * i.charCodeAt(1) / 36)])

Да, это правильно. Тем не менее, на самом деле это было что-то более глубокое, но кажется, что с этим трюком можно обойтись. Я подумаю о чем-то еще и вернусь.
Разван

3

Фантом, Каин

Описание

Индексация массива уже настроена, так что мне просто нужно сделать 55. Честно говоря, самой сложной частью была загрузка языка.

Код

[7115432d/9,219.or(64),37,55,55][3]

(Вставьте запятую, 0-> 3)


Ну дерьмо, это не было предназначенным решением, моя красная сельдь была реальным решением
Каин

3

Шекспир, AboveFire

НЕ ПРАВИЛЬНО - извините :(

Посмотрим дальше, когда я вернусь домой с работы. В первоначальном значении Клаудио 1132462081, а значение Клавдия 1

В финальной сцене значение Клаудио печатается дважды,

[Enter Claudio]

Claudius:
 Open your heart!
 Open your heart!

открой свое сердце x2 = напиши ценность другого человека на сцене (Клаудио). Таким образом, если вы измените Клавдий на Клаудио (2 знака) - значение Клавдия будет напечатано - это 1 - дважды

The Hidden Change.

Helen, a young woman with a remarkable patience.
Helena, a likewise young woman of remarkable grace.
Claudio, a remarkable man much in dispute with Claudius.
Claudius, the flatterer.
The Archbishop of Canterbury, the useless.


          Act I: Claudius's insults and flattery.

          Scene I: The insulting of Helen.

[Enter Claudius and Helen]

Claudius:
 Thou art as hairy as the sum of a disgusting horrible fatherless 
 dusty old rotten fat-kidneyed cat and a big dirty cursed war.
 Thou art as stupid as the product of thee and a fat smelly 
 half-witted dirty miserable vile weak son.

[Exeunt]

          Scene II: The complimenting of Helena.

[Enter Claudio and Helena]

Claudio:
 Thou art the sunny amazing proud healthy peaceful sweet joy.
 Thou art as amazing as the product of thee and the pretty
 lovely young gentle handsome rich Hero. Thou art as great 
 as the sum of thee and the product of a fair golden prompt good honest 
 charming loving noble king and a embroidered rich smooth golden angel.

[Exeunt]

          Scene III: The insulting of Claudio

[Enter Claudius and Helen]

Helen:
 Thou art as stupid as the sum of the sum of thee and a cat and me.
[Exit Helen]

[Enter Claudio]

Claudius:
 Thou art as stupid as the sum of thee and the product of the 
 product of me and Helen and Helena

[Exeunt]

          Scene IV: The Final Countdown

[Enter The Archbishop of Canterbury and Claudius]

Claudius:
 Thou art the sum of you and a cat.

The Archbishop of Canterbury:
 Am I better than a fine road?

Claudius:
 If not, let us return to the insulting of Claudio.

[Exit The Archbishop of Canterbury]

[Enter Claudio]

Claudio: << changed Claudius to Claudio
 Open your heart!
 Open your heart!
[Exeunt]

Нет, значение Клаудио не 1 xD. Повезет в следующий раз.
AboveFire

@AboveFire - круто .. Я еще раз посмотрю на это, когда вернусь домой, действительно думал, что у меня это есть :(
Алекс Карлсен

Это было и мое первое предположение, но у меня еще не было возможности попробовать это. Во всяком случае, единственная часть, которую я еще не понял, это часть с архиепископом, поэтому я посмотрю на это, когда вернусь домой.
Сумырда - Восстановить Монику

3

VBA от JimmyJazzx

Измененный IRRк MIRRи изменилось 5к ,так есть 3 параметра.

Я нашел это, когда искал, как работает IRRфункция Excel . Была статья: Как функция MIRR в Excel может исправить функцию IRR . Это предупредило меня. Умная попытка, хотя. Я никогда не использовал VBA раньше, так что это было интересно.

Sub q()
Dim a(2) As Double
a(0)=-5
a(1)=10
msgBox MIRR(a,0.2,3)
End Sub

Ницца. Технически я добавил и М, и средний аргумент, равный 0,25, но я думаю, что в конечном итоге они получили одинаковый результат. Мысль об использовании некоторых финансовых функций могла бы поставить программистов в тупик, но это было обнаружено в документации. Хорошая работа
JimmyJazzx

3

Матлаб / Октава, Йонас

Описание

В последней строке добавьте 'для преобразования arg'в строку 'arg', которая будет интерпретироваться как числа ASCII. А затем добавьте еще один 'в конце, чтобы сохранить формат столбца.

Почти ненужное 'в исходном коде было главной подсказкой. Кроме того, в перспективе, тот факт, что argбыл определен отдельно (а не непосредственно в sinстроке), должен был выглядеть подозрительно.

Код

format long
arg = [.1 .2 .3];
sin('arg'*exp(9))'

3

до н.э.

Просто вставил математические операторы. На поиски ушло около 1 минуты, как только я посмотрел, что такое bc и какие у него были математические операции. Первым делом я подумал о разделении, но не было общих факторов, которые выглядели бы хорошо. Таким образом, я немедленно пошел на возведение в степень и модуль. По крайней мере 15 цифр были необходимы для модуля b / c ожидаемого выхода. После этого я дважды угадал и нашел его.

4518^574%615489737231532

3

Луа, TreFox

Описание

«_G» - это глобальная таблица, поэтому «_G.load» ссылается на глобальную функцию «load». Преобразование функции в строку приводит к возвращению адреса функции, который затем переводится в длину строки оператором длины «#».

Код

G={load="lfkjgGsHjkU83fy6dtrg"}
print(#tostring(_G.load))

Кроме того, так как это мой первый пост здесь, я не могу комментировать оригинальный ответ.


Я оставил комментарий к ответу полицейского. Кстати, это не совсем работает для меня. Адрес, который я получаю 0x321a40c6d0, для окончательного вывода 22.
Деннис

Я не уверен, почему вы получаете 22 ... на все, что я тестировал, было 18 или 26.
TreFox


Ага, я был так близко! Я знал, что мне нужно глобальное load, и я знал, _Gчто это глобальная таблица символов ... Я просто не сложил их вместе.
Алекс Ван Лью

3

Python, рп.бельтран

Описание

Я заметил, что нужные буквы всегда были 2 перед цифрой. изменение третьего, \wчтобы \dполучить все правильные буквы, кроме пробелов. \Dбыла единственная \группа, в которой я мог найти разрешенные буквы и пробелы

Код

import re;''.join(re.findall('\D(?=\w\d)','t74q joh7 jv f9dfij9j bfjtf0e nnjen3j nnjrb6fgam3gtm5tem3hj s3eim7djsd3ye d5dfhg5un7ljmm8nan3nn6n k m2ftm5bsof5bf r5arm4ken8 adcm3nub0 nfrn6sn3jfeb6n d m6jda5 gdif5vh6 gij7fnb2eb0g '))

w-> D, w-> dв регулярном выражении.


3

Пит, Исаак

Описание

Исходный код выполняет следующие действия:

 CG      Convert "abcdefghijklmnopqrstuvwxyz" from base 256 to integer, yielding
         156490583352162063278528710879425690470022892627113539022649722.
   ^3y21 Compute 3^(2 * 21).
%        Calculate the modulus.

Так как 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, возведенных в первую степень.

Код

%CG^lyG1

Обратите внимание, что это будет работать только на компьютере с достаточным объемом доступной памяти (примерно 6,43 ГБ, согласно time), поэтому он не будет работать с онлайн-переводчиком.

Вот как вы можете проверить результаты из командной строки:

$ \time -v pyth -c '%CG^lyG1'
58227066
        Command being timed: "pyth/pyth.py -c %CG^lyG1"
        User time (seconds): 30.73
        System time (seconds): 2.12
        Percent of CPU this job got: 100%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:32.85
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 6742564
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 2269338
        Voluntary context switches: 1
        Involuntary context switches: 58
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

Правильный! Отлично сработано.
Исаак
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.