Bir kare ve bir kare kökü hesaplayın!


48

Girişin karesini bir dilde çıkaran bir giriş ve diğerinin girişinin karekökünü yapmanız gerekir . Bayt cinsinden en kısa cevap kazanır!

En az 3 ondalık basamağa kadar bir hassasiyetiniz olmalıdır ve girdi daima pozitif bir kayma olacaktır.

Yanıtlar:



90

C ve C ++, 68 65 bayt

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

Orijinal cevap:

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

Her iki sürüm için de C üretir n^2ve C ++ üretir sqrt(n).


23
"Ha!" Olarak +1 C ve C ++ 'yı aynı şey olarak gören herkes için.
DocMax

20
@ CAD97: C, auto"yığında tahsis" anlamına gelir. Anahtar kelime oldukça kullanışsız çünkü bu zaten bir varsayılandır, bu yüzden C ++ başka bir şey ifade etmeyi reddetti. Bununla birlikte, C'de, türü hakkında herhangi bir görüş ifade etmemektedir p(bu bir saklama sınıfıdır, bir tür değildir), bu nedenle intvarsayılan olarak sayılır (bu varsayılan intdavranış davranışı önerilmemektedir ve bu nedenle büyük olasılıkla mevcuttur. C'nin seleflerinden bazıları hiç veri türüne sahip değildi, ancak derleyiciler hala anlıyorlar). Ve tabii ki, (int)0.50'dır

2
Bu mükemmel.
Quentin

1
Bununla ilgili bir Stack Overflow sorusu buldum .
YSC

9
Sanırım bu cevabın açıklaması @ ais523'ün C'nin neden ürettiğini açıklayan yorumunda düzenlenerek geliştirilecektir n^2.
Brian J

50

Python 2 ve Python 3, 23 21 bayt

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

Python 2.x üretir n^2, Python 3.x üretir sqrt(n).

@Dennis sayesinde 2 bayt kaydedildi!


bu çok havalı!
njzk2

Neden? Daha önce boşluk olmaması mı or?
chx

@chx Py2'de, /tamsayı bölme ( 1/2==0) işlevini kullanır . Py3'te kayan nokta bölünmesi yapar ( 1/2==0.5). Falsey 0.
Nic Hartley

öyleyse neden sonra veya sonra boşluk kaldırmak değil?
chx

@chx Kendiniz deneyin. Bunu yaparsanız bir sözdizimi hatası atar.
numbermaniac

32

2sable / Jelly , 2 bayt

*.

2sable kareyi hesaplar. Çevrimiçi deneyin!

Jelly karekökünü hesaplar. Çevrimiçi deneyin!

Nasıl çalışır

2sable

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

Jöle

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

7
Bu diller oluşturulan Sanki sadece bu meydan okuma için
FloatingRock

20

C (clang) ve Python , 109 107 69 53 bayt

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

C: Çevrimiçi deneyin!

Python: Çevrimiçi deneyin!

Poliglot'a yorumlar kullanarak çalışır. Gerisi oldukça açıklayıcı.

C kullanarak ilk kez!

  • @Riker sayesinde oldukça fazla sayıda bayt kaydedildi.
  • Gereksiz boşlukları kaldırarak 2 bayt kaydedildi.
  • STDIN / OUT yerine C işlevini kullanarak çok fazla bayt kaydedildi.
  • En üstte import ifadesini kaldırarak @Delioth sayesinde 16 bayt kaydedildi.

@Riker Yapacak, teşekkür ederim.
Yoldaş SparklePony

C yorumundan sonra bir satırsonunu kaldıracağınıza inanıyorum (satır 2, son karakter). Herhangi bir özel kod döndürmediğinizden return 0;, ihmali sonlandırabilirsiniz main(); Kaynak
Delioth

@Delioth İşlevi kullanmak ve io'yu silmek daha mantıklıydı.
Yoldaş SparklePony

Evet, çok daha iyi. stdio.hBu davaya dahil edilmene gerek var mı?
Delioth

