Два делает все различие - копы


60

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

Вызов

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

Измененный вывод должен иметь расстояние Левенштейна 15 или более от вашего исходного вывода.

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

Ваш вывод должен быть детерминированным, выводя одно и то же при каждом запуске программы. Это также не должно зависеть от платформы.

Любые хеш-функции запрещены , так как встроены в PRNG. Аналогичным образом, посев ГСЧ не допускается.

Через три дня отправка без изменений станет безопасной. Чтобы заявить об этой безопасности, вы должны отредактировать свой ответ, чтобы показать правильный ответ. (Пояснение: пока вы не откроете ответ, вы не в безопасности и все еще можете взломать.)

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

Ваш ответ должен быть в следующем формате:

# <Language name>, <Program length>

## Code

<code goes here>

## Original Output

<output goes here>

## Changed output

<changed output goes here>

Грабители

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

Вы можете найти нить грабителей здесь .

выигрыш

Человек с кратчайшим решением без трещин побеждает.

Leaderboard

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>site = 'meta.codegolf';postID = 5686;isAnswer = false;QUESTION_ID = 54464;var safe_list=[];var uncracked_list=[];var n=0;var bycreation=function(x,y){return (x[0][0]<y[0][0])-(x[0][0]>y[0][0]);};var bylength=function(x,y){return (x[0][1]>y[0][1])-(x[0][1]<y[0][1]);};function u(l,o){ jQuery(l[1]).empty(); l[0].sort(o); for(var i=0;i<l[0].length;i++) l[0][i][1].appendTo(l[1]); if(l[0].length==0) jQuery('<tr><td colspan="3" class="message">none yet.</td></tr>').appendTo(l[1]);}function g(p) { jQuery.getJSON('//api.stackexchange.com/2.2/questions/' + QUESTION_ID + '/answers?page=' + p + '&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e', function(s) { s.items.map(function(a) { var he = jQuery('<div/>').html(a.body).children().first(); he.find('strike').text(''); var h = he.text(); if (!/cracked/i.test(h) && (typeof a.comments == 'undefined' || a.comments.filter(function(b) { var c = jQuery('<div/>').html(b.body); return /^cracked/i.test(c.text()) || c.find('a').filter(function() { return /cracked/i.test(jQuery(this).text()) }).length > 0 }).length == 0)) { var m = /^\s*((?:[^,;(\s]|\s+[^-,;(\s])+)\s*(?:[,;(]|\s-).*?([0-9]+)/.exec(h); var e = [[n++, m ? parseInt(m[2]) : null], jQuery('<tr/>').append( jQuery('<td/>').append( jQuery('<a/>').text(m ? m[1] : h).attr('href', a.link)), jQuery('<td class="score"/>').text(m ? m[2] : '?'), jQuery('<td/>').append( jQuery('<a/>').text(a.owner.display_name).attr('href', a.owner.link)) )]; if(/safe/i.test(h)) safe_list.push(e); else uncracked_list.push(e); } }); if (s.length == 100) g(p + 1); else { var s=[[uncracked_list, '#uncracked'], [safe_list, '#safe']]; for(var p=0;p<2;p++) u(s[p],bylength); jQuery('#uncracked_by_length').bind('click',function(){u(s[0],bylength);return false}); jQuery('#uncracked_by_creation').bind('click',function(){u(s[0],bycreation);return false}); } });}g(1);</script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><style>table th,table td { padding: 5px;}th { text-align: left;}.score { text-align: right;}table a { display: block;}.main { float: left; margin-right: 30px;}.main h3,.main div { margin: 5px;}.message { font-style: italic;}</style><div class="main"><h3>Uncracked submissions</h3><table> <tr> <th>Language</th> <th class="score">Length</th> <th>User</th> </tr> <tbody id="uncracked"></tbody></table><div>Sort by: <a href="#" id="uncracked_by_length">length</a> <a href="#" id="uncracked_by_creation">creation</a></div></div><div class="main"><h3>Safe submissions</h3><table> <tr> <th>Language</th> <th class="score">Length</th> <th>User</th> </tr> <tbody id="safe"></tbody></table></div>


@BetaDecay Как вы определяете хеш-функцию?
Исаак

1
@xnor Теоретически, но количество возможностей значительно возрастает по мере увеличения длины программы и может занять много времени
Beta Decay

1
@RedPanda Да, я бы так подумала
Beta Decay

5
@isaacg Я решил изменить безопасную дату на три дня
бета-распад

4
Можно ли разместить код списка лидеров на меньшее количество строк, чтобы он занимал меньше визуального пространства?
Исаак

Ответы:


6

CJam, 13 байт (безопасно)

J{m!_)mQ%2b}/

Попробуйте онлайн.

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

000010010101001010001101111000111011100110100100001011101101010100011111110010010010001111111111010000010011001110001010011111000010001001110111100000010110000010000111011011110101110010000011100111100

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

11101101100011110001011010000100111011000010011101100000001010100111011010011011010111101000000011101111100000000110001000111110110110101111110100101110000101110100110011110000010101110

Решение

J{m!_)ci%2b}/

Попробуйте онлайн.

Как это устроено

Это использует преимущества того, как CJam неявно печатает весь стек после выполнения программы.

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

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

J{   e# For each I from 0 to 18, do the following:
  m! e#   Calculate the factorial of I.
  _) e#   Push a copy and add 1.
  mQ e#   Compute the result's integer square root.
  %  e#   Calculate the residue of the factorial divided by the square root.
  2b e#   Push the array of base 2-digits of the resulting integer.
}/   e#

