Drabina kodu, gliny


36

Uwaga: to wyzwanie zostało zakończone. Zgłoszenia są nadal mile widziane, ale nie można wygrać.

To jest wątek gliniarzy. Wątek rabusiów idzie tutaj .

Napisz kod, który wyświetli liczbę całkowitą 1. Jeśli dodasz, usuniesz lub podmienisz pojedynczy znak (swojego wyboru), kod powinien wypisać liczbę całkowitą 2. Zmień jeszcze jeden znak (taki sam lub inny), a kod powinien zostać wyświetlony 3. Kontynuuj tak, jak to możliwe, ale maksymalnie do 10. Domyślne formaty wyjściowe, takie jak ans = 1są akceptowane. Możesz zignorować dane wyjściowe dla STDERR (lub odpowiednika).

Musisz ujawnić język, liczbę bajtów kodu początkowego, liczbę liczb całkowitych, dla których on działa, a także opcjonalną liczbę znaków kodu początkowego. Uwaga: Nie musisz ujawniać żadnych postaci, ale pamiętaj, że ujawnienie postaci może utrudnić złodziejom, ponieważ muszą używać tej samej postaci w tej samej pozycji. Możesz wybrać znak, którego używasz do oznaczania nieujawnionych znaków (na przykład podkreślenie), ale pamiętaj, aby to określić.

Policjanci mogą dostarczyć niezrackowany kod po tygodniu i nazwać zgłoszenie „BEZPIECZNY”. Zwycięskie zgłoszenie będzie najkrótszym niezakończonym zgłoszeniem, które daje liczbę 10. Jeśli żadne niezrakowane zgłoszenia nie będą w stanie wydrukować 10, wygra najkrótszy kod, który daje 9, i tak dalej. Pamiętaj, że złodzieje nie muszą wprowadzać takich samych zmian jak ty i nie muszą odtwarzać dokładnego kodu (chyba że ujawnisz wszystkie znaki). Muszą tylko reprodukować dane wyjściowe.

Zgłoszenia wysłane później niż 24 listopada są mile widziane, ale nie kwalifikują się do wygranej (ponieważ prawdopodobnie będzie mniej rabusiów).


Przykładowy post:

Poniższy post jest przesłaniem w języku MyLang, ma długość 9 bajtów i działa z cyframi 1–8.

MyLang, 9 bajtów, 8 cyfr

To poddanie pracuje dla 1 - 8. znaki objawione są oznaczone znakiem podkreślenia: _.

abc____i

Tabela liderów

Oświadczenie: Tabela liderów nie jest testowana, a niekontrolowane zgłoszenia mogą nie pojawić się na liście.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><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;}#api_error{color: red;font-weight: bold;margin: 5px;}</style> <script>QUESTION_ID=99546;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 byscore=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 m(s){if('error_message' in s) jQuery('#api_error').text('API Error: '+s.error_message);}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){m(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])+).*(0.\d+)/.exec(h);var e = [[n++, m ? m[2]-0 : 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.items.length == 100) g(p + 1);else{var s=[[uncracked_list, '#uncracked'], [safe_list, '#safe']];for(var i=0;i<2;i++) u(s[i],byscore);jQuery('#uncracked_by_score').bind('click',function(){u(s[0],byscore);return false});jQuery('#uncracked_by_creation').bind('click',function(){u(s[0],bycreation);return false});}}).error(function(e){m(e.responseJSON);});}g(1);</script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"><div id="api_error"></div><div class="main"><h3>Uncracked submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="uncracked"></tbody></table><div>Sort by: <a href="#" id="uncracked_by_score">score</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">Score</th> <th>User</th> </tr> <tbody id="safe"></tbody></table></div>


Nie bardzo rozumiem ... dany kod w dowolnym CJam które produkuje 1, w jaki sposób można zapobiec złodziei od dodawania )kilkakrotnie , aby wygenerować ciąg liczb? To samo dotyczyłoby kilku języków
Luis Mendo,

