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


60

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

Виклик

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

Змінений вихід повинен мати відстань Левенштейна, яка дорівнює 15 або більше від початкового виводу.

Вихід повинен бути не порожнім і кінцевим. Тому ваша програма повинна припинитись протягом 1 хвилини.

Вихід повинен бути детермінованим, виводити те саме, щоразу, коли ви запускаєте програму. Він також не повинен залежати від платформи.

Будь-які хеш-функції заборонені , як і вбудовані в PRNG. Аналогічно, висівання RNG не допускається.

Через три дні незахищене подання стане безпечним. Для того, щоб заявити про цю безпеку, слід відредагувати свою відповідь, щоб показати правильну відповідь. (Пояснення: Поки ви не виявите відповідь, ви не в безпеці і все одно можете зламатись.)

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

Ваша відповідь має бути у такому форматі:

# <Language name>, <Program length>

## Code

<code goes here>

## Original Output

<output goes here>

## Changed output

<changed output goes here>

Розбійники

Завдання грабіжників полягає в тому, щоб з’ясувати, яких двох персонажів ви змінили. Якщо грабіжник зламав ваше рішення, вони залишать коментар до вашої відповіді.

Ви можете знайти нитку розбійників тут .

Перемога

Перемагає людина, яка має найкоротший розв'язаний варіант.

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

<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 Як визначити хеш-функцію?
isaacg

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

1
@RedPanda Так, я б так подумав
Beta Decay

5
@isaacg Я вирішив змінити безпечну дату на три дні
Beta Decay

4
Чи можна було б розмістити код лідерів на меншій кількості рядків, щоб він займав менше візуального місця?
isaacg

Відповіді:


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!, очевидно , будучи modulo'ed поруч , який залишив факторіали від 0 до 8 незайманих в вихідних даних . Я не помітив, 9!що перший фактор був більшим за 2^16. Дуже приємний виклик у будь-якому випадку.
Андреа Біондо

39

Тріснув

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

Я спробував відповісти Шекспіра. Це недовго, і у мене виникли труднощі змінити вихід лише з 2 символами, але я думаю, що мені це вдалося досить добре. Успіхів усім. В якості бічної примітки я використав "компілятор", доступний за цією адресою, і він може не працювати з іншим. (це не працює з онлайн-перекладачем) Вихід не містить недрукованих символів.

Код

Прихована зміна.

Олена, молода жінка з неабияким терпінням.
Гелена, така ж молода жінка надзвичайної грації.
Клавдіо, чудова людина, багато спірної з Клавдієм.
Клавдій, лестощі.
Архиєпископ Кентерберійський, марний.


          Дія I: образи та лестощі Клавдія.

          Сцена I: Образа Олени.

[Введіть Клавдія та Олену]

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

[Exeunt]

          Сцена II: Похвала Олени.

[Введіть Клаудіо та Гелену]

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

[Exeunt]

          Сцена III: Образа Клаудіо

[Введіть Клавдія та Олену]

Олена:
 Ти така ж дурна, як сума суми тобі і коту і мені.
[Вихід з Олени]

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

Клавдій:
 Ти така ж дурна, як сума тобі і добуток 
 продукт мене та Олени та Олени

[Exeunt]

          Сцена IV: Підсумковий відлік часу

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

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

Архиєпископ Кентерберійський:
 Хіба я кращий за добру дорогу?

Клавдій:
 Якщо ні, то повернемося до образи Клаудіо.

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

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

Клавдій:
 Відкрий своє серце!
 Відкрий своє серце!
[Exeunt]

Оригінальний вихід

11324620811132462081

Змінено вихід

11

9
Воістину дивовижна. Ця історія наблизила до мене сльози.
Alex Van Liew

6
@AlexVanLiew Писати мені знадобилося дуже багато часу. Це мій шедевр!
Надвечір


Дуже
приємна

24

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

Код

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

Оригінальний вихід

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

Змінено вихід

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