Как отмечает @AndreaBiondo в комментариях, двоичные представления 0! до 8! можно найти в начале вывода (для ясности добавлены пробелы):

1 1 10 110 11000 1111000 1011010000 1001110110000 1001110110000000

Предполагаемое изменение должно было заменить mQна ci, которое принимает целое число по модулю 65536, используя 16-битную арифметику символов (приведение к 16-битному символу без знака, затем обратно к целому числу).

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


Ух ты. Как вы пришли к этому?
The_Basset_Hound

Я пытался взломать это довольно долго. Я выяснил часть измененного шаблона, но я что-то упустил. Думаю, теперь безопасно.
Андреа Биондо

@AndreaBiondo Это сейчас. Спасибо за напоминание.
Деннис

@Dennis Я понял, что _)mQнужно изменить на f(x!)такой, что f(x!) > x!для x <= 8и f(x!) < x!для x >= 9, потому что, x!очевидно, модулируется числом, которое оставляет факториалы от 0 до 8 без изменений в выходных данных. Я не заметил, 9!был первый факториал больше, чем 2^16. Очень хороший вызов в любом случае.
Андреа Биондо

39

Трещины

Шекспир, 1721 байт

Я попробовал ответ Шекспира. Это не коротко, и у меня были трудности с изменением вывода только с 2 символами, но я думаю, что мне это удалось. Удачи всем. В качестве примечания я использовал «компилятор», доступный по этому адресу, и он может не работать с другим. (он не работает с онлайн-переводчиком) Вывод не содержит непечатаемых символов.

Код

Скрытая перемена.

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


          Акт I: оскорбления и лесть Клавдия.

          Сцена I: оскорбление Хелен.

[Введите Клавдия и Елену]

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

[Уходят]

          Сцена II: Комплимент Елены.

[Введите Клаудио и Елену]

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

[Уходят]

          Сцена III: оскорбление Клаудио

[Введите Клавдия и Елену]

Хелен:
 Ты так же глуп, как сумма суммы тебя и кота и меня.
[Выход Хелен]

[Введите Клаудио]

Клавдий:
 Ты так же глуп, как сумма тебя и произведение 
 продукт меня и Елены и Елены

[Уходят]

          Сцена IV: Последний отсчет

[Введите Архиепископ Кентерберийский и Клавдий]

Клавдий:
 Ты сумма тебя и кота.

Архиепископ Кентерберийский:
 Я лучше чем хорошая дорога?

Клавдий:
 Если нет, вернемся к оскорблению Клаудио.

[Выход из архиепископа Кентерберийского]