@Delioth ben yapmam. Tüh!
Yoldaş SparklePony

16

Ohm ve Jöle , 3 bayt

Jöle'deki karekökü Ohm cinsinden kareyi çıkarır.

Ohm ve Jelly farklı tek bayt kod sayfaları kullanır, böylece program her kodlamada farklı görünecektir.

Programın xxd hexdump:

00000000: fd7f 0a                                  ...

Jöle

Jelly'in kod sayfasını kullanarak, şöyle görünür:

’
½

Jelly, en alt çizgiyi ana link olarak alır ve özellikle belirtilmedikçe diğer linkleri yok sayar. Yani burada sadece karekök ( ½) yapar ve örtük olarak çıkarır.

om

Ohm'un kod sayfasını (CP437) kullanarak, şöyle görünür:

²⌂◙

²kare işlevidir ve her ikisi de tanımsızdır, bu nedenle program yalnızca örtülü okuma girişini kareler ve örtük olarak çıktılar.


Güzel! Bayt sayısı iyi.
programmer5000

Bu yüzden de cevabımı 5 bayt olarak değiştirdim, iyi yakalama.
Magic Octopus Urn

Vay, ilk Ohm cevabı bana göre yazılmadı! Aferin!
Nick Clifford

Jelly kodu sayfasını ½baytta almak için kullanırsanız , ²harita neye yarar ? Hala görmezden gelinen bir şey mi? Ve Ohm için tersi? O zaman 2 bayt gibi görünüyor.
AdmBorkBork

1
Bir örnek oluşturacağım, çünkü gerçek kod noktalarına bakmakla uğraşmak istemiyorum. Ohm’da ²kod noktası 5’te olduğunu varsayalım . Jelly’deki kod noktası 5 %, hiçbir şey yapmaz ve bu yüzden ilk satırın ne olduğu önemli değildir. Jelly’de ½27’de olduğunu ve Ohm’da kod noktası 27’nin olduğunu Jve hiçbir şey yapmadığını düşünün, bu nedenle ikinci satırın ne olduğu önemli değil. Bu nedenle, bir dosyanız varsa 00000101<newline>00011011, 3 bayt. Sanırım tek sorun, yeni satır kod sayfalarında farklı bir konumdaysa.
AdmBorkBork

15

C89 ve C99, 47 + 3 = 50 bayt

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

-lmBayrak gerektirir (+3)

C89 üretir n^2, C99 üretir sqrt(n). C89'da test etmek için, çevrimiçi deneyin!


C89’u bu sqrtsürümün yerine getirmesi daha az kod almalı, ancak sqrtişlevi ints ile örtük olarak bildirmekte ısrar ediyor , bu yüzden yönetebildiğim en iyisi bu.


13

Octave / MATLAB, 31 29 bayt

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

Bu, Octave'daki kareyi ve MATLAB'daki kare kökü çıkarır.

Açıklama:

Sözdizimi elbette MATLAB ve Octave'de aynıdır (en azından bu küçük kod parçası için).

Bu anonim bir işlev oluşturur:

@(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

Temel / Delphi - 6 karakter

sqr(x)

Temelde karekök, Delphi'de karekök.

İfadeyi incelemek ve böylece herhangi bir çıktı gereksinimini karşılamak için bir hata ayıklayıcı kullanabilirsiniz!


2
Bu kendi başına girdi alıyor mu?
Rɪᴋᴇʀ

Hayır, ancak C / C ++ da dahil olmak üzere başka bazı gönderimler de yok.

Yine de geçersiz olsa da, bu hiçbir şeyi değiştirmez. Onlar hakkında da yorum yapmaya çalışacağım.
Rɪᴋᴇʀ

1
Yapmayanları bağlayabilir misin? Bulamıyorum. C / C ++ one bir fonksiyondur, girdi değil yerine bir parametredir.
Rɪᴋᴇʀ

3
Evet, peki nedir x? Bir değere kaydedildiğini varsayamazsınız. Ancak, aslında onu kaldırabilir (x)ve bir işlev döndüren olarak etiketleyebilirsiniz.
Rɪᴋᴇʀ

11

05AB1E / Fireball , 3 bayt

Aşağıdaki baytlar programı oluşturur:

FD B9 74

05AB1E, kare kökü, Ateş topu karelerini hesaplar.

Açıklama (05AB1E - ý¹t):

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

Açıklama (Ateş topu - ²╣t):

²       Square input
 ╣      Unassigned
  t     Unassigned

Bazen, eksik bir dilin olması için yardımcı olur;)