2
Jeśli jest to możliwe w przypadku dowolnego programu, który 1wydaje, CJam wydaje się złym wyborem języka dla tego wyzwania. Nie ma sposobu, aby temu zapobiec.
Stewie Griffin,

3
@LuisMendo Cóż, z pewnością sprawi, że będzie to bardziej interesujące ...
LegionMammal978

1
@DanielJour Można go modyfikować do dowolnej liczby, ale maksymalna liczba, jaką muszą znaleźć złodzieje 10. Ta zasada obowiązuje, ponieważ wiele zgłoszeń można prawdopodobnie rozszerzyć do nieskończoności (teoretycznie), więc punktowanie na podstawie najwyższej osiągniętej liczby nie miałoby sensu.
Stewie Griffin

1
Możesz spróbować zdyskwalifikować wpis tylko wtedy, gdy nagłówek zawiera crackedw jakiejś formie. To właśnie robi obecnie przeprojektowany skrypt użytkownika .
ETHprodukcje

Odpowiedzi:


1

Sześciokąt , 18 bajtów, 10 cyfr, BEZPIECZNY

To poddanie pracuje dla 1 - 10. znaki objawione są oznaczone znakiem podkreślenia: _.

.__{_]5[$@.;=@$!!1

Możesz wypróbować Hexagony online tutaj.

Moje rozwiązanie:

1:   .<[{8]5[$@.;=@$!!10
2:   .<[{8]5[$@);=@$!!10
3:   2<[{8]5[$@);=@$!!10
4:   3<[{8]5[$@);=@$!!10
5:   4<[{8]5[$@);=@$!!10
6:   5<[{8]5[$@);=@$!!10
6:   7<[{8]5[$@);=@$!!10
8:   7<[{8]5[$@);=@$!!10
9:   8<[{8]5[$@);=@$!!10
10:  9<[{8]5[$@);=@$!!10

Hex dla wyjścia 1:

Wypróbuj online!

Full Hex:
  . < [ 
 { 8 ] 5
[ $ @ . ;
 = @ $ ! 
  ! 1 0

Important parts:
  . < .
 . 8 . 5
. $ @ . ;
 . . $ .
  . 1 .
  1. Na <brzegu pamięci jest 0, więc się pojawia.
  2. Trafienia 1
  3. Przeskakuje do 5
  4. Przeskakuje 8, ale zostaje odwrócony <i 8wraca.
  5. Uderza 5ponownie
  6. Przeskakuje 1
  7. Uderza <w tym momencie wartość pamięć 1585, która mod 256, dzieje się ASCII1
  8. Wreszcie drukuje i wychodzi z ;@.

Hex dla wyjścia 2:

Wypróbuj online!

Important parts:
  . < .
 . 8 . 5
. $ @ ) ;
 . . $ .
  . 1 .

Podąża tą samą ścieżką, ale w drodze powrotnej uderza w, )która zwiększa krawędź pamięci do 1586 lub 2.


Hex dla wyjścia 3-9:

Wypróbuj online!

Important parts:
  2 < [
 . . ] .
. $ . ) .
 . @ . !
  . 1 .
  1. Hits 2
  2. Teraz krawędź pamięci jest dodatnia, kiedy się zbliża <, więc się zmniejsza.
  3. ]Zmienia wskaźnik instrukcji, ale natychmiast wraca z[
  4. ) przyrosty do 3
  5. ! Wydruki 3
  6. $pozostaje z pierwszych dwóch liczb, więc przeskakujemy nad końcem ( @)
  7. 1 zmienia krawędź pamięci, ale teraz to nie ma znaczenia.
  8. < odzwierciedla wskaźnik z powrotem.
  9. Znów 1nie ma to znaczenia, ponieważ uderzamy, @aby zakończyć program.


10

Oktawa, 55 bajtów, 10 cyfr, pęknięty

(o__(O_o_(@(__o)o__-O}_)_(0<O,{_(_o_O-1)+1_@(_1}_)(__o_

_ jest nieznaną postacią.

Rozwiązanie

(o=@(O,o)(@(O,o)o{2-O}())(0<O,{@()o(O-1)+1,@()1}))(0,o)%, a następnie zmieniając ostatni 0na 1,2,3itp.

Biorąc pod uwagę x, oblicza się to rekurencyjnie x+1. Składa się głównie z dwóch anonimowych funkcji. Jeden zawiera ifinstrukcję zakotwiczenia rekurencji:

if_ = @( boolean, outcomes) outcomes{ 2 - boolean}();

To po prostu nadużywanie faktu, że wartości boolowskie oceniają na 0lub 1. Ta funkcja akceptuje wartość logiczną i tablicę komórkową dwóch funkcji i ocenia jedną lub drugą z tych dwóch funkcji w zależności od wartości logicznej. Druga część to faktyczna rekurencja:

plus_one = @(n,f) if_(0<n ,{@()f(n-1)+1, @()1})

ponieważ dowolna funkcja jest anonimowa, nie można uzyskać do niej bezpośredniego dostępu z itsefl. Dlatego potrzebujemy drugiego argumentufpierwszy. Później podamy uchwyt funkcji instelf jako drugi argument, więc końcowa funkcja będzie wyglądać tak:

plus_one_final = @(n)plus_one(n,plus_one);

Tak więc w tym zapisie moje przesłanie brzmi:

(plus_one=@(n,f)(@(boolean,outcomes)outcomes{2-boolean}())(0<n,{@()f(n-1)+1,@()1}))(n,f)

zapytałem o kotwice rekurencyjne dla anonimowych funkcji w MATLAB jakiś czas temu przy przepełnieniu stosu .


19
o_O O____o O_O o_O
TuxCrafting

Nie jestem pewien, czy to naprawdę tak trudne do złamania =)
wada

Cóż, na pewno jak diabli nie jest łatwo złamać! Mógłby to zrobić za pomocą długopisu i papieru (!)
Stewie Griffin

Traktuję to jako komplement :) Myślę, że polubisz moje rozwiązanie, ale nie zdradzę niczego, dopóki nie zostanie złamane / będzie bezpieczne.
flawr



8

Perl, 12 bajtów, 10 cyfr, pęknięty!

Podkreślenia przedstawiają nieznane postacie.

____;say__-9

Prawdopodobnie dość łatwe i nie zaskoczyłoby mnie, gdyby istniało wiele rozwiązań. Mimo to złamanie go może być fajne.

(Zamierzone rozwiązanie było takie samo jak crack. Jest to zasadniczo tylko problem związany z przypisaniem 10 zmiennej do czterech znaków, co jest zaskakująco trudne w Perlu; w przeciwieństwie do wielu języków golfowych, nie ma zmiennej, która z początku zaczyna się od 10.)


1
Pęknięty . Na początku myślałem, że to coś takiego $_=1;say;#-9, ale nie mogłem wymyślić, jak zdobyć 10.
Riley

7

Perl, 46 bajtów, 10 cyfr, bezpieczny

Problem

__b_b_\__}_b_b_b_0_;
$b[0]=10;$b{0}=1;say$b[0]

Krótsze problemy mają tendencję do szybkiego pękania, więc pomyślałem, że spróbuję dłużej. Dłuższe mają również tendencję do pękania, jeśli ludzie zostawią wystarczająco dużo odstępu, aby zakraść coś niegrzecznego, jak saylub exitwewnątrz, więc wszystkie luki tutaj są krótkie. Ukryte postacie są reprezentowane za pomocą _.

Moje rozwiązanie

sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=1;say$b[0]

Aby wydrukować 2, 3, itd., Aż do 9, ciągle się zmienia numer przypisany $b{0} w drugiej linii (tj $b{0}=2, $b{0}=3etc.). Program dla 9 wygląda następująco:

sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=9;say$b[0]

Następnie, aby uzyskać 10, skomentuj pierwszy wiersz, przygotowując #do niego znak.

Wyjaśnienie

Pierwszą rzeczą, na którą należy zwrócić uwagę, jest to, że rozwiązanie nie jest tak naprawdę gra w golfa oprócz usuwania białych znaków: jeśli rozłożymy je na bardziej czytelne białe znaki, otrzymujemy:

sub b { \@_ }
*b = b $b{0};
$b[0] = 10;
$b{0} = 1;
say $b[0];

Zwykle, kiedy uzyskujesz dostęp do argumentów podprogramu w Perlu, robisz to poprzez skopiowanie ich z @_. Jest ku temu dobry powód: @_aliasy argumentów podanych podprogramowi (np. Do (sub { $_[0] = 3 })->($x)przypisania $x), co zwykle nie jest pożądane.

Chociaż @_może się to wydawać magiczne, w rzeczywistości wykorzystuje tylko standardową funkcję wewnętrznych elementów Perla (która jest łatwo dostępna z XS, ale pojawia się tylko w kilku dziwnych przypadkach w czystym Perlu, takim jak ona @_sama): tablica nie przechowuje bezpośrednio swoich elementów , ale raczej przez odniesienie. Tak więc, gdy wywołujemy bdrugą linię poniżej, Perl generuje tablicę (nazywając ją @_), której pierwszy element jest odwołaniem do tej samej pamięci, z której $b{0}korzysta. (Wartości skrótu są również przechowywane przez odniesienie; $ _ [0] i $ b {0} odnoszą się do tego samego magazynu w tym momencie.) Ponieważ @_nie robi się nic specjalnego z wewnętrznego punktu widzenia, możemy wziąć odniesienie do niego, tak jak moglibyśmy z każdą inną tablicą, powodując, że przeżył on podprogram, w którym jest zdefiniowany.

Zmienne Perla odnoszą się również do przechowywania danych przez odniesienie. Dawno, dawno temu, ludzie wykorzystywane do kodu użytkowania jak *x = *y;do zestawu $xjako alias do $y(przez co czyni je odwołać samo), podobnie @xjak aliasu @y, %xjako alias do %y, i tak dalej. To raczej łamie niezmienność, że zmienne o podobnych nazwach nie muszą działać podobnie, więc współczesny Perl stanowi alternatywę; przypisanie odwołania do kafelka powoduje zastąpienie tylko zmiennej pasującej do typu odwołania (więc *x = \%yalias %xwskazywałby na to samo miejsce do przechowywania, %yale pozostawiłoby, powiedzmy, $xsam). Ta składnia w szczególności nie dba o to, czy pamięć, do której aliasing ma nazwę, ma więc znaczenie, kiedy przypisujemy wartość zwracanąb(który jest odwołaniem do tablicy, która utrzymuje tablicę poprzednio nazywaną „ @_żywą”) *b, dzieje się to, że@bzmienia się na alias listy argumentów do wywołania do b(pozostawiając %bniezmieniony). Oznacza to w szczególności, że $b[0]i $b{0}teraz wskazują na ten sam magazyn, a przypisanie do jednego spowoduje zatem zmianę drugiego. Od tego momentu wszystko jest całkowicie proste.

Dokumentacja Perla tak naprawdę nie mówi o takich szczegółach, więc nie dziwię się, że ktoś dostał crack; natura @_nie do końca podobna do innych tablic nie jest czymś, co jest naprawdę podkreślane, a większość stylów kodowania ma na celu zminimalizowanie efektów, a nie ich wzmocnienie.


1
Jestem tym bardzo zaintrygowany. Dowiedziałem się o pseudo-hashach i odświeżyłem swoją pamięć przy odwoływaniu i usuwaniu odnośników, ale nie mogę tego zrozumieć!
Dom Hastings,

1
@DomHastings, ... i wygłupiałem się z różnymi postaciami demarkacyjnymi dla qi si ( yi mgłównie próbuję zmusić ich do zakończenia po $b[0]zadaniu), ale nic dla mnie nie działa (jeszcze).
msh210

Obaj byliście na niewłaściwym torze, ale prawdą jest, że język lub moje zdanie nie pomaga wiele w tym, co jest właściwe (musiałem zostawić jedną wskazówkę, aby uniknąć pozostawienia zbyt dużej luki, ale jest mnóstwo powodów, dla których program może zawierać ukośnik odwrotny, nie zawsze jest to związane z odwołaniami).

Czuję się, jakbym był frustrująco blisko. Miałem sub b{\@_}cementuje się w mojej głowie, i, choć eksperymentował ze *bnie mogłem się go! Dziękuję za wyjaśnienie. Mógłbym przelotnie nad tym wyjaśnić w twoim wyjaśnieniu, ale dlaczego sub b{\@_}*b=b$b[0]nie robi tego samego?
Dom Hastings,

Próbujesz sprawić, by element tablicowy i element mieszający współużytkowały pamięć, więc musisz wspomnieć o obu. Element tablicy jest niejawnie wspomniany, gdy przypisujesz odwołanie do tablicy ( \@_) *b, ale musisz samodzielnie wymienić element skrótu. Z *b=b$b[0], po prostu aliasingujesz nowy $b[0](po zmianie gdzie @bpunkty) do $b[0]istniejącego na początku programu, co jest bezużyteczne.

5

JavaScript, 30 bajtów, 10 cyfr, pęknięty

alert(Array(_)________.length)

Nie powinno to być zbyt trudne, ale mam nadzieję, że jest to wystarczająco trudne, aby zapewnić wyzwanie. :) Nie objawione znaki są oznaczone _.


Niezłe! Miałem sporo czasu na rozwiązanie tego, było to łatwe, ale jednocześnie trudne.
Kritixi Lithos

5

Perl, 14 bajtów, 10 cyfr, pęknięty

say_!"___"%""_

Działa od 1 do 10. _są ukrytymi postaciami.

Myślę, że nie powinno to być zbyt trudne do złamania. Mam trudniejszy, na 22 bajty, opublikuję go, jeśli ten jest pęknięty.


Oryginalny kod:

say"!"=~y"%""c

I zastąpić "!"przez ciąg długości numeru, który chcesz wydrukować, na przykład !, !!, !!!, itd.

Jednak ais523 znalazł inny sposób:

say"!"+1#"%""r

2
Pęknięty . Podejrzewam, że wcale nie o to chodziło. (Próbowałem zrobić coś przy użyciu wyrażenia regularnego, ale było to o wiele prostsze.)



4

Galaretka , 7 bajtów , 10 cyfr, pęknięta

“1‘ỌȮḊ‘

Bez symboli wieloznacznych.

Osiągnięte pęknięcie (używając eval z argumentem) było, jak wielu wydaje się być w tym wątku, nie zamierzone.

Zamierzonym pęknięciem było:

“1‘ỌȮḊ‘ - (prints 1)
“1‘     - code page index list of characters "1": [49]
   Ọ    - cast to ordinals: ['1']
    Ȯ   - print (with no line feed) and return input: effectively prints "1"
        -     (but if left at this would then implicitly print another "1")
     Ḋ  - dequeue: []
      ‘ - increment (vectorises): []
        - implicit print: prints ""

“1‘ỌŒḊ‘ - (prints 2)
“1‘Ọ    - as above: ['1']
    ŒḊ  - depth: 1
      ‘ - increment: 2
        - implicit print: prints "2"

“1‘ỌŒḊ‘‘ - (prints 3)
“1‘ỌŒḊ‘  - as above: 2
       ‘ - increment: 3
         - implicit print: prints "3"

... keep adding an increment operator to print 4 - 10.

Byłbym w stanie go złamać, gdyby „” był w następnym wierszu. Tak blisko ... :)
Kritixi Lithos

Pęknięty, ale czy mógłbyś wyjaśnić, co się dzieje 10, ponieważ miałem szczęście przy tym, próbując rzeczy, które mogą zadziałać.
Hedi

@Hedi Ninja mnie zbyt szybko, pracowałem nad tym.
Erik the Outgolfer

@Hedi - twój był niezamierzonym crackiem. 10Uważam, że sposób, w jaki działasz, polega na ocenie kodu galaretki w ciągu 9z argumentem 0(domyślna wartość danych wejściowych), który następnie usuwasz kolejność (bez efektu), a następnie zwiększasz.
Jonathan Allan

... właściwie myślę, że sposób 10działa na ciebie, oceniając kod galaretki w ciągu 9z argumentem []- domyślnej wartości wejściowej 0, odznaczonej - którą następnie zwiększasz., jak“1‘‘‘‘‘‘‘‘‘Ọv0Ḋ¤‘
Jonathan Allan

4

Befunge-93, 11 bajtów, 10+ liczb, Pęknięty

To zgłoszenie działa dla co najmniej 1–10. Nie objawione znaki są oznaczone symbolem .

□□5:**-□-.@

Wypróbuj online

Muszę powiedzieć, że byłem pod wrażeniem, że dwoje ludzi mogło wymyślić niezależne rozwiązania, z których żadna nie była tym, czego się spodziewałem. Podczas gdy Martin dotarł tam pierwszy, daję „wygraną” Sp3000, ponieważ ich rozwiązanie jest bardziej przenośne.

To było moje zamierzone rozwiązanie:

g45:**-2-.@
g45:**-1-.@
g45:**-1\.@
g45:**-1\+.@
g45:**-2\+.@
...
g45:**-7\+.@

Ponieważ niedopełnienie stosu w Befunge jest interpretowane jako 0, gtylko odczytuje z 0,0 zwracając wartość ASCII „g”, mianowicie 103. 45:**-odejmuje 100, dając ci 3. Następnie 2-daje 1.

W przypadku trzeciej iteracji, -(odejmij ) zmieniono na \instrukcję (swap), więc 3 staje się najwyższym wpisem stosu. W iteracji czwartej +wstawiana jest instrukcja (dodaj), dodając w ten sposób 3 do 1, dając 4.


Pęknięty. Jestem ciekawy, jakie rozwiązanie miałeś na myśli. :)
Martin Ender

@MartinEnder Jak skomentowałem twoją odpowiedź, chciałbym na chwilę ukryć moje zamierzone rozwiązanie na wypadek, gdyby ktoś inny chciał spróbować bardziej przenośnego rozwiązania. Czy to w porządku?
James Holderness

Oczywiście, że w porządku. :)
Martin Ender

"15:**-6-.@daje 1, ale nie jestem pewien, czy fakt, który "przesuwa 32 na wierzch (z powodu niejawnych spacji) jest artefaktem interpretera TIO, czy częścią specyfikacji Befunge, ponieważ próbując kilku tłumaczy, wydaje się, że nie wszyscy to robią. Czy planowane rozwiązanie zależy od tego zachowania?
Sp3000,

@ Sp3000 To nie było moje zamierzone rozwiązanie, ale to jest całkowicie poprawne Befunge - tłumacze, którzy nie obsługują, są nieprawidłowe. Jeśli opublikujesz odpowiedź z resztą sekwencji, zdecydowanie uważam to za kompletny crack.
James Holderness

4

R, 21 bajtów, 10 cyfr Pęknięty

__i___________i______

Działa dla 10 liczb. _jest ukrytą postacią.

Oryginalne rozwiązanie:

which(letters%in%"a")
which(letters%in%"b")
itp.


@StewieGriffin To jest mój pierwszy post na tej stronie i nie znam norm. Mam jeszcze jedno wyzwanie R - myślę, że trochę trudniejsze. Czy mogę dodać kolejną odpowiedź? Czy dołączyć to do tego?
Gregor

Dodanie nowego jest całkowicie w porządku (jako osobny) 😊 witamy na stronie 😊
Stewie Griffin

Czy ja to tutaj złamałem ?
Tensibai

@Tensibai Cracked :)
Gregor


3

Oktawa, 32 bajty, 10 liczb. Pęknięty

_n_(isprime(floor(s____i__ i____

_ jest ukrytą postacią.

Możesz wypróbować Octave online tutaj .


Oryginalne rozwiązanie:

1: nnz(isprime(floor(sqrt(i):pi')))

2: nnz(isprime(floor('sqrt(i):pi')))

3: nnz(isprime(floor('sqrt(i):pia')))

4: nnz(isprime(floor('sqrt(i):piaa')))

...


Bardzo dobrze! Pęknięty . Nie jesteś pewien, czy odtworzyłem Twój kod?
Stewie Griffin,

@StewieGriffin Dobra robota! Powinienem był ujawnić więcej postaci ... :-D
Luis Mendo,

1
Cholera, to było sprytne :) Szkoda, że ​​nie można powiedzieć, że to MATLAB ... Jeszcze jedna postać prawdopodobnie sprawiłaby, że było trudniej ... Mimo to podobało mi się ... Wykorzystałem pełne 25 minut :)
Stewie Griffin

@Stewie Tak, dobrze wykorzystałeś funkcje inne niż Matlab! :-)
Luis Mendo,

3

Oktawa, 17 bajtów, 10 liczb, Pęknięty

_i_(__i__(2_5_))

Nie objawione znaki są oznaczone _ .

Zamierzone rozwiązanie:


    fix(asind(2/59))
    fix(asind(3/59))
    fix(asind(4/59))
    fix(asind(5/59))
    fix(asind(6/59))
    fix(asind(7/59))
    fix(asind(8/59))
    fix(asind(9/59))
    fix(asind(9/55))
    fix(asind(9/50))


pęknięty (w końcu =), ale prawdopodobnie nie przy twoim oryginalnym podejściu, prawda?
flawr

Fajnie, dodałem moje podejście w tagu spoiler :)
Stewie Griffin

2
Och, twoje rozwiązanie jest naprawdę sprytne !!!
flawr

3

Oktawa, 19 bajtów, 10 cyfr, pęknięty

__sca__1_)___'-_6_'

_ jest ukrytą postacią.

Zamierzone rozwiązanie:

pascal (10) („a'-96)”



Nie mogłem zapamiętać żadnej funkcji sca. Pochodząc od ciebie, powinienem pomyśleć o funkcjach macierzy :-)
Luis Mendo,

Jest powód, dla którego stworzyłem pełną listę nazw funkcji Octave =)
flawr



3

JavaScript, 22 bajty, 10 cyfr, pęknięty

alert(0_6_4_>_0_2_0_7)

_ jest ukrytą postacią.

Wskazówka na temat zamierzonego rozwiązania

Znak, który należy zmienić, aby wygenerować wszystkie liczby, jest zawsze taki sam.



@ ais523 Dobra robota!
Arnauld

3

JavaScript 21 bajtów, 10 pękniętych liczb

alert(b_oa_"3____1"))

Nie objawione znaki są oznaczone _

Pęknięty

Moja wersja:

alert(btoa|"3"&("1"))
alert(btoa|"3"^("1"))
alert(btoa|"3"^("0"))
alert(btoa|"3"^("7"))
alert(btoa|"2"^("7"))
alert(btoa|"1"^("7"))
alert(btoa|"0"^("7"))
alert(btoa|"0"^("8"))
alert(btoa|"0"^("8"))
alert(btoa|"2"^("8"))



3

Python 3, 16 bajtów, 10 liczb, pęknięty

print(?%??f?r?t)

Nie objawione znaki są oznaczone ?. Jest to prawdopodobnie trochę łatwe, ponieważ jest tylko pięć znaków zapytania, ale mam nadzieję, że będzie fajnie.



3

C #, 90 bajtów, 10 cyfr, pęknięty

using ______________________________________________;class C{static void Main(){_______;}}

Naprawdę nie mam pojęcia, jak trudno to złamać.

Edycja: Ups, błąd transkrypcji. O jeden _za mało późniejusing .

Teraz złamane przez Hedi , który znalazł zamierzone (z wyjątkiem nazwy klasy) rozwiązanie.


d'oh ... jeden za krótki na zapis ()
masterX244

Nie pomogło ... zła przerwa. I ten średnik po pierwszej przerwie udaremnił inny pomysł
masterX244


3

JavaScript 33 bajtów, 10 pękniętych liczb x2

Ups, opublikowałem, opublikowałem moją linię do generowania 10, które Hedi złamał tak, jakby to było dla 1

alert(_to__"_Xc0__0_B6____Zp=="))

Wersja przeznaczona do opublikowania w celu wygenerowania 1

alert(_to__"_Xc0__0_Bf____Zp=="))

Nie objawione znaki są oznaczone _

alert(btoa|"0Xc0"-0xBf|!("Zp=="))
alert(btoa|"0Xc0"-0xBe|!("Zp=="))
alert(btoa|"0Xc0"-0xBd|!("Zp=="))
alert(btoa|"0Xc0"-0xBc|!("Zp=="))
alert(btoa|"0Xc0"-0xBb|!("Zp=="))
alert(btoa|"0Xc0"-0xBa|!("Zp=="))
alert(btoa|"0Xc0"-0xB9|!("Zp=="))
alert(btoa|"0Xc0"-0xB8|!("Zp=="))
alert(btoa|"0Xc0"-0xB7|!("Zp=="))
alert(btoa|"0Xc0"-0xB6|!("Zp=="))


Dodałem crack do zamierzonej wersji. Spróbuję znaleźć sposób na rozwiązanie 10: console.log(atob|"0Xc0"-0xB6|("Zp=="))Myślę
Hedi

Zaktualizowałem swoją odpowiedź, co powinno być zamierzonym crackem.
Hedi

3

Python, ponad 10 liczb, 61 bajtów, pęknięty!

Oto kod, który opublikowałem:

try:x
except:print(__import__('sys').??c??n??()[????b????e???

Oryginalny kod to:

try:x
except:print(__import__('sys').exc_info()[2].tb_lineno)

Zasadniczo generuje błąd ('x' is not defined ), a następnie wypisuje wiersz, w którym znaleziono błąd. Więc po prostu dodawaj nowe wiersze na początku, aby zwiększyć liczbę.

Wiedziałem, że nie będzie trudno go złamać - chciałem po prostu zabawny sposób na drukowanie liczb - ale nie spodziewałem się, że Sp3000 dostanie go tak szybko, to pewne umiejętności pro!


Pęknięty - zabawny, ale tak naprawdę nie ma zbyt wielu opcji: P
Sp3000,

@ Sp3000 tak, chciałem się upewnić, że nikt nie będzie w stanie wycisnąć tego, co jest włączone STDOUTi wydrukować numer, ale chyba zbytnio go zawęziłem. Ach tak.
FlipTack,

Ujawnienie syszdecydowanie uprościło sprawę, ponieważ stanowiło dobry punkt wyjścia do wyszukiwania: P
Sp3000,

2

05AB1E, 11 bajtów, pęknięty!

3628801__0_

Działa od 1-10. _jest ukrytą postacią.

Zamierzone rozwiązanie:

3628801R¬0+ # 1
3628801R¬1+ # 2
3628801R¬2+ # 3
3628801R¬3+ # 4
3628801R¬4+ # 5
3628801R¬5+ # 6
3628801R¬6+ # 7
3628801R¬7+ # 8
3628801R¬8+ # 9
3628801R¬9+ # 10




2

Oktawa, 25 bajtów, 9 liczb. Pęknięty

__a__repmat(__one___,__)_

_ jest ukrytą postacią.


@StewieGriffin Przepraszamy !! Tylko 9. Mój błąd. Bardzo przepraszam. Edytowane
Luis Mendo,


1
Przepraszam = P
Zamienię

@Stewie To moja wina, przepraszam! Zmienioną wersję opublikuję później, ponieważ moje oryginalne rozwiązanie jest inne
Luis Mendo,

Dla przypomnienia, mój crack był identyczny jak Flawr. Tutaj zamieściłem kolejny Octave .
Stewie Griffin,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.