Oblicz kwadrat i pierwiastek kwadratowy!


48

Musisz utworzyć który wyprowadza kwadrat danych wejściowych w jednym języku i pierwiastek kwadratowy danych wejściowych w innym języku. Najkrótsza odpowiedź w bajtach wygrywa!

Musisz mieć dokładność co najmniej 3 miejsc po przecinku, a wartość wejściowa zawsze będzie dodatnia.

Odpowiedzi:



90

C i C ++, 68 65 bajtów

#include<math.h>
float f(float n){auto p=.5;return pow(n,2-p*3);}

Oryginalna odpowiedź:

#include<math.h>
float f(float n){return pow(n,sizeof('-')-1?2:.5);}

W obu wersjach C produkuje, n^2a C ++ produkuje sqrt(n).


23
+1 jako „Ha!” dla wszystkich tych, którzy traktują C i C ++ tak samo.
— DocMax 11.04.17

20
@ CAD97: W języku C autooznacza „przydział na stosie”. Słowo kluczowe jest dość bezużyteczne, ponieważ i tak jest domyślne, więc C ++ zmieniło jego przeznaczenie na coś innego. Jednak w języku C nie wyraża żadnej opinii na temat typu p(jest to klasa pamięci, a nie typ), więc jest intdomyślnie liczony (domyślnie takie intzachowanie jest obecnie odradzane i prawdopodobnie istnieje tylko dlatego, że niektóre z poprzedników C w ogóle nie miały typów danych, ale kompilatory nadal to rozumieją). I oczywiście (int)0.5wynosi 0

2
To jest genialne.
— Quentin,

1
Znaleziono pytanie dotyczące przepełnienia stosu .
— YSC

9
Myślę, że wyjaśnienie tej odpowiedzi poprawiłoby się poprzez edycję komentarza @ ais523 wyjaśniającego, dlaczego C. produkuje n^2.
— Brian J

50

Python 2 i Python 3, 23 21 bajtów

lambda n:n**(1/2or 2)

Python 2.x produkuje n^2, Python 3.x produkuje sqrt(n).

2 bajty zapisane dzięki @Dennis!


To jest takie fajne!
— njzk2

Dlaczego? Czy to wcześniej brak miejsca or?
— chx

@chx W Py2 /wykonuje dzielenie całkowite ( 1/2==0). W Py3 dokonuje podziału zmiennoprzecinkowego ( 1/2==0.5). 0Jest falsey.
— Nic Hartley,

to dlaczego nie usunąć spacji po lub?
— chx

@chx Wypróbuj sam. Jeśli to zrobisz, zgłasza błąd składniowy.
— numbermaniac

32

2sable / Galaretka , 2 bajty

*.

2sable oblicza kwadrat. Wypróbuj online!

Galaretka oblicza pierwiastek kwadratowy. Wypróbuj online!

Jak to działa

2sable

*   Read the input twice and compute the product of both copies.
    This pushes the square of the input.
 .  Unrecognized token (ignored).

Galareta

 .  Numeric literal; yield 0.5.
*   Raise the input to the power 0.5.
    This yields the square root.

7
To tak, jakby te języki zostały stworzone właśnie dla tego wyzwania
— FloatingRock

20

C (clang) i Python , 109 107 69 53 bajtów

#/*
lambda n:n**.5;'''*/
float a(i){return i*i;}//'''

C: Wypróbuj online!

Python: Wypróbuj online!

Działa przy użyciu komentarzy do polyglot. Reszta jest dość objaśniająca.

Pierwszy raz używając C!

  • Zaoszczędź sporo bajtów dzięki @Riker.
  • Zaoszczędzono 2 bajty, usuwając niepotrzebne białe znaki.
  • Zaoszczędzono bardzo wiele bajtów, używając funkcji dla C zamiast STDIN / OUT.
  • Zaoszczędź 16 bajtów dzięki @Delioth, usuwając instrukcję importu na górze.

@Riker zrobi, dziękuję.
— Towarzysz SparklePony 11.04.17

