Zadanie: Złam zakodowany kod mnożenia pierwiastka kwadratowego liczby całkowitej n przez jego kwadrat!
Musisz opublikować komentarz w wątku gliniarzy z linkiem do twojego źródła pracy, wyraźnie wskazując, że go złamałeś . W tytule odpowiedzi musisz podać link do oryginalnej odpowiedzi.
Zasady:
- Możesz zmienić tylko kolejność znaków w oryginalnym źródle.
- Bezpiecznych odpowiedzi nie można już złamać.
- Pozostałe zasady wymienione w wątku gliniarzy
- Edytuj odpowiedź, którą łamiesz
ZWYCIĘZCA: Emigna - 10 poddanych (miał problemy z liczeniem)
Wyróżnienia: Notjagan, Plannapus, TEHTMI
code-golf
number
arithmetic
cops-and-robbers
Pan Xcoder
źródło
źródło
JavaScript (ES7), Neil
Najtrudniejsze było oczywiście ustalenie, co zrobić ze wszystkimi dodatkowymi postaciami. (A także nie publikowanie tego rozwiązania w niewłaściwym wątku, jak to zrobiłem na początku. Oopsie ...)
źródło
_26_=>
definiuje anonimową funkcję przyjmującą jeden parametr o nazwie_26_
(zmienne mogą zaczynać się znakiem podkreślenia, ale nie liczbą). Następnie pozostała część jest tylko przy użyciu**
jakoMath.pow()
podnieść wejście do potęgi 2,5 (0,5) 6,25 mocy._26_
to coś specyficznego dla ES7. Nie wiedziałem, że zmienne mogą być również w tej formie! (Nigdy nie widziałem zmiennej bez alfabetu). To było bardzo sprytne podejście @Neil. I ty też bardzo sprytnie go złamałeś! Miej swój zasłużony +1! :)Python, 15 bajtów, Mr. Xcoder
Dość proste. Po prostu bierze
x
i podnosi do2.5
potęgi.źródło
OCaml, 13 bajtów, shooqie
Wypróbuj online!
źródło
C ++ (gcc) , 100 bajtów, Mr. Xcoder
Wypróbuj online!
źródło
using
i po prostu robiącint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
Haskell, Leo
Bezcelowa funkcja o nazwie
x
. Zastosowanie:x 4
->32.0
źródło
Poinformuj 7 , corvus_192
Fajnie, wpis Inform7. :) Po prostu musiałem spróbować.
Jestem prawie pewien, że jest to zamierzone rozwiązanie:
Zauważ, że to rozwiązanie działa tylko, jeśli zostało skompilowane z zapleczem Glulx, ze względu na użycie tej
real square root of
funkcji.BTW, podwójne cudzysłowy i nawiasy kwadratowe są w rzeczywistości niepotrzebne; po prostu
say n * n * real square root of n
działałby równie dobrze. Można również pominąć kropki na końcu poleceń; lub moglibyśmy zachować pierwszy okres i zamiast tego pozbyć się nowych linii. Inne części kodu, które moglibyśmy usunąć, to artykuł „a” przed „pokojem” oraz spacje przed nawiasami i po dwukropku. Na szczęście, ponieważ mamy zapasową parę nawiasów, zawsze możemy ich użyć, aby skomentować wszystkie te dodatkowe znaki. ;) Więc to również jest prawidłowe rozwiązanie:Aby interaktywnie przetestować to rozwiązanie, wygodnie jest dołączyć do kodu coś w rodzaju następującej wiązki testowej:
Po skompilowaniu i uruchomieniu programu możesz wpisać np.
f 4. f 6. f 9. f 25
W>
wierszu polecenia i otrzymać coś w rodzaju następującego wyniku:BTW, właśnie zauważyłem, że Inform (lub raczej Glulx) zaokrągla ostatnie miejsce dziesiętne
f 6
zła: poprawna wartość jest znacznie bliższa 88,18163 niż 88,18164. Na szczęście nie sądzę, aby miało to wpływ na poprawność rozwiązania (rozwiązań), zwłaszcza, że wyzwanie określało „dowolny wybrany przez ciebie mechanizm zaokrąglania”. :)źródło
apt-get install gnome-inform7
.Mathematica, Greg Martin
Dzięki za pozostawienie nienaruszonego zaokrąglania rzeczy!
Objaśnienie:
#(#)#^(1/(1+1))&@y
robi główną pracę pomnożeniey
kwadratu, akay(y)
, iy
„s pierwiastkowania,y^(1/(1+1))
. Ten#&@@@{1^(1),-1}
kawałek jest po prostu śmieci, aby zużyć inne litery, i#&@@
wybiera przydatny kawałek ze śmieci.źródło
MATL , 12 bajtów, Luis Mendo
Oblicz 10/4 = 2,5 z 4 pochodzącymi z długości łańcucha. Użyj tego jako wykładnika. P nie ma tu mowy o opozycji.
źródło
Python 3, 44 bajty, Kyle Gullion
Te
*
były dość mylące. Bardzo mądry!Z powodu dość ograniczonego zestawu znaków byłbym bardzo zaskoczony, gdyby istniały inne prawidłowe rozwiązania poza trywialną zmianą nazwy lub kolejnością argumentów.
źródło
R, Steadybox
wydaje się być anagramem
funny(p1)-tio(^*^)/pc(2)<p2;
źródło
Python 2, 60 bajtów, Anthony Pham
Na podstawie odrzucania znaków przez podział zmiennoprzecinkowy Python 2 (domyślny dla
/
liczb całkowitych).źródło
C, 50 bajtów, Dave
Wypróbuj online!
Wymaga to
-lm
flagi kompilatora, ale nie wiem, jak można to rozwiązać bez tego.źródło
\uad2f
na mojej). Dobra robota; Myślałem, że zostawiłem tam wystarczająco dużo czerwonych śledzi, aby ludzie byli zajęci o wiele dłużej! Również-lm
flaga nie była mi potrzebna przy użyciu Clanga (wspomniałbym o tym!), Ale masz rację, mówiąc ściśle, że jest wymagana.R, Flądra
Jest to pęknięcie 33-bajtowego rozwiązania @Flounderer
Stosowanie:
źródło
sin(pi)
, ale niestety działa! +1scan()^(-floor(-sin(pi)*2e17)/10)
RProgN 2, ATaco
Najwyraźniej StackExchange potrzebuje dodatkowych znaków, więc proszę bardzo.
źródło
]š\2^*
, ale oba działają w ten sam sposób.HODOR, 198, Ten facet
Wyjaśnienie:
uwaga: musiałem wprowadzić pewne modyfikacje, aby interpreter działał na moim komputerze (ten, który napisałeś, nie akceptuje między innymi małych liter h)
Poza tym nie mam wystarczającej liczby przedstawicieli, aby móc komentować, więc jeśli ktoś mógłby powiedzieć @Ten facetowi, byłbym wdzięczny
Myślę, że to naprawiło błąd, kod zaczyna się teraz od Waldera zamiast Wylisa, co dodaje dodatkowy bajt
źródło
C #, 172 bajty, raznagul
Najtrudniejsze było ustalenie, co zrobić ze wszystkimi resztkami.
źródło
EXCEL, 26 bajtów pajonk
A1 jako wejście IP2 zawiera drugie wejście z błędem # nie dotyczy. W tym przypadku ISNA (IP2) należy do 1
Dodatkowo
()
możemy to zrobićźródło
=SQRT(A1)*A1^2/SIN(PI()/2)
Jeśli ustawisz błąd #NA poprzez formowanie lub coś innego, zobaczyłbym go jako dodatkowe drugie wejście. SQRT i ISNA to jedyne dwie funkcje, które mają trochę sensu. Ale proszę zapytaj człowieka, który opracował pytaniePython 3.6, 64 bajty, Mr. Xcoder
Może nie to, co było zamierzone, ale działa;)
Jeszcze za mało przedstawicieli, by skomentować odpowiedź wątku gliniarzy, przepraszam ... Byłbym wdzięczny, gdyby ktoś mógł to dla mnie zrobić, dzięki!
źródło
from math import pi as pp0012223467899;f=lambda x:x**2.5*1*(1)/1
aby zobaczyć, że zostałem pobity do sedna. Dodałem link do tego postu w wątku gliniarzy.Röda , 28 bajtów, fergusq
źródło
Python 2.7, Koishore Roy
źródło
y=x=e=s
obie działają :)) Dobra robota i tak!R, Flądra
Oto pęknięcie 31-bajtowego rozwiązania @ Flounderer:
Ok, to było trudne. Tworzy funkcję o nazwie
`[.`
. Wywoływany jest argument funkcji,`]`
który jest podniesiony do potęgi 2,5 poprzez zastosowanie 9. elementu wbudowanej serii czasowejlh
(„regularny szereg czasowy dający hormon luteinizujący w próbkach krwi w odstępach 10-minutowych od ludzkiej kobiety, 48 próbek . ”, który jest używany jako przykład w jednym z podstawowych pakietów R.).lh[9]
jest tutaj nad nim zastąpiony przez jego odpowiednik`[`(lh, 9)
. Usunięcie zaciemnienia przez podstawienief
nazwy funkcji in
nazwy argumentu powoduje, że funkcja staje sięf=function(n)n^lh[9]
.Stosowanie:
źródło
Python 2, 44 bajty, Anthony Pham
Pobiera dane wejściowe z raw_input, konwertuje na int i podnosi do potęgi 2.5
źródło
JavaScript, fəˈnɛtɪk
Pobiera 5/2 do 5 razy 2 do pierwszej ujemnej mocy, gdzie 5 i 1 otrzymano z długości łańcuchów. W pewnym sensie podjął łatwą drogę, komentując obce postacie.
źródło
C #, 112 bajtów, Jan Ivan
źródło
05AB1E , 47 bajtów, Okx
Wypróbuj online!
źródło
Fireball , 8 bajtów, Okx
Wyjaśnienie:
Nie jestem pewien, czy to działa. Obecnie nie mam Java na moim laptopie. :(
źródło
Z1
na1Z
.Haskell , 64 bajty, @nimi
Wypróbuj online! To było zabawne. Najpierw odkryłem, że
product.(<$>(($succ(cos$0))<$>[id,recip])).(**)
zachowuje się poprawnie i potem musiałemflip flip <$> () $ id .
gdzieś do niego pasować .źródło
R, steadybox
Stosowanie:
źródło
a=function(s)s**2*s**(0.125*2*2)
05AB1E , 22 bajty, P. Knops
Wypróbuj online!
Wyjaśnienie
Reszta operacji nigdy nie zostanie wykonana.
Możemy to zrobić bez
q
, a także mając?
po obliczeniu i ucieczki znak równości na przykład'=
.źródło