EDIT: Рішення {:додано (показано між ###)

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

Використовує Monad {::Map . Більшість решти коду - марний сміття.


Зауважте, що я, безумовно, міг би розширити код смішною кількістю символів, щоб ускладнити пошук місця (місць), де два символи потрібно додати / видалити / змінити
Fatalize

Я думаю, що для цього минуло 3 дні, тож якщо ви опублікуєте відповідь, ви в безпеці.
isaacg

@isaacg Правильно, відредагував відповідь
Fatalize

12

Тріснув

Рубі, 14

Код

x=9;puts x*9*9

Оригінальний вихід

729

Змінено вихід

99999999999999999

4
Це виглядає так невинно. Я спробував і спробував, але не знаю, де взяти 17 з ...
Денніс

1
Я думав, що це 18 9-х, тому я збирався щось подібне '99'*2. wc, ти зрадив мене!
Алекс Ван Лів

@AlexVanLiew 18 було б легко. Звинувачуйте свою оболонку в тому, що вона додала стрічковий канал.
Денніс

@Dennis Як би ти це зробив з 18? Я не міг цього зрозуміти (але Рубі також не знаю).
Alex Van Liew



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на ціле число. Однак, здається, я отримую MemoryErrorз великого списку ...
Sp3000

1
Оскільки це не код гольфу, ви можете зменшити навантаження на пам'ять, використовуючи xrangeзамість цього, rangeі я вважаю, що він itertoolsмає генератор-генератор, який повторює послідовність xкількість разів.
Alex Van Liew

1
@AlexVanLiew Але бал - це кодовий гольф у певному сенсі, найкоротший без розриву. Сказавши, що все-таки є зайвий простір і пара паронів ... чи вони потрібні? ;)
Sp3000

2
IMO ця відповідь видається нецікавою, якщо вона покладається лише на зміну залучених чисел (ми не знаємо, чи так це), тому що в такому випадку ви, ймовірно, можете зробити коротше, і єдиний спосіб, коли він коли-небудь зламається, це просто силою, а не розумністю.
Фаталізувати

3
Тріснув. Це було весело!
isaacg

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 Мій код має структуру. Принаймні, це не випадково! Удачі!
Надвечір

чи є якісь недруковані матеріали у виході?
гордий haskeller

@proudhaskeller Так вибачте, я відредагую пост, є купа символів STX (ASCII 2) та EOT (ASCII 4)
AboveFire


8

тріснув

Мова Вольфрама (Mathematica або WolframAlpha), 3 байти

Код

8.!

Оригінальний вихід

40320.

Змінено вихід

2.67182 - 0.891969 I

Для тих, хто спробує це на WolframAlpha, результат показує як

Графіка математики

Я видалив попередню відповідь, оскільки вона працювала лише на Mathematica, а не на WolframAlpha . Це поставило грабіжників за платником (замість заслужених барів), що було не справедливо.



@abligh Приємно! :)
доктор belisarius

1
Якою була відповідь іншого? Мені дуже цікаво.
Brain Guider

7

Тріснув

MATLAB / OCTAVE, 7 байт

Код:

cos(pi)

Оригінальний вихід:

ans =

     -1

Змінено вихід:

ans =

   1.5708 - 0.8814i

Це дає відстань Левенштейна рівно 15.



3
Великий типофф для мене помічав, що реальна частина вашого зміненого результату - pi / 2. Звідти не важко було здогадатися про рішення.
Девід Чжан

7

Тріснув

CJam, 8 символів

Код

"~f":i:#

Оригінальний вихід

17290024234092933295664461412112060373713158853249678427974319674060504032816100667656743434803884485234668769970047274563123327020396104330878852891146011372048615474145637592955298601510765168228550988848615653376

Змінено вихід

Вихід після модифікації тут . Обидва займають менше ніж хвилину на моєму ноутбуці 2 ГГц.

Пояснення

Люди здаються враженими, як це працює. Код працює так:

"~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
Це злочинно.
Алекс Ван Лів

Що ... Я дуже хочу знати, як це працює! ;)
бета-розпад


@BetaDecay Я міг би пояснити, як працює оригінал, але не версія Денніса. Цікаво, як Маврис мав на увазі це вирішити ...
Алекс Ван Лів

Святі банани! WTF!
Brain Guider

7

Тріснув