Wierzę, że możesz usunąć jedną nową linię po komentarzu C (wiersz 2, ostatni znak), ponieważ C nie potrzebuje spacji i jest już literałowym ciągiem dla Pythona. Ponieważ nie zwracasz żadnego specjalnego kodu, możesz pominąć return 0;koniec - C99 zawiera ukryty zwrot 0 na main(). Źródło
— Delioth,

@Delioth Właściwie bardziej sensowne było po prostu użycie tej funkcji i wykasowanie io.
— Towarzysz SparklePony,

O tak - o wiele lepiej. Czy w ogóle musisz uwzględnić stdio.hw takim przypadku?
— Delioth,

@Delioth ja nie. Ups!
— Towarzysz SparklePony,

16

Ohm and Jelly , 3 bajty

Zwraca kwadrat w Ohm, pierwiastek kwadratowy w Galaretce.

Ohm i Jelly używają różnych jednobajtowych stron kodowych, więc program będzie wyglądał inaczej w każdym kodowaniu.

xdx zrzut zrzutu programu:

00000000: fd7f 0a                                  ...

Galareta

Za pomocą strony kodowej Jelly wygląda to tak:

’
½

Galaretka zajmuje najniższy wiersz jako główny link i ignoruje inne linki, chyba że są specjalnie wywoływane. Więc tutaj po prostu robi pierwiastek kwadratowy ( ½) i niejawnie go wyprowadza.

Om

Przy użyciu strony kodowej Ohma (CP437) wygląda to tak:

²⌂◙

²jest funkcją kwadratową ⌂i ◙oba są niezdefiniowane, więc program po prostu podnosi niejawnie odczytane dane wejściowe i niejawnie je wyprowadza.


Miły! Liczba bajtów jest w porządku.
— programator5000

Z tego powodu zredagowałem swoją odpowiedź do 5 bajtów.
— Magic Octopus Urn

Wow, pierwsza odpowiedź Ohma nie została napisana przeze mnie! Dobra robota!
— Nick Clifford

Jeśli używasz strony kodowej Jelly, aby uzyskać ½bajt, do czego służy ²mapa? Czy to tylko śmieci są nadal ignorowane? I odwrotnie dla Ohma? Wtedy wydaje się, że to 2 bajty.
— AdmBorkBork

1
Dam przykład, ponieważ nie chcę zawracać sobie głowy szukaniem rzeczywistych punktów kodu. Załóżmy, że ²w Ohm jest w punkcie kodowym 5. Kod w punkcie 5 w Galaretce jest %i nie robi nic, więc nie ma znaczenia, jaki jest pierwszy wiersz. Załóżmy, że ½w Galaretce jest 27, a kod 27 w Ohmie jest Ji nie robi nic, więc nie ma znaczenia, co jest drugim wierszem. Zatem jeśli masz plik 00000101<newline>00011011, ma on 3 bajty. Chyba jedynym problemem jest to, że nowa linia znajduje się w innym miejscu na stronach kodowych.
— AdmBorkBork

15

C89 i C99, 47 + 3 = 50 bajtów

float f(float n){return n//*
/sqrt(n)//*/1*n
;}

Wymaga -lmflagi (+3)

C89 produkuje n^2, C99 produkuje sqrt(n). Aby przetestować w C89, wypróbuj online!


Nakłonienie C89 do wykonania sqrtwersji powinno zająć mniej kodu, ale nalega na niejawne zadeklarowanie sqrtfunkcji za pomocą ints, więc jest to najlepsze, co mogłem zrobić.


13

Octave / MATLAB, 31 29 bajtów

 @(x)x^(2-3*any(version>60)/2)

Daje to kwadrat w Octave i pierwiastek kwadratowy w MATLAB.

Wyjaśnienie:

Składnia jest oczywiście identyczna w MATLAB i Octave (przynajmniej dla tego małego fragmentu kodu).

To tworzy anonimową funkcję:

@(x)                                 % Take x as input
    x^(                     )        % Raise x to the power of ...   
               version                 % Returns the version number
                                       % 4.2.0 in Octave, 
                                       % '9.2.0.538062 (R2017a)' in MATLAB
               version>60              % 'R' is larger than 60. All others are smaller
         3*any(version>60)/2           % Checks if there is an 'R' and multiplies it by 1.5 if it is.
       2-3*any(version>60)           % 2-1.5*(is there an 'R')

12

Basic / Delphi - 6 znaków

sqr(x)

Pierwiastek kwadratowy w Basic i kwadratowy w Delphi.

Za pomocą debugera możesz sprawdzić wyrażenie, spełniając w ten sposób wszelkie wymagania wyjściowe!


2
Czy wymaga to wkładu?
— Rɪᴋᴇʀ 12.04.17

Nie, ale nie dokonuj też innych zgłoszeń, w tym C / C ++.

Nadal nieważne, to nic nie zmienia. Spróbuję też je skomentować.
— Rɪᴋᴇʀ

1
Czy możesz połączyć coś, co nie? Nie mogę znaleźć. C / C ++ one jest funkcją, nie pobiera danych wejściowych, a jedynie parametr.
— Rɪᴋᴇʀ

3
Tak, ale co to jest x? Nie możesz założyć, że jest zapisany do wartości. Ale możesz faktycznie usunąć (x)i oznaczyć ją jako zwracającą funkcję.
— Rɪᴋᴇʀ

11

05AB1E / Fireball , 3 bajty

Program składa się z następujących bajtów:

FD B9 74

05AB1E oblicza pierwiastek kwadratowy, kwadraty Fireball.

Objaśnienie (05AB1E - ý¹t):

ý       Pushes an empty string to the stack (not entirely sure why)
 ¹      Push first input
  t     Square root

Objaśnienie (Kula ognia - ²╣t):

²       Square input
 ╣      Unassigned
  t     Unassigned

Czasami pomaga mieć niekompletny język;)


1
05AB1E i Fireball używają różnych kodowań. Czy to wpływa na programy?
— Dennis

@Dennis Nie myślałem o tym. Czy zapisanie tego samego programu w różnych kodowaniach nie ma znaczenia dla poligrafów?
— Okx

5
Afaik, domyślnie strumienie bajtów muszą być zgodne.
— Dennis

10

PHP7 + JavaScript, 62 61 58 bajtów

To było naprawdę trudniejsze niż się spodziewałem! Jestem dość zaskoczony, jak długi jest mój kod.

eval(['alert((_=prompt())*_)','echo$argv[1]**.5'][+![]]);


Jak to działa?

Działa to poprzez wybranie z tablicy kodu do uruchomienia.
Wykrywanie PHP i JavaScript odbywa się za pomocą +![].

W PHP [](pusta tablica) jest wartością fałszywą, podczas gdy w JavaScript jest wartością prawdziwą (obiekty (oprócz null) są zawsze prawdziwe, a nawet new Boolean(false)prawdziwe!).
Ale muszę uzyskać wartość liczbową, więc po prostu używam not( !) i przekonwertowałem ją na liczbę całkowitą (z +).
Teraz PHP daje wartość 1, podczas gdy JavaScript daje 0.
Umieszczenie kodu w tablicy, przy tych indeksach, pozwoli nam wybrać odpowiedni kod dla pożądanego języka.
Można tego użyć jako [JS,PHP][+![]], aby uzyskać kod odpowiedniego języka.

W poprzednich poliglotach użyłem '\0'=="\0", który jest truew JavaScript (ponieważ \0jest analizowany jako bajt NULL) i falsew PHP ( '\0'nie będzie analizowany jako bajt NULL, porównując literał ciąg \0z bajtem NULL).
Cieszę się, że udało mi się zredukować tę kontrolę do +!'0'.
Jeszcze bardziej cieszę się z @rckd , który zredukował go do obecnej wersji!

Od tego momentu evaljest to po prostu wymagany kod.

PHP

PHP wykona echo$argv[1]**.5(ekwiwalent echo sqrt($argv[1]);, pierwiastek kwadratowy z liczby), otrzymując wartość z drugiego argumentu i wyświetli ją na standardowym wyjściu.