1
05AB1E ve Fireball farklı kodlamalar kullanır. Bu programları etkiler mi?
Dennis,

@Dennis Bunu düşünmedim. Yani aynı programın farklı kodlamalarda kaydedilmesi poligonlara sayılmaz mı?
Okx

5
Afaik, varsayılan, bayt akışlarının eşleşmesi gerektiğidir.
Dennis,

10

PHP7 + JavaScript, 62 61 58 bayt

Bu aslında beklediğimden daha zor oldu! Kodumun ne kadar olduğuna şaşırdım.

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


O nasıl çalışır?

Bu, diziden çalıştırılacak kodu seçerek çalışır.
PHP ve JavaScript algılama ile yapılır +![].

PHP'de [](boş dizi) sahte bir değerdir, JavaScript'te ise bir truthy değeridir (nesneler (hariç null) her zaman truthy, hatta new Boolean(false)truthy!).
Ancak, onu sayısal bir değere almam gerekiyor, bu yüzden, sadece not(( !) işaretini kullanıp tam sayıya (ile +) dönüştürüyorum .
Şimdi, PHP değeri 1verirken, JavaScript verimi verir 0.
Kodu bir dizinin içine, bu dizinlere yerleştirmek, istenen dil için doğru kodu seçmemize izin verir.
Bu [JS,PHP][+![]], doğru dilin kodunu almak için kullanılabilir .

Önceki Polyglots, ben kullandım '\0'=="\0"olan true(çünkü JavaScript \0ve BOŞ bayt olarak ayrıştırılır) false(PHP'de '\0'literal dize karşılaştırarak, BOŞ-byte olarak ayrıştırılır olmayacak \0BOŞ bayt ile).
Bu çeki düşürmeyi başardığım için mutluyum +!'0'. @Rckd ile
ilgili daha mutluyum , bu da onu geçerli sürüme indirdi!

O andan itibaren, sadece evalgerekli kod.

PHP

PHP , 2. argümandan değeri alarak (sayıya kareköke echo$argv[1]**.5eşdeğer) yürütür echo sqrt($argv[1]);ve standart çıktıda görüntüler.

JavaScript

alert((_=prompt())*_)Bir içindeki kare sayısını gösteren JavaScript çalıştırılır alert.



1 byte tasarruf için @rckd ve 3 byte tasarruf için @ user59178 için teşekkür ederiz !


1
! [] 1 byte :-)
kazanacaktır

1
@ rckd Kutsal inek! Boş dizileri tamamen unuttum. Teşekkür ederim! Nasıl çalıştığı hakkında bir açıklama yaparak soruyu düzenledim.
Ismael Miguel,

1
echo$argv[1]**.5yerine 3 bayt kaydedebilirsinizecho sqrt($argv[1])
user59178

Vay, güzel tasarruf! Teşekkür ederim! Cevabın içine ekledim.
Ismael Miguel,

8

05AB1E ve Jelly , 4 bayt

nqƓ½

(05AB1E) - (Jöle)

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

Başkası iyi bir noktaya değindi, sanırım UTF-8 karakterleri aynı işlemi kod sayfalarında paylaşmıyorlar çünkü her biri kodlamak için teknik olarak 2 bayt. Ancak, buna hex dökümü açısından bakıldığında:

6e 71 93 0a

05AB1E’nin CP1252’inde bu kodlamada:

nq“\n

Yani yine de kare çıkarıp çıkacak, gerisini görmezden gelecek. Bu bayt Jelly'in kod sayfasını kullanarak kodlandığında:

nqƓ½

Asıl amaçlanan kod hangisidir, yürütüldüğünde, girişin alınması ve sqrt alınması istenen sonucu verir.


2
Bu aslında 6 hem de UTF-8 bayt olduğunu Ɠve ½kodlanacak iki bayt gerektirir. Bununla birlikte, bayt dizisi 6e 71 93 0a( nqƓ½Jelly nq“\niçin, CP-1252 için) her iki dilde de çalışmalıdır.
Dennis,

@Dennis ½her iki kod sayfasında da tek bir sayı olarak sayılmasına izin vermiyor, çünkü sanırım farklı işlemler bunlar? Tüm kod sayfası olayında hala belirsizim.
Magic Octopus Urn

1
Bayt cinsinden puanlama, bayt akışlarını sayıyordu demektir. Tercüman, bir kod sayfasındaki bazı karakterleri ve bir diğerindeki diğer karakterleri kodlamayı gerçekten desteklemediği sürece, bunu puanlama amacıyla yapamayız.
Dennis,

4
@carusocomputing gönderim 4 bayt 6e 71 93 0ayani 4 bayt iddia hakkında "teorik" yok. Sadece 4 bayt talep et. Öyle olur ki, 05AB1E'nin standart kodlamasında istediğinizi yapan bir şey okurken, Jelly'in standart kodlamasında istediğinizi yapan başka bir şey okur. Bir kenara, sadece 2 kodlamanın aynı karakteri kodlayabilmesi, aynı karakterin ikisinde de aynı olacağı anlamına gelmez. Sadece zaten paylaşılmış bir arama tablosu ile sayısal bir şifre gibi kodlamalar düşünün ve umarım size iyi bir başlangıç ​​zihinsel model verecek.
Dave,

@Dave Dennis'i o zaman yanlış yorumlamış olmalıyım.
Magic Octopus Urn

6

CJam / MATL , 8 bayt

ld_*GX^!

CJam'deki kareyi hesaplar ( Çevrimiçi deneyin! ) Ve MATL'deki kare kökü ( Çevrimiçi deneyin! ).

CJam'daki karenin açıklaması

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

MATL'de karekök açıklaması

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

Hey! Güzel sunum! Diğer cevaplar gibi bir açıklama eklemek ister misiniz?
programmer5000

@ programmer5000 Bir hatayı düzelttim ve açıklamaları ekledim
Luis Mendo

5

Python 2 ve Forth, 43 33 bayt

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

Çevrimiçi deneyin: Python 2 (kare) | İleri (sqrt)

Bu Python'daki isimsiz bir işlevi ve Forth'daki yerleşik bir işlevi değerlendirir fsqrt. Python lambda önüne fkoyarak daha 2 byte için adlandırılmış bir işleve sahip olabilir f=.

Forth programı, Forth'da bilimsel gösterimle yazılması gereken değişken bir anlama sahip. 3 ondalık basamağa kesilen Pi ( 3.141) şöyle yazılır:

3141e-3

5

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

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

ES7'deki girişin karesini ve ES6'daki kare kökünü döndürür. ES6'yı destekleyen ancak ES7'yi desteklemeyen eski bir tarayıcınız yoksa, test etmek oldukça zor.

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

console.log(f(4));


Zeki! Bu konuda iyi iş çıkardın!
programcı5000

Geri tepmeler için bir sebep var mı? Tek tırnak gibi görünüyor işi yapardı.
JLRishe

@JLRishe Nope, sebep yok :)
Tom

