Два робить різницю - розбійники


29

Для виклику основних копів натисніть тут

ПОВІДОМЛЕННЯ - Ця проблема зараз закрита. Будь-які тріщини, які розміщені зараз, не будуть зараховані до таблиці лідерів, і прийнята відповідь не зміниться.

Виклик

Враховуючи оригінальну програму, її вихід та вихід зміненої програми, ви повинні з’ясувати, які символи потрібно змінити, видалити чи додати, щоб отримати очікуваний вихід.

Коли ви зламаєте чийсь код, залиште коментар із посиланням на вашу тріщину на їх відповідь.

Форматування

# [<language>, <username of program owner>](<link to answer>)

## Description

<description of change and how you found it>

## Code

<changed code>

Перемога

Перемагає людина, яка зламала більшість рішень.

Таблиця лідерів

13 тріщин:

  • Денніс

8 тріщин:

  • Алекс Ван Лів

5 тріщин:

  • Sp3000
  • isaacg

3 тріщини:

  • Луїс Мендо
  • jimmy23013
  • Дом Гастінгс

2 тріщини:

  • mbomb007
  • Sluck49

1 тріщина:

  • TheNumberOne
  • Якубе
  • ГордийHaskeller
  • Девід Чжан
  • самгак
  • paul.oderso
  • райрінг
  • mgibsonbr
  • n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
  • Стюі Гріффін
  • abligh

1
@ mbomb007 Чи можете ви утриматися від редагування цієї публікації, тому що мені важче дізнатись, де я перебуваю під час оновлення таблиць лідерів
Beta Decay

Відповіді:


10

CJam, Маврис

Опис

Оригінальний код Мавриса:

"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

Як ви зрозуміли, які цифри використовувати?
Alex Van Liew

@AlexVanLiew Brute force. Зараз я пишу пояснення. Я просто хотів, щоб тріщина була розміщена раніше, ніж хтось зробив.
Денніс

@Dennis: Досить справедливо. Я намагався цього, але не знаю CJam; Я зрозумів, що намічене рішення стосується фактичного використання ~fдесь у програмі.
Alex Van Liew

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)
Синій

Розумний розумний! Я радий, що хтось це отримав, і що це було цікавіше, ніж «грати з номерами»!
Alex Van Liew

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
Джебус Х. Христос. Хороша робота!
rayryeng

1
@ mbomb007 Я сподіваюся, що моя редакція стала більш зрозумілою. AboveFire: вибачте :)
plannapus

3
@plannapus Haha, це добре, але призначений спосіб очистити це було замінити слово "король" на "свиня". З цією зміною Хелена дорівнювала 0 і "сума тебе і продукту продукту мене" і Олена та Олена "дорівнювали 1. Я склав список усіх слів, які можна було перевернути двома літерами, і багато їх використав у своєму коді (наприклад: радість-> свиня-> син, війна-> кішка, дорога-> жаба, герой-> пекло, прокляття-> гаманець, хелен-> хелена, клаудіо-> клавдій та багато інших) Єдине, що може змінити програму Шекспіра з 2 знаками - це зміна змінної, зміна іменник та зміна гото.
Надвечір,



7

C, LambdaBeta

Опис

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

Код

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

Це рішення, яке я мав на увазі. Гарний улов. До речі, якщо аргумент завантажується в комірку пам'яті 1, це не буде працювати. Я просто не можу придумати будь-яку систему, яка б це зробила, яка також може запускати різні інтерпретовані мови на цій сторінці.
LambdaBeta

6

Python 2, rp.belrann

Змініть розуміння самого зовнішнього списку на набір розуміння. Частковий кредит на @ 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

Химерність. _я зрадив мене, я думаю.
Алекс Ван Лів

@ mbomb007 я це отримав.
Alex Van Liew

Ти мене зрозумів. Молодці.
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, нічого.


5

MATLAB, Луїс Мендо

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

-sin(2:.5:3)    
ans =    
   -0.9093   -0.5985   -0.1411