JavaScript

Wykonuje się JavaScript alert((_=prompt())*_), który wyświetla kwadrat w liczbie alert.



Dziękujemy @rckd za zapisanie 1 bajtu i @ user59178 za zapisanie 3 bajtów!


1
! [] pozwoli Ci zaoszczędzić 1 bajt :-)
— rckd 12.04.17

1
@rckd Święta krowa! Całkowicie zapomniałem o pustych tablicach. Dziękuję Ci! Zredagowałem to pytanie wraz z wyjaśnieniem, jak to działa.
— Ismael Miguel,

1
możesz zapisać 3 bajty, używając echo$argv[1]**.5zamiastecho sqrt($argv[1])
— user59178

Wow, fajne oszczędzanie! Dziękuję Ci! Dodałem to do odpowiedzi.
— Ismael Miguel

8

05AB1E i galaretka , 4 bajty

nqƓ½

(05AB1E) - (galaretka)

nq   # Ignored by Jelly, push n**2 in 05AB1E then quit.
  Ɠ½ # Ignored by 05AB1E due to quit, push sqroot of input in Jelly.

Myślę, że ktoś inny miał rację, ponieważ znaki UTF-8 nie współużytkują tej samej operacji na stronach kodowych, które technicznie są 2-bajtowe do zakodowania. Jednak patrząc na to pod kątem zrzutu heksadecymalnego:

6e 71 93 0a

W kodowaniu CP1252 05AB1E powoduje to:

nq“\n

Oznacza to, że nadal będzie generować kwadrat i wyjść, ignorując resztę. Gdy te bajty są kodowane przy użyciu strony kodowej Jelly:

nqƓ½

Który jest pierwotnie zamierzonym kodem, po uruchomieniu powoduje pożądany wynik pobrania danych wejściowych i pobrania sqrt.


2
Jest to w rzeczywistości 6 bajtów UTF-8, jak oba Ɠi ½wymaga dwóch bajtów do zakodowania. Jednak sekwencja bajtów 6e 71 93 0a( nqƓ½dla Galaretki, nq“\ndla CP-1252) powinna działać w obu językach.
— Dennis

@Dennis ½przebywający na obu stronach kodowych nie pozwala na zaliczenie go jako pojedynczego, ponieważ zakładam, że są to różne operacje? Nadal jestem rozmyślany na temat całej strony kodowej.
— Magic Octopus Urn

1
Punktacja w bajtach oznacza zliczanie strumieni bajtów. O ile interpreter nie obsługuje kodowania niektórych znaków na jednej stronie kodowej i innych znaków na innej, nie możemy tego zrobić w celu oceny.
— Dennis

4
@ carusocomputing twoje zgłoszenie to 4 bajty, 6e 71 93 0awięc nie ma „teoretycznie” roszczenia 4 bajtów. Wystarczy odebrać 4 bajty. Tak się składa, że ​​w standardowym kodowaniu 05AB1E odczytuje jedną rzecz, która robi to, co chcesz, podczas gdy w standardowym kodowaniu Jelly, czyta inną, która robi to, co chcesz. Nawiasem mówiąc, tylko dlatego, że 2 kodowania mogą kodować ten sam znak, nie oznacza, że ​​znak będzie taki sam w obu z nich. Pomyśl tylko o kodowaniu, takim jak szyfr numeryczny z już udostępnioną tabelą odnośników, i mam nadzieję, że da ci to dobry początkowy model mentalny.
— Dave

@Dave Musiałem wtedy źle zinterpretować Dennisa.
— Magic Octopus Urn

6

CJam / MATL , 8 bajtów

ld_*GX^!

Oblicza kwadrat w CJam ( Wypróbuj online! ) I pierwiastek kwadratowy w MATL ( Wypróbuj online! ).

Objaśnienie kwadratu w CJam