5

PHP ve CJam , 30 29 25 bayt

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

PHP'deki kareyi ve CJam'daki karekökü hesaplar. -rPHP kullanarak çalıştırılması gerekiyor .

PHP

İlk komut satırı argümanını ( $argv[1]) güç 2'ye yükseltir ve çıkarır . Burada $argv[1], üsteli yapmadan önce bir sayıya basılan bir dizgede satır içi değişken olarak belirtilir. Bunun nedeni v, CJam’de geçerli bir talimat değildir ve ayrıştırma sırasında hata yapmasına neden olur, ancak bir dizeye koymak herhangi bir soruna neden olmaz.

# bir yorum başlatır, bundan sonra her şey göz ardı edilir.

Çevrimiçi deneyin!

CJam

Kodun ilk kısmı, ECHO"$argv[1]"**2;#bir sürü değeri zorlar ve hepsi tamamen yararsız olan bir dizi işlem yapar. Tek önemli şey, herhangi bir hataya yol açmamalarıdır, çünkü hemen sonra, ];tüm yığını bir diziye sarar ve sonra onu atar.

Ondan sonra input ( rd) ' dan bir double okur ve karekökünü ( mq) alır ve örtük olarak çıkarır.

Çevrimiçi deneyin!


5

C, Çalışma Flashpoint komut dosyası dili, 52 bayt

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