[Введите Клаудио]

Клавдий:
 Открой свое сердце!
 Открой свое сердце!
[Уходят]

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

11324620811132462081

Измененный вывод

11

9
Действительно изумительный. Эта история слезы на моих глазах.
Алекс Ван Лью

6
@AlexVanLiew Мне понадобилось очень много времени, чтобы написать. Это мой шедевр!
AboveFire


Очень хороший ответ
гордый haskeller

24

J, 76 байт (безопасно)

Код

,:|.,.<,:>><|.,:>,.<|.>,:<<|.>|.,:,.<,.<,:,.<,:>|.<,:>,.|.<,:,.|.<<,:>126$a.

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

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐│
││┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐││
│││┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐│││
││││┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐││││
│││││     ┌┬┐├┼┤└┴┘│─ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}│││││
││││└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘││││
│││└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘│││
││└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘││
│└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Изменен вывод

┌──────────────────────┐
│┌────────────────────┐│
││┌──────────────────┐││
│││┌────────────────┐│││
││││┌──────────────┐││││
│││││┌───────────┬┐│││││
││││││0 0 0 0 0 0│││││││
│││││└───────────┴┘│││││
││││└──────────────┘││││
│││└────────────────┘│││
││└──────────────────┘││
│└────────────────────┘│
└──────────────────────┘

РЕДАКТИРОВАТЬ: Решение {:добавлено (показано между ###)

,:|.,.<,:>><|.,:>,.<|.>,:<<|.>|.,:,.<,.<,:,.<,###{:###:>|.<,:>,.|.<,:,.|.<<,:>126$a.

Использует монаду {::Карта . Большая часть остального кода - бесполезный мусор.


Обратите внимание, что я, конечно, мог бы расширить код на смешное количество символов, чтобы было труднее найти место (места), где два символа должны быть добавлены / удалены / изменены
Fatalize

Я думаю, что это был 3 дня для этого, поэтому, если вы отправите ответ, вы в безопасности.
Исаак

@isaacg Правильно, отредактировал ответ
Fatalize

12

Трещины

Руби, 14

Код

x=9;puts x*9*9

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

729

Изменен вывод

99999999999999999

4
Это выглядит так невинно. Я пытался, и я пытался, но я не знаю, где взять 17 от ...
Деннис

1
Я думал, что это было 18 9, поэтому я собирался что-то вроде '99'*2. wcТы предал меня!
Алекс Ван Лью

@AlexVanLiew 18 было бы легко. Обвините вашу оболочку за добавление перевода строки.
Деннис

@ Денис Как бы вы сделали это с 18? Я не мог понять это (но я также не знаю Руби).
Алекс Ван Лью



10

Трещины

Пролог, 10 байт

Код

X is 1/42.

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

X = 0.023809523809523808.

Изменен вывод

X = -2.


2
По какой-то причине я полностью упустил из виду тот факт, что это также может быть решено следующим образом: X is 1//4-2.это гораздо легче увидеть, чем мое первоначальное решение, которое взломало @ sp3000 ...
Fatalize

10

Трещины

Python 2, 43 байта

Код

print (sum(range(054321)*9876)*87654)/01234

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

334960491355406

Изменен вывод

222084148077792

Расстояние Левенштейна ровно 15. И оригинал, и измененный прогон менее 1 минуты на моем компьютере.


1
Я отредактировал ваше сообщение, чтобы отразить, что это представление, связанное с Python 2, из-за отсутствия круглых скобок printи умножения rangeна целое число. Тем не менее, я, кажется, получаю MemoryErrors из большого списка ...
Sp3000

1
Поскольку это не кодекс игры в гольф, вы можете уменьшить нагрузку на память, используя xrangeвместо этого, rangeи я полагаю itertools, генератор генератора, который повторяет последовательность xраз.
Алекс Ван Лью

1
@AlexVanLiew Но выигрыш - это в некотором смысле код-гольф, самый короткий без трещин. Сказав это, хотя, есть ненужное место и пара скобок ... или они необходимы? ;)
Sp3000

2
ИМО, этот ответ кажется неинтересным, если он опирается только на изменение соответствующих чисел (мы не знаем, так ли это), потому что в этом случае вы, вероятно, можете сделать его короче, и единственный способ его получить - просто грубой силой, а не умом.
Роковая

3
Трещины. Это было весело!
Исаак

8

Трещины

BrainFuck, 504 байта

Никто никогда не должен анализировать бредовый код. Это модифицированная версия более раннего кода, но любое изменение в коде Brainfuck имеет большое значение в выводе. Я использую переводчика по адресу http://esoteric.sange.fi/brainfuck/impl/interp/i.html для проверки своего кода. Удачи !

Код

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

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

 ___
/   \
|   |
\___/

Измененный вывод

}}}\}}}|.}}}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\\}}|.}.|///\