ld    e# Read input line and interpret as a double
_     e# Duplicate
*     e# Multiply. Pops the input number twice, pushes its square
G     e# Push 16
X     e# Push 1
^     e# Bitwise XOR. Pops 16 and 1, and pushes 17
!     e# Negate. Pops 17, pushes 0
      e# Implicitly display. This prints the squared input with decimals,
      e# immediately followed by the 0 coming from the negate operation
      e# Even if the square of the input number is an integer, say 5,
      e# it is displayed as 5.0, so including an extra 0 always gives a
      e# correct result

Wyjaśnienie pierwiastka kwadratowego w MATL

l      % Push 1. This is a number or equivalently a 1×1 array
d      % Consecutive differences. Pops 1, pushes [] (empty array)
_      % Negate (element-wise). This leaves [] as is
*      % Implicitly input a number and push it. Multiply (element-wise): 
       % pops [] and the input number, pushes []
G      % Push input number again
X^     % Square root. Pops number, pushes its square root
!      % Transpose. For a number (1×1 array) this does nothing
       % Implicitly display. The stack contains [] and the result; but 
       % [] is not displayed at all

Hej! Niezłe zgłoszenie! Chcesz dodać wyjaśnienie, tak jak inne odpowiedzi?
— programmer5000

@ programmer5000 Naprawiłem błąd i dodałem objaśnienia
— Luis Mendo

5

Python 2 i Forth, 43 33 bajty

( """ )
fsqrt
\ """);lambda n:n*n

Wypróbuj online: Python 2 (kwadrat) | Naprzód (sqrt)

To ewaluuje do anonimowej funkcji w Pythonie i wbudowanej funkcji fsqrtw Forth. Python może mieć funkcję o nazwie fdla 2 bajtów więcej, umieszczając f=przed lambda.

Program Forth przyjmuje literał zmiennoprzecinkowy , który w Forth musi być zapisany w notacji naukowej. Pi obcięte do 3 miejsc po przecinku ( 3.141) można zapisać w następujący sposób:

3141e-3

5

JavaScript (ES6) / JavaScript (ES7), 52 bajty

f=a=>eval(`try{eval("a**2")}catch(e){Math.sqrt(a)}`)

Zwraca kwadrat danych wejściowych w ES7 i pierwiastek kwadratowy w ES6. Całkiem trudne do przetestowania, chyba że masz starszą przeglądarkę, która obsługuje ES6, ale nie ES7.

f=a=>eval(`try{eval("a**2")}catch(e){Math.sqrt(a)}`)

console.log(f(4));


Sprytny! Dobra robota na tym!
— programator5000

Czy istnieje powód backticksa? Wygląda na to, że pojedyncze cytaty by zadziałały.
— JLRishe 12.04.17

@JLRishe Nope, bez powodu :)
— Tom

5

PHP i CJam , 30 29 25 bajtów

ECHO"$argv[1]"**2;#];rdmq

Oblicza kwadrat w PHP i pierwiastek kwadratowy w CJam. Musi być uruchomiony przy użyciu -rPHP.

PHP

Podnosi argument pierwszego wiersza poleceń ( $argv[1]) do potęgi 2 i wysyła go. Tutaj $argv[1]jest faktycznie wstawiany jako zmienna wbudowana w łańcuch, który jest rzutowany na liczbę przed wykonaniem potęgowania. To dlatego, żev nie jest to poprawna instrukcja w CJam i spowoduje błąd podczas analizy, ale umieszczenie jej w łańcuchu nie spowoduje żadnych problemów.

# rozpoczyna komentarz, więc wszystko po nim jest ignorowane.

Wypróbuj online!

CJam

Pierwsza część kodu ECHO"$argv[1]"**2;#przekazuje wiele wartości i wykonuje szereg operacji, z których wszystkie są całkowicie bezużyteczne. Jedyną ważną rzeczą jest to, że nie powodują żadnych błędów, ponieważ zaraz po ];tym następuje owinięcie całego stosu w tablicę, a następnie odrzucenie go.

Następnie odczytuje podwójną wartość z input ( rd) i otrzymuje pierwiastek kwadratowy (mq ) i domyślnie wyprowadza go.

Wypróbuj online!


5

C, język skryptowy operacji Flashpoint , 52 bajty