Pyth, 8 байт

Код:

%CG^3y21

Початковий вихід:

51230235128920219893

Змінено вихід:

58227066

1
Змінений вихід дорівнює CG mod (2^21 * 28). Я не знаю Pyth, тож я не бачу, як перетворитись (3 ^ (2 * 21))на це ...
Lynn

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?
Alex Van Liew

%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 відстаней зробило справи складними. Я сподіваюся, що це добре.


Те, що 4669 = 667 * 7 і що останнім елементом діапазону (01234) є 667, мені підозріло ...
Fatalize

Якщо ви роздрукуєте [m<<min(m,n)for m in R for n in R]в перекладачі, ви отримаєте кілька справді моторошних шаблонів білого шуму.
Alex Van Liew


6

Тріснув

Python 2, 50 байт

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

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

Оригінальний вихід:

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

Модифікований вихід:

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

Не надто короткий і, можливо, не надто важкий, я насправді не знаю. Спробую незабаром придумати щось краще.


Це 40 тильдів, а потім 19 тильдів? І я вважаю, що це працює у перекладача?
Alex Van Liew

Тріснув , я думаю
Alex Van Liew

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

1
Гаразд, моє перше посилання зараз розбиває його правильно.
Alex Van Liew

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

Пояснення:

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)

Я вважаю, що це зараз безпечно, тому якщо ви хочете відредагувати свою публікацію
Beta Decay

@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 зміни.
LambdaBeta

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 - Я теж тут втрачаю ... і я п’ята найвища на 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, тому мені довелося чекати, щоб опублікувати обидва рішення відразу. Зараз це безпечно.
Денніс

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

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. Виконайте його у фанші.


Я думаю, мені потрібно навчитися
Фантому


3

Тріснув

CJam, 6 символів

25mse7

Оригінальний вихід

-1323517.5009777304

Змінено вихід

72004899337.38588

Це може бути занадто просто. : P


Тріснув? Вихід у моєму браузері трохи відрізняється (і зовсім відрізняється від інтерпретатора Java).
Денніс

@Dennis Не зовсім впевнений, чому, але зміни правильні.
The_Basset_Hound

3

Тріснув

Ява, 149 символів

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

Оригінальний вихід

174542852132661

Модифікований вихід

106906909674100

Підказка:

Випадкова.java



3

Brainfuck, 100 байт

Код

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

Оригінальний вихід

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Змінено вихід

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

Примітка. Можливо, легко зламати. Але тоді в Brainfuck нічого не легко.


2
Чи є якісь недруковані символи у висновку?
Sp3000

Здається, що декілька з'їли, але все ще залишається багато недрукованих матеріалів, коли я намагаюся скопіювати та скопіювати, тому я припускаю, що це все
Sp3000

@ Sp3000 Е-ні, не повинно бути ніяких друкованих видань. Якого перекладача ви використовуєте?
Kurousagi

Також метод не дорівнює моєму - продовжуйте намагатися.
Kurousagi

5
Якщо ви можете розмістити фактичні ASCII-коди результатів, які були б приголомшливими.
Alex Van Liew

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 Зауважте, що перед першим м є пробіл!
Денніс

@Dennis О, ні! Я знав, що це не може бути так просто.
Alex Van Liew

Я не впевнений, але я думаю, що це в мене є ...
Дом Гастінгс

@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будь-які два числа.
Alex Van Liew


@DomHastings дійсно - молодець. З інтересу, як ви це зробили?
abligh

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

@DomHastings запізнився +1 за твою тріщину.
abligh

3

Тріснув

SWI-Prolog, 54 байти

Код

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

Оригінальний вихід

true.

123456123456
true.

Змінено вихід

true.

false.

Я спробував набрати інтерпретатора SWI-Prolog, який працював днями, але не зміг, тому я зайняв удар у темряві; якщо ви вилучите Eі Fу printвисловлюваннях ви отримаєте те, що хочете?
Alex Van Liew

@AlexVanLiew Я отримую від цього синтаксичні помилки
Sp3000,

@AlexVanLiew Неправильно
Fatalize

Ну добре. Варто пострілу.
Alex Van Liew

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