Примечание. Измененный вывод содержит несколько символов STX (ASCII 2) и EOT (ASCII 4)

Вот версия с кодами ASCII в скобках вместо непечатаемых символов:

(2)}}}(2)\}}}|(2).}}}.(2)|///\\(4)}|(2).(4)}(4).(2)|///\\(4)}}|(2).(4)}(4).(2)///\\(4)}}|(2).(4)}(4).(2)|///\\(4)}}(2).(4)}(4).(2)|///\\(4)}}|(2).(4)}(4).(2)|/(4)/\\(4)}}|(2).(4)}(4).(2)|///\\(4)}}|(2).(4)}(4).(2)|///\\(4)}}|(2).(4)}(4).(2)|///\\(4)}}|(2).(4)}(4).(2)|///\\(4)}}|(2).(4)}(4).(2)|///\

3
Вы злой. Но я найду это!
RedPanda

@ RedPanda Мой код имеет структуру. По крайней мере, это не случайно! Удачи!
AboveFire

есть ли в выводе непечатные файлы?
гордый haskeller

@proudhaskeller Да извините за это, я отредактирую пост, там есть куча символов STX (ASCII 2) и EOT (ASCII 4)
AboveFire


8

Трещины

Wolfram Language (Mathematica или WolframAlpha), 3 байта

Код

8.!

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

40320.

Изменен вывод

2.67182 - 0.891969 I

Для тех, кто пытается это на WolframAlpha, результат отображается как

Математическая графика

Я удалил свой предыдущий ответ, потому что он работал только на Mathematica, а не в WolframAlpha . Это поставило грабителей за платный доступ (вместо заслуженных баров), что было несправедливо.



@ Очень приятно! :)
Доктор Велизарий,

1
Каков был ответ другого? Я очень любопытный.
Мозговой гид

7

Трещины

MATLAB / OCTAVE, 7 байтов

Код:

cos(pi)

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

ans =

     -1

Изменен вывод:

ans =

   1.5708 - 0.8814i

Это дает расстояние Левенштейна ровно 15.



3
Большим предупреждением для меня было то, что реальная часть вашего измененного выхода - это пи / 2. Оттуда было нетрудно угадать решение.
Дэвид Чжан

7

Трещины

CJam, 8 символов

Код

"~f":i:#

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

17290024234092933295664461412112060373713158853249678427974319674060504032816100667656743434803884485234668769970047274563123327020396104330878852891146011372048615474145637592955298601510765168228550988848615653376

Изменен вывод

Вывод после модификации здесь . Оба занимают меньше минуты на моем 2GHz ноутбуке.

объяснение

Люди кажутся пораженными тем, как это работает. Код работает так:

"~f"       Push a string
    :i     Convert to a list of bytes [126 102]
      :#   Fold with # (power)

Это рассчитывает 126 ^ 102. Решение было:

"}\t~f"
       :i     Convert to a list of bytes [125 9 126 102]
         :#   Fold with # (power)

Это вычисляет ((125 ^ 9) ^ 126) ^ 102, что составляет сотни тысяч цифр.


6
Это преступно.
Алекс Ван Лью

Что ... Я действительно хочу знать, как это работает! ;)
Beta Decay