;float f(float x){return sqrt(x);}char*
F="_this^2";

W skrypcie OFP średnik na początku wiersza powoduje, że wiersz ten jest komentarzem, podczas gdy C nie przejmuje się dodatkowym średnikiem.

DO:

Wypróbuj online!

Język skryptowy OFP:

Zapisz jak init.sqsw folderze misji, a następnie zadzwoń za pomocą hint format["%1", 2 call F].

Wynik: wprowadź opis zdjęcia tutaj


Okej, to całkiem fajne. Jak pomyślałeś o użyciu tego skrzeczącego języka?
— R17

@Riker Operation Flashpoint zawsze była jedną z moich ulubionych gier; Robiłem w nim wiele rzeczy za pomocą języka skryptowego.
— Steadybox

3

Siatkowy / befunge-98 , 15 bajtów

Języki 2D!

/&:*.@
>in:o#p;

Befunge-98

/&:*.@

/          divide top two (no-op)
 &         read decimal input
  :        duplicate
   *       square
    .      output
     @     terminate

Siatka

/           mirror up, then right
>in:o#p;

 i          read line of input
  n         cast to number
   :o#      square root
      p     print
       ;    terminate

3

> <> / Galaretka , 9 bajtów (7 bajtów kod + 2 dla flagi „-v” w> <>)

Człowieku, naprawdę dobrze się bawię ze strukturą linków Jelly.

:*n;
½

Oblicza kwadrat w> <> i pierwiastek kwadratowy w Galaretce .


Czy wolno ci również nie używać -v w galarecie?
— Rɪᴋᴇʀ