Bir OFP komut dosyasında, satırın başındaki bir noktalı virgül, bu satırı yorum yapar, C ise ek noktalı virgülle ilgilenmez.

C:

Çevrimiçi deneyin!

OFP betik dili:

init.sqsGörev klasöründeki gibi kaydedin, sonra arayın hint format["%1", 2 call F].

Sonuç: görüntü tanımını buraya girin


Tamam, bu oldukça havalı. Bu saçma kancayı kullanmayı nasıl düşündün?
Rɪᴋᴇʀ

@Riker Operasyonu Flashpoint her zaman en sevdiğim oyunlardan biriydi; Senaryo diliyle pek çok şey yapardım.
Steadybox

3

Retiküler / Befunge-98 , 15 bayt

2D dilleri!

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

Befunge-98

/&:*.@

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

ağsı

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

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

3

> <> / Jelly , 9 bayt (> <> içindeki '-v' bayrağı için 7 bayt kodu + 2)

Dostum, Jelly link yapısı ile gerçekten eğleniyorum.

:*n;
½

> <> 'Daki kareyi ve Jelly' deki karekökü hesaplar .


-V'yi de jöle olarak kullanmama izin verilir mi?
Rɪᴋᴇʀ

Kullanımı -vbence, bu vakayı ele alan bir meta sorgulamada [en çok oy alan cevap [( codegolf.meta.stackexchange.com/a/11431/44874 ) ile uyumludur. ><>Tercüman buna ihtiyacı -vve bu mümkün olan en basit çağırma bunun olduğunu.
steenbergh

3

Python 3 + JavaScript, 101 bayt

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)

JS'de kare kökü, Python'da kare.

Firefox'ta çalışır (FF 52'de test edilmiştir) ve (function(x) x)(42) === 42geçerli bir sözdizimi gerektirir . Ayrıca **operatör için ES7 gerektirir .


Firefox'ta test edildi ve çalışıyor. x=>x**yBunun yerine kullanmak mümkün mü ? Yoksa Python buna boğulacak mı?
Ismael Miguel,

@IsmaelMiguel python ok fonksiyonlarını desteklemiyor.
Rɪᴋᴇʀ

Bu python için işe yaramaz. İşlev bir anahtar kelime değildir.
Rɪᴋᴇʀ

Çalışıyor. Yana functionbir anahtar kelime değil, geçerli bir tanımlayıcı var. Bu yüzden sadece ona bir noop işlevi atadım ( execifadenin içinde ).
kjaquier

3

bash ve sh, 48 bayt

Güncelleme: Yenilgiyi kabul etmeliyim. Digital Trauma'nın bas / sh cevabı bundan çok daha zarif.


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

bash üretir n^2, sh üretir sqrt(n).


bcsadece sqrthesaplanabilmesi için gereklidir . Davranıştaki fark bash ve sh arasındadır.