@ BetaDecay Я мог бы объяснить, как работает оригинал, но не версию Денниса. Интересно, как Маурис хотел, чтобы это было решено ...
Алекс Ван Лью

Святые бананы! WTF!
Мозговой гид

7

Трещины

Pyth, 8 байт

Код:

%CG^3y21

Начальный выход:

51230235128920219893

Измененный вывод:

58227066

1
Измененный результат равен CG mod (2^21 * 28). Я не знаю Пайта, поэтому я не вижу, как это изменить (3 ^ (2 * 21))...
Линн

1
Также CGравных sum(256**n * (122-n) for n in range(26)).
Линн

1
Измененный результат также равен CG mod (2^21 * 28 * 2*n), где 1 <= n <= 4, а также для n=6и n=12. Кроме того, CGэто просто строчный алфавит, интерпретируемый как базовое число 256. Интересно, есть ли еще один модуль с базой 3?
Алекс Ван Лью

%CG^2 26или %CG^4y13, но оба имеют расстояние 3 ...
Якуб


6

Трещины

Python 2, 58 байт

Код

R=range(01234);print sum(m<<min(m,n)for m in R for n in R)

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

2444542772018013876036977350299418162656593659528311114655474359757543862791958572561591492595632222632192542272836836649846934427359810217936317967768095940470375690509652583392001888886352103127515963142

Изменен вывод

4669

Правило 15 расстояний определенно усложнило ситуацию. Я надеюсь, что это идет хорошо.


Мне
кажется

Если вы распечатываете [m<<min(m,n)for m in R for n in R]в интерпретаторе, вы получаете действительно пугающие белые узоры.
Алекс Ван Лью


6

Трещины

Python 2, 50 байт

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

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

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

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'

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

'~~~~~~~~~~~~~~~~~~~'

Не слишком коротко, и, возможно, не слишком сложно, я действительно не знаю. Я постараюсь придумать что-то лучшее в ближайшее время.


Это 40 тильд, а затем 19 тильд? И я полагаю, это выполняется в переводчике?
Алекс Ван Лью


2
Резюме того , что я нашел до сих пор: не сочетание замены xс y, yс x, или заменить цифру в rangeрезультате в 19 тильды. Я также экспериментировал со вставкой -перед или xили y, и с заменой %на одну из + - / *, безрезультатно. Теперь я уверен, что требуется 1 или 2 вставки.
mbomb007

1
Хорошо, моя первая ссылка теперь правильно взломана.
Алекс Ван Лью

2
Я добавил небольшое объяснение, я действительно думаю, что это было действительно умно. Я не знаю, что я когда-либо видел комплексное понимание, а также полагаться на то, что Python просочился yв объем, был приятным штрихом.
Алекс Ван Лью

6

Трещины

PHP, 164 байта

Код

$S_U_M_M_E_R = 1;
$A_U_T_U_M_N = 2;
$T_I_M_E = 1;

if ($T_I_M_E == $S_U_M_M_E_R) {
    $A_C_=$T_I_=$O_N= 'SWIM' ? 'TAN' : 'DRINK';
}

print $T_I_M_E * $A_U_T_U_M_N;

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

2

Изменен вывод

-1.1306063769532


Отлично сработано! Я не думал, что это будет так легко взломать.
Разван

6

GolfScript, 15 байт (безопасно)

Код

10,{1+3?}%{*}*]

Измененный код

107,{1+3?}%{^}*]

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

47784725839872000000

Изменен вывод

557154

Explainations:

10,             # numbers from 0 to 10
   {1+3?}%      # add one and raise to the cube. (%=for each)
          {*}*] # take the product and place it in a list(useless)`

Измененный код

107,             # numbers from 0 to 107
    {1+3?}%      # add one and raise to the cube. (%=for each)
           {^}*] # xor them and place it in a list(useless)

Я действительно считаю, что теперь это безопасно, так что если вы хотите отредактировать свое сообщение
бета-распад

@ BetaDecay Я!
Беконаро


4

Трещины

C, 53 байта

Код

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

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

Expected Output

Изменен вывод

?