Нова відповідь:

psi(2:.5:3)
ans =
    0.4228    0.7032    0.9228

Опис:

Змінено -sinна psiфункцію полігамми в MATLAB. -Знак заміщений pі nвидаляються.


4

C, LambdaBeta

Опис

Змініть -1на *0так, щоб результат множення був 0(помилкове значення).

Код

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

На жаль, я схожий на те, що я представив (недолік безпеки?) Під час свого гольфу. Я простою роздумую це, щоб побачити, чи зможу це виправити. Хороший улов хоч.
LambdaBeta

4

Brainfuck, Kurousagi

Опис

Видаліть перший >і змініть перший <на.

Тестували на brainfuck.tk . Зауважте, що результат не точно відповідає посаді Курусагі , через те , що SE поїдає недруковані символи.

Код

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

@muddyfish Я пов’язав цю відповідь у своєму другому коментарі, але я все ще чекаю підтвердження від Kurousagi
Sp3000

4

Фантом, Каїн

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

Float.makeBits32(1123581321)

1
Ви мене за 1 хв !!! добре зіграно
AboveFire

1
Ха-ха, ти мене, насолоджуйся безкоштовним тріском
Каїн,

@Cain Це було навмисне oo
The_Basset_Hound

1
@BassetHound Я маю на увазі, це був скоріше соціальний експеримент, щоб побачити, чи люди будуть заважати вивчати якусь незрозумілу мову для тріщини. Мені, мабуть, було б важче взятися за якусь фактичну роботу.
Каїн

4

CJam, автор Бассет Хаунд

25me

Обчислює e 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

МАТЛАБ / Октава, Стюі Гріффін

Опис

Це вимагало відмови від введення в анонімну функцію 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_VALUEна Integer.MAX_VALUE+1абоInteger.MIN_VALUE
TheNumberOne

О, ти знаєш що? Я спробував, +1але оскільки я робив це на Python, він просто перекинувся на довгий, ахаха. Насправді це була моя перша думка.
Алекс Ван Лів

3

Brainfuck, AboveFire

ця програма є модифікацією цього коду мені відповідь cookie. що відповідь працює, попередньо попередньо обчисливши таблицю корисних кодів ascii корисних символів, а потім має три умовні висловлювання, складені трьома петлями, які вводяться, маючи 1правильне положення.

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

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

(додаткові символи позначені дужками)


3

Пітон 2, каламутна

Опис

Змініть <<на <>(застарілу версію !=) та 0x156на 0156, кодову точку для "n"(яка з’являється 3 рази довжиною 23 рядка '<built-in function sum>').

Код

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

3

JavaScript, автор Razvan

Опис

Видозмінений вихід - це природне число Ейлера, до якого можна отримати доступ 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 = значення друку іншої людини на сцені (Claudio). Тож якщо Ви поміняєте Клавдія на Клаудіо (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]

Ні, значення Claudio не є 1 xD. Пощастить наступного разу.
Вгорі

@AboveFire - crud .. Я по-іншому дивлюся на це, коли я повернусь додому, я дійсно подумав, що це у мене є :(
Алекс Карлсен

Це теж була моя перша здогадка, але я ще не мав шансу спробувати це. У будь-якому випадку, єдина частина, яку я ще не зрозуміла, - це та архієпископ, тож я погляну на це, коли повернусь додому.
Сумирда

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

Приємно. Технічно я додав і M, і середній аргумент - 0,25, але я думаю, що вони все одно мають той же результат. Думка, що використання деяких функцій фінансування може спотикати програмістів, але це було виявлено документацією. Хороша робота
JimmyJazzx

3

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

Опис

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

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

Код

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

3

до н.е., abligh

Просто вставили математичні оператори. Щоб вирішити, мені знадобилося близько 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, rp.beltran

Опис

Я помітив, що потрібні букви завжди були 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 × 381 524 422 711 × +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

Правильно! Молодці.
isaacg
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.