Tamam, teknik olarak ben kullanıyorum "sh" hala bash, ama "POSIX" modunda bash ( bash için takma ad olan sistemler /bin/shyerine çağırırsanız olur). Sisteminizde durum buysa, şunlarla test edebilirsiniz:/bin/bash/bin/sh

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

Bu, burada açıklanan farklılıklardan birine dayanmaktadır: https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html


1
Bu nasıl çalışıyor?
Brian Minton

2
@BriMinton Koşmayı deneyin kill -l(olası sinyalleri listeler; hiçbir şeyi değiştirmez) bashve sh. Burada bulabileceğiniz birçok farklılıktan biri: gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html
Dave

3

QBIC / QBasic, 26 18 bayt

input a
?a^2'^.25

In QBasic , bu sayı karesi bir sayı alır ve baskılar. Kodun geri kalanı yok sayılır, çünkü QBasic bunu bir yorum olarak görüyor ( ').

QBIC aynı giriş deyimini kullanır. Daha sonra aynı sayıyı kareye basmaya başladı, sonra çeyrekliğin gücüne yükseldi ve onu iki kez etkili bir şekilde kökledi. Bunun nedeni 'bir hazır bilgi kodu olarak görülüyor: QBIC tarafından ayrıştırılmayan Saf QBasic kodu.


2

Jöle / Pip , 6 bayt

EDIT: İşlemleri tersine çevirmek için kısa bayt.

RTa
²

Jelly'i çevrimiçi deneyin!

Jelly kodun altında çalışmaya başlar ('ana bağlantısı') ve daha yüksek bir şeye ihtiyaç duyup duymadığını görür: komutun karesini alması için görür ve dolaylı olarak giriş ve çıkışla ilgilenir.

Pip'i çevrimiçi deneyin!

Pip, (cmd satırından dolaylı olarak okunan) karesini kareler ve üstü kapalı olarak basar ve bunu basar. Alt satır yoksayılır.


Alternatif 6-Byter: PRTaVS.
steenbergh

2

Wolfram Dili / PHP , 25 bayt

Wolfram Dilinde bir sayının karesini alın ve PHP'de karekökü alın;

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

İlk satır Wolfram Dilidir. Öncelikle, Wolfram Alpha’daki arama çubuğunda n'yi değiştiren sizsiniz, böylece kod da girdi. Sonra enter tuşuna basıldığında cevabı üretecektir.

n^2

İkinci satır PHP'dir, adres çubuğuna girilecek olan n'nin karekökünü alır (örneğin, 213 n değerinde ppcg.php.net?n=213)

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

1
PPCG'ye Hoşgeldiniz! Ancak, bir şekilde giriş yapmalısınız. Numaranın bir değişkende saklandığını varsayamazsınız. Bunun için üzgünüm. Burada kabul edilebilir giriş / çıkış yöntemlerinin listesini görebilirsiniz. (Cevaplardaki olumlu puanlar, izin verildiği anlamına gelir, olumsuz araçlar izin verilmez)
Rɪᴋᴇʀ

Anladım. Ben sadece cevabımı düzenleyeceğim. :) Başka bir şey, ben sadece wolfram giriş için başka bir kod ekleme neden geçerli olmadığını açıklayacağım.
Jimwel Anobong

Memnuniyetle yardım ettim! Umarım ppcg içinde takıl!
Rɪᴋᴇʀ


1
Wolfram Dili, doğal olmayan bir şekilde yazılması için matematiksel formüle ihtiyaç duyan matematiğe dayanır. Cevaplayıcı başka bir şeyi temizler, dili olmayan web sitesi ama wolfram dili onu destekleyen dildir. Wolfrsm Dili ve WolframAlpha, her biriyle ilgilidir ancak aynı değildir. Tamamen farklısın.
Jimwel Anobong

2

PHP 5.6 ve PHP 7, 55 bayt

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

PHP 5.6 üretir n^2, PHP 7 üretir sqrt(n).


2