Наверное, слишком просто, но кто знает. (Примечание: технически это зависит от системы, но тип системы, в которой она выходит из строя, также не сможет выполнить все остальные представления здесь, поэтому я решил, что это спорный вопрос).

Трещины

редактировать

Я допустил ошибку. Новый код, более безопасный для очевидной атаки:

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

одинаковые выводы. Новый размер 65 байт. Надеюсь, сложнее ... хотя все еще, вероятно, слишком легко.




2
(примечание стороны - вероятно, это должны были быть два ответа)
Sp3000

@ Sp3000 Возможно, вы правы, хотя цель оригинала заключалась в том, чтобы найти такое же решение, я просто слишком сосредоточился на проблеме нечетного * числа (где вы можете превратить среднее число в /) и не учел проще * 0 изменить.
Лямбда-бета,

4

Взломанный issacg

MATLAB, 20 байтов

Код

format long
sin(i^pi)

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

0.331393418243797 - 1.109981778186163i

Измененный вывод

0.220584040749698 - 0.975367972083631i

Я попробовал кучу идей в интерпретаторе Octave онлайн. Еще ничего. Я попытался вещи , как с помощью sinh, asin, tan, pi^iи т.д. ...
mbomb007

@ mbomb007 - Я тоже в растерянности ... и я на 5-м месте по StackOverflow в MATLAB в целом!
rayryeng - Восстановить Монику



4

CJam, 28 байт (безопасно)

"jK=\~"5*)ib257b~{G$5$+}*]Jb

Попробуйте онлайн .

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

7705397905065379035618588652533563996660018265606606763127193120855297133322151462150247488267491212817218321670720380456985476811737021068519164822984561148339610474891720342171053455881107227302663880445203851079295537592154028123394687360216561235621729967011148112746984677807932995700334185726563970223018774

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

16650180159137697345989048346412185774444335111603430666402604460993564226370500963166158223117360250140073061887053326627468495236957122711656527124216908303912850181595147494475577084810653496778801228980874902968634143062

Решение

"jK=\~"5*Wcib257b~{G$5$+}*]Jb

Попробуйте онлайн.

Как это устроено

Я пошел немного за борт с этим ...

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

"jK=\~"5* e# Push "jK=\~jK=\~jK=\~jK=\~jK=\~".
)i        e# Pop the last character and cast it to integer.
b257b     e# Convert the remainder of the string from that base to base 257.
~         e# Dump all resulting base-257 digits on the stack:
          e# 137 72 124 88 81 145 85 32 28 251 118 230 53 13 245 147 256 116 187 22 224
{         e# Do the following 224 times:
  G$5$+   e#   Add copies of the 5th and 17th topmost integers on the stack
          e#   (recurrence of a lagged Fibonacci sequence).
}*        e#
]         e# Wrap the entire stack in an array.
Jb        e# Convert from base 19 to integer.
          e# The resulting integer is printed implicitly.

Предполагаемое изменение заменяется (iна Wci.

Это оставляет повторяющуюся строку нетронутой и толкает 65535 (путем приведения к 16-разрядному символу без знака, а затем обратно к целому числу), так что первые элементы отставшей последовательности Фибоначчи становятся

87 225 162 210 73 196 142 219 175 61 40 147 0 93 75 55 103 116 237 188 108 122 176 133 135 240 251 155 224 82 181 75 23 87 139 49 148 169 84 109 110 166 52 103 83 185 78 73

и цикл повторяется 126 раз.


Теперь это безопасно, не так ли?
бета-распад

@BetaDecay Я в значительной степени использовал один и тот же прием в обоих ответах CJam, поэтому мне пришлось подождать, чтобы опубликовать оба решения одновременно. Теперь безопасно.
Деннис

Как только я понял, что это было, я понял, что есть так много вещей, которые можно подправить, и я даже не потрудился попытать грубую силу этой ... хорошей работой :)
Sp3000

4

Javascript, 47 (безопасно)

Код

for(var i=64460,x=773;i>=1324;)x=i--/x;alert(x)

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

11.948938595656971

Изменен вывод

3.679331284911481

Расстояние ровно 15.

Проверено в Chrome и IE.

Решение

for(var i=64460,x=773;i>>=1<324;)x=i--/x;alert(x)

При этом используется оператор присваивания сдвига битов, i>>=1чтобы сделать интервал цикла нелинейным. Также у этого есть забавное свойство, что кто-то, пытающийся перебором решения, столкнется с несколькими вариантами, которые работают бесконечно.


3

Трещины

Фантом , 26

Код

Float.makeBits(1123581321)

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

5.55122931E-315

Изменен вывод

124.24518585205078

Безопасность через неизвестность, если никто не знает язык, никто не может взломать его. Левенштейн Дистанция 15. Беги в фанш.


Я думаю, мне нужно выучить Fantom ...
AboveFire


3

Трещины

CJam, 6 символов

25mse7

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

-1323517.5009777304

Изменен вывод

72004899337.38588

Это может быть слишком легко. :П


Трещины? Вывод немного отличается в моем браузере (и полностью отличается от интерпретатора Java).
Денис

@ Денис Не совсем уверен, почему, но изменения верны.
The_Basset_Hound


3

Brainfuck, 100 байт

Код

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

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

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Изменен вывод

[
  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ

Примечание: возможно легко взломать. Но тогда в Brainfuck нет ничего проще.


2
Есть ли в выводе непечатные символы?
Sp3000

Кажется, что некоторые съели, но все еще остается много непечатных, когда я пытаюсь скопировать и вставить, так что я предполагаю, что это так
Sp3000

@ Sp3000 Э-э, не должно быть никаких печатных изданий. Какой переводчик вы используете?
Курусаги

Метод тоже не мой, продолжай пытаться.
Курусаги

5
Если вы можете опубликовать фактические коды ASCII вывода, это было бы здорово.
Алекс Ван Лью

3

Трещины

современный Perl 5, 70

Код

@array = (qw smiles) x 11;
s/.*// foreach @array;
print "@array\n";

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

Единственная новая строка.

Изменен вывод

 mile mile mile mile mile mile mile mile mile mile

Вывод начинается с пробела и заканчивается новой строкой.


@AlexVanLiew Обратите внимание, что перед первым m есть пробел!
Денис

@ Денис О нет! Я знал, что это не может быть так просто.
Алекс Ван Лью


@DomHastings Да! Хорошо решено. Как кто-то прокомментировал ваше решение, дополнительный символ может быть в любом месте лишним пробелом. Я сказал «современный» Perl 5, потому что eachотносится к массиву только с некоторой версии.
msh210

2
Если бы он не взломал его, вы бы сказали, что «пропустили его за милю»? : D
mbomb007


3

Perl, 12 байт

Трещины

Код

print sin 97

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

0.379607739027522

Желаемый вывод

-0.64618863474386

1
Я могу подтвердить , что это почти наверняка не print sin xx, print sin xx97или print sin 97xxгде xxлюбые два числа.
Алекс Ван Лью


@DomHastings действительно - молодец. Из интереса, как ты это сделал?
abligh

3
После прочтения @ комментарий AlexVanLiew, я испытания , аналогичные номера 9.?7, 9.7?и т.д., но понял , что это должно было быть оператором. Опробовал все, что мог придумать в отрывках, как будто в perl -e 'print map{sin((+"9${_}")x7).$/}1..9'итоге получил правильную комбинацию!
Дом Гастингс

@DomHastings запоздали +1 за твой крэк.
abligh

3

Трещины

SWI-Пролог, 54 байта

Код

assert(d(E,F):-(print(E),print(F))). d(123456,123456).

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

true.

123456123456
true.

Изменен вывод

true.

false.

Я попытался заставить переводчика SWI-Prolog работать на днях, но не смог, так что я сделаю удар в темноте; если вы удалите Eи Fв printутверждениях вы получите то, что вы хотите?
Алекс Ван Лью

@AlexVanLiew Я получаю синтаксические ошибки от этого
Sp3000

@AlexVanLiew Неверно
Fatalize

Ах хорошо. Стоит выстрел.
Алекс Ван Лью

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