-vMoim zdaniem użycie jest zgodne z [najczęściej głosowaną odpowiedzią [( codegolf.meta.stackexchange.com/a/11431/44874 ) w meta-pytaniu dotyczącym tej sprawy. ><>Interpreter tego potrzebuje -vi jest to dla nich najprostszy możliwy pw.
— steenbergh 13.04.17

3

Python 3 + JavaScript, 101 bajtów

0//1or exec("function=lambda a:(lambda b:a);x=0")
y=2//2/2
f=(function(x)(x**y))//1 or(lambda x:x**y)

Pierwiastek kwadratowy w JS, kwadrat w Pythonie.

Działa w przeglądarce Firefox (testowanej na FF 52) i wymaga (function(x) x)(42) === 42poprawnej składni. Wymaga również ES7 dla **operatora.


Testowany na Firefox i działa. Czy można x=>x**yzamiast tego użyć ? A może Python się tym zadławi?
— Ismael Miguel,

@IsmaelMiguel python nie obsługuje funkcji strzałek.
— Rɪᴋᴇʀ

To nie działa dla Pythona. Funkcja nie jest słowem kluczowym.
— Rɪᴋᴇʀ

To działa. Ponieważ functionnie jest słowem kluczowym, jest to prawidłowy identyfikator. Właśnie przypisałem mu funkcję noop (wewnątrz execinstrukcji).
— kjaquier 18.04.17

3

bash i sh, 48 bajtów

Aktualizacja: Muszę przyznać się do porażki. Odpowiedź bash / sh Digital Trauma jest o wiele bardziej elegancka niż ta.


bc -l<<<"sqrt($1^(($(kill -l|wc -l)*3-3)/7+1))"

produkuje bash, produkuje n^2sh sqrt(n).


bcjest potrzebny tylko, aby sqrtmożna go było obliczyć. Różnica w zachowaniu polega na bashu i sh.

OK, technicznie rzecz biorąc, „sh”, którego używam, to wciąż bash, ale bash w trybie „POSIX” (co się dzieje, jeśli wywołujesz /bin/shzamiast /bin/bashw systemach, gdzie /bin/shjest alias bash). Jeśli tak jest w twoim systemie, możesz przetestować za pomocą:

/bin/bash prog.sh 4
/bin/sh prog.sh 4

Jest to oparte na jednej z różnic wyjaśnionych tutaj: https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html


1
Jak to działa?
— Brian Minton

2
@BrianMinton Spróbuj uruchomić kill -l(wyświetla listę możliwych sygnałów; niczego nie zmienia) w bashi sh. Jest to jedna z wielu różnic, które można znaleźć tutaj: gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html
— Dave

3

QBIC / QBasic, 26 18 bajtów

input a
?a^2'^.25

W QBasic wymaga liczby i wypisuje ją do kwadratu. Reszta kodu jest ignorowana, ponieważ QBasic postrzega go jako komentarz (' ).

QBIC używa tej samej instrukcji wejściowej. Następnie wydrukował tę samą liczbę do kwadratu, a następnie podniósł do potęgi jednej czwartej, skutecznie zrootując ją dwukrotnie. Wynika to 'z dosłowności kodu: czysty kod QBasic, który nie jest analizowany przez QBIC.


2

Galaretka / Pip , 6 bajtów

EDYCJA: Jest to bajt krótszy do odwrócenia operacji.

RTa
²

Wypróbuj Jelly online!

Galaretka rozpoczyna wykonywanie na dole kodu („głównego linku”) i sprawdza, czy potrzebuje czegoś wyższego: rozpoznaje komendę do kwadratu i pośrednio dba o dane wejściowe i wyjściowe.

Wypróbuj Pip online!

Pip wykonuje górną linię, podnosząc do kwadratu (domyślnie odczytany z linii cmd) var a i domyślnie drukuje to. Dolna linia jest ignorowana.


Alternatywą 6-byter: PRTaVS.
— steenbergh 12.04.17

2

Wolfram Language / PHP , 25 bajtów

Uzyskaj kwadrat liczby w języku Wolfram i uzyskaj pierwiastek kwadratowy w PHP;

n^2
echo sqrt(_GET["n"]);

Pierwsza linia to język Wolfram. Po pierwsze, jesteś tym, który zmienia nw pasku wyszukiwania w Wolfram Alpha, więc kod jest również wejściem. Następnie wygeneruje odpowiedź po naciśnięciu Enter

n^2

Druga linia to PHP, Pobiera pierwiastek kwadratowy z n, który należy wprowadzić w pasku adresu (np. Ppcg.php.net?n=213, gdzie 213 jest wartością n)

echo sqrt($_GET["n"]);

1
Witamy w PPCG! Musisz jednak jakoś wziąć udział. Nie można zakładać, że liczba jest przechowywana w zmiennej. Przepraszam za to. Tutaj możesz wyświetlić listę dopuszczalnych metod we / wy. (dodatnie wyniki w odpowiedziach oznaczają, że jest to dozwolone, negatywne oznacza, że ​​nie jest dozwolone)
— Rɪᴋᴇʀ 12.04.17

Rozumiem. Po prostu edytuję swoją odpowiedź. :) Inna sprawa, wyjaśnię tylko, dlaczego dodanie kolejnego kodu do wprowadzania danych w wolframie nie ma zastosowania.
— Jimwel Anobong

Chętnie pomoże! Mam nadzieję, że zostaniesz w ppcg!
— Rɪᴋᴇʀ 12.04.17


1
Język Wolfram oparty jest na matematyce, która wymaga formuły matematycznej, aby pisać w sposób nienaturalny. Inna sprawa, odpowiadający to wyjaśnia, to strona internetowa, która nie jest językiem, ale język wolfram jest językiem, który go obsługuje. Język Wolfrsm i WolframAlpha są powiązane z każdym z nich, ale nie są takie same. Są zupełnie inni.
— Jimwel Anobong

2

PHP 5.6 i PHP 7, 55 bajtów

function f($n){list($a[],$a[])=[.5,2];echo $n**$a[0];}

PHP 5.6 produkuje n^2, PHP 7 produkuje sqrt(n).


2

macOS Bash i sh, 24 bajty

p=^4 :
bc<<<"sqrt($1)$p"

Na komputerze Mac shjest bashuruchomiony w trybie POSIX i w tym przypadku, jak na https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html :

Instrukcje przypisania poprzedzające specjalne wbudowane POSIX pozostają w środowisku powłoki po zakończeniu wbudowanego

Zatem dla shzmiennej zmienna pma wartość ^4po :uruchomieniu, ale dla bashzmiennej pma tę wartość tylko podczas: uruchomienia, a następnie jest pusta.

Będąc nadal naprawdę bashpod przykryciem, niektóre bashizmy, takie jak<<< tustringi, nadal działają zarówno w przypadku bash, jak i sh.


Bash and dash (i GNU utils), 27

Na Ubuntu 16.01 shjest dowiązaniem symbolicznym do dash, które nie robi <<<ciągów znaków. Mamy więc zamiast tego:

p=^4 :
echo "sqrt($1)$p"|bc

Wypróbuj online .


Przyjemne użycie innego trybu / env!
— programator5000

To jest znacznie lepsze niż moja wersja!
— Dave

1

Oktawa / kardynał , 28 bajtów

Ten program wyrównuje dane wejściowe w Kardynale i pobiera pierwiastek kwadratowy w Oktawie

 %:=t.
disp(sqrt(input("")))

Wypróbuj online! (Oktawa)

Wypróbuj online! (Kardynał)

Tak więc% jest komentarzem jednowierszowym w Octave, więc po prostu pobiera dane i drukuje pierwiastek kwadratowy

disp(sqrt(input("")))

Aby program Kardynał nie napotkał błędu dzielenia przez zero i umarł, program

%:=t.

został przesunięty o spację, która jest ignorowana przez oba programy

Objaśnienie programu Kardynał:

Program rozpoczyna się od%
Otrzymuje dane wejściowe i przechowuje wartość jako aktywną:
Ustawia nieaktywną na równą aktywnej =
Mnoży aktywną przez nieaktywną t
Na koniec wyprowadza aktywną wartość.


1

PHP / JavaScript, 43 bajty

<body onload=alert(<?=$x*$x.')>'.sqrt($x)?>

Dane wejściowe wyglądają następująco:

<?php $x = 10; ?>

Trochę samo wyjaśniające, ale czy to pasuje do zasad? Mój pierwszy kod do golfa :-)


1
Witamy w Code Golf! Dane wejściowe muszą być zmiennoprzecinkowe lub ciągiem, który jest tylko zmiennoprzecinkowy. Jeśli dobrze rozumiem, wymaga to osobnych danych wejściowych.
— programator5000

Czy na pewno działa jako JavaScript? Wygląda na to obie wersje trzeba etap przetwarzania PHP (JavaScript nie będzie wiedział, co zrobić z alert(<?=$x*$x.')>'.sqrt($x)?)
— Dave

0

CGL (CGL Golfing Language) / JS (ES6), 13 bajtów (niekonkurencyjny)

Nie konkuruje, ponieważ:

  1. CGL został wydany po tym pytaniu.
  2. CGL nie jest prawidłowym językiem . Z powodu +iⓟ CGL jest technicznie poprawnym językiem.

Kod:

 x=>x**2
//-₂

JS:

Proste: anonimowa funkcja strzałki, która zwraca pierwszy argument podniesiony do kwadratu. Nienazwany kod języka jest komentowany.

CGL:

Non-breaking space przed pierwszą linią działa jak komentarz. Nie /ma operacji. W -drugim wierszu oznacza zmniejszenie aktualnego numeru stosu, który domyślnie wynosi 0. To ustawia go na -1, gdzie zapisywane są dane wejściowe. ₂Zastępuje pierwszy element w bieżącym stosie z jej pierwiastek kwadratowy, co jest teraz, gdzie wejście jest umieszczony. Domyślnie bieżący stos jest wyprowadzany, generując pierwiastek kwadratowy z danych wejściowych.


To jest 13 bajtów. Nie wiem o CGL, ale jestem całkiem pewien, że JS używa ascii / utf-8. CGL prawdopodobnie użyłby również UTF-8, chyba że ma własną stronę kodową.
— Rɪᴋᴇʀ

@Riker na razie używa ascii / utf-8. Dzięki.
— programator5000
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.