macOS Bash ve sh, 24 bayt

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

Mac'te, shbir bashPosix modunda çalışırken, ve gereği bu durumda https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html :

POSIX özel yerleşiklerinden önceki atama ifadeleri, tamamlandıktan sonra kabuk ortamında kalır.

Bu nedenle sh, değişken çalıştırıldıktan sonra bir pdeğere sahiptir , ancak değişken için çalıştırma sırasında yalnızca bu değer vardır ve daha sonra boştur.^4:bashp:

Hala gerçekten bashörtü altında kalan, sapmalar gibi bazı bazitler <<<hem bash hem de sh kılıfları için çalışmaktadır.


Bash ve çizgi (ve GNU yardımcı programları), 27

Ubuntu'da 16.01, sapkınlık yapmayan shbir bağlantıdır . Yani bunun yerine biz var:dash<<<

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

Çevrimiçi deneyin .


Farklı bir modun / env'nin hoş kullanımı!
programmer5000

Bu benim versiyonumdan çok daha iyi!
Dave,

1

Octave / Kardinal , 28 bayt

Bu program girişi Kardinalde kareler ve Octave'da karekök alır

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

Çevrimiçi deneyin! (Oktav)

Çevrimiçi deneyin! (Cardinal)

% Octa, tek satırlı yorumdur, bu yüzden sadece girdi elde eder ve kare kökü basar

disp(sqrt(input("")))

Böylece Kardinal program 0 hatayla bölünmüyor ve ölüyor, program

%:=t.

her iki program tarafından da göz ardı edilen bir boşlukla değiştirildi

Kardinal programın açıklaması:

Program% 'den başlar.
Girdi alır ve değeri aktif olarak kaydeder:
Aktif olmayan aktif değere eşit olur. =
Aktif olan aktif değil t ile çarpılır.
Sonunda aktif değeri verir.


1

PHP / JavaScript, 43 bayt

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

Giriş şöyle olur:

<?php $x = 10; ?>

Kendini açıklayan bir tür, ama kurallara uyuyor mu? İlk kodum golf tho :-)


1
Golf koduna hoş geldiniz! Giriş bir kayan nokta veya yalnızca bir kayan nokta olan bir dize olmalıdır. Doğru anlarsam, bu ayrı bir giriş gerektirir.
programmer5000

Bunun JavaScript olarak çalıştığından emin misin? Her iki versiyonun da bir PHP işleme aşamasına ihtiyacı var gibi gözüküyor (JavaScript ne yapacağını bilemez alert(<?=$x*$x.')>'.sqrt($x)?)
Dave

0

CGL (CGL Golf Dili) / JS (ES6), 13 bayt (yarışmacı olmayan)

Rekabetçi değil çünkü:

  1. CGL bu sorudan sonra serbest bırakıldı.
  2. CGL geçerli bir dil değil . Yüzünden ve CGL teknik olarak geçerli bir dildir.

Kod:

 x=>x**2
//-₂

JS:

Basit: ilk argüman karesini döndüren isimsiz bir ok işlevi. Adsız dil kodu yorumlandı.

CGL:

Bölünemez boşluk ilk satırdan önce bir açıklama işlevi görür. Bunlar /ameliyat dışı. -İkinci satır, vasıtalarının varsayılan sonra giriş saklanır -1, olarak ayarlar Bu 0'dır geçerli yığın numarasını, azaltma. Giriş yerleştirildiği anda kendi kare kökü ile halihazırda istifin ilk öğenin yerini alır. Varsayılan olarak, geçerli yığın, girişin karekökü çıkarılarak çıkarılır.


Bu 13 bayttır. CGL'yi bilmiyorum ama JS'nin ascii / utf-8 kullandığından eminim. CGL muhtemelen kendi kod sayfasına sahip olmadığı sürece UTF-8 kullanır.
Rɪᴋᴇʀ

@Riker şimdilik, ascii / utf-8 kullanıyor. Teşekkürler.
programcı5000
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.