एक्स की जड़ को गोल्फ करें


24

उच्च विद्यालय में ऊब जबकि (जब मैं आधा मेरे वर्तमान युग था ...), मैंने पाया कि ( एक्स ) = एक्स ( एक्स -1 ) कुछ रोचक गुण था, जैसे सहित कि अधिक से अधिक के लिए 0 ≤ एक्स है ( ), और यह कि आइसोटोप के नाभिक प्रति बंधन ऊर्जा को 6 × f ( x ... 21) के रूप में अनुमानित किया जा सकता है ...

वैसे भी, कम से कम समारोह या कार्यक्रम है कि एक्स की गणना करता है लिखने वें अपनी भाषा के डोमेन में किसी भी संख्या के लिए एक्स की जड़।

मामलों का उदाहरण देता है

सभी भाषाओं के लिए

     -1   >       -1
   ¯0.2   >    -3125
   ¯0.5   >        4
    0.5   >     0.25
      1   >        1
      2   >    1.414
      e   >    1.444 
      3   >    1.442
    100   >    1.047
  10000   >    1.001

उन भाषाओं के लिए जो जटिल संख्याओं को संभालती हैं

   -2   >        -0.7071i
    i   >            4.81         
   2i   >    2.063-0.745i
 1+2i   >   1.820-0.1834i
 2+2i   >   1.575-0.1003i

ऐसी भाषाओं के लिए जो शिशुओं को संभालती हैं

-1/∞   >   0    (or ∞ or ̃∞)
   0   >   0    (or 1 or ∞)
 1/∞   >   0
   ∞   >   1
  -∞   >   1

ऐसी भाषाओं के लिए जो दोनों प्रकार की शिशुओं और जटिल संख्याओं को संभालती हैं

 -∞-2i   >   1      (or ̃∞)

̃∞निर्देशित अनन्तता को दर्शाता है


1
यहां सकारात्मक वास्तविक के लिए एक वुल्फ्राम अल्फा साजिश हैx । यदि आप xक्वेरी में सीमा को छोड़ देते हैं , तो वुल्फराम अल्फा में नकारात्मक मान शामिल होंगे, xजहां फ़ंक्शन मान जटिल लॉगरिदम (या इसी तरह के जटिल फ़ंक्शन के लिए) की पसंद पर निर्भर करता है।
जेपी स्टिग नीलसन

उन भाषाओं के बारे में क्या जो दशमलव की शक्ति को नहीं संभालती हैं?
लीक नन

1
@KennyLau बेझिझक एक नोट के साथ पोस्ट करता है जो ऐसा कहता है, खासकर अगर एल्गोरिथम काम करेगा, तो भाषा ने इसका समर्थन किया था।
आदम

जवाबों:


38

टीआई-बेसिक, 3 बाइट्स

Ans×√Ans

TI-बुनियादी टोकन का उपयोग करता है, तो Ansऔर ×√दोनों एक बाइट कर रहे हैं।

व्याख्या

Ansइनपुट देने का सबसे आसान तरीका है; यह अंतिम अभिव्यक्ति का परिणाम है। ×√x के मूल x के लिए एक फ़ंक्शन है, इसलिए उदाहरण के 5×√32लिए 2 है।


8
जहां तक ​​मुझे पता है ansकि चर में हार्डकॉपी इनपुट के रूप में गिना जाएगा और कोड-गोल्फ के लिए एक स्वीकृत इनपुट विधि नहीं लगती है । उस स्थिति में, कृपया एक पूर्ण कार्यक्रम या एक समारोह बनाएं।
दोष

4
@flawr मैं देख सकता हूँ कि आप क्या कह रहे हैं, लेकिन ऐसा लगता है कि यह हमेशा इस तरह किया गया है। शायद यह एक मेटा पोस्ट वारंट करता है?
निन्जाबियरमॉन्की

3
AnsSTDIN / TI-Basic के लिए STDOUT है।
टिमटेक

5
stdinऔर stdoutआम तौर पर इंटरेक्टिव टेक्स्ट इनपुट और आउटपुट के लिए टेक्स्ट स्ट्रीम हैं। Ansटीआई-बेसिक में कुछ अन्य कार्यों के विपरीत, इंटरैक्टिव नहीं है, जो इंटरैक्टिव हैं।
ओलाथे

7
@flawr कारण Ansआमतौर पर स्वीकार किया जाता है क्योंकि इसका मूल्य किसी भी अभिव्यक्ति द्वारा निर्धारित होता है (भावों को अलग किया जाता है :)। इसलिए कुछ-कुछ 1337:prgmXTHROOTइनपुट 1337 होगा, जो एक सामान्य भाषा में CLAs के माध्यम से बहुत कुछ इनपुट जैसा दिखता है।
lirtosiast

23

जेली, 2 बाइट्स

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

*İ    Main link. Input: n

 İ    Inverse; yield 1÷n.
*     Power (fork); compute n ** (1÷n).

जेली एक स्टैक नहीं है। एक मोनैडिक श्रृंखला में एक सनक द्वारा एक डाईड एपीएल के कांटे की तरह व्यवहार करता है।
डेनिस

3
नहीं, J का ^%एक हुक है (जो Dyalog APL में मौजूद नहीं है), कांटा नहीं। जैली और एपीएल कोड की तुलना करना मुश्किल है क्योंकि जेली बाएं से दाएं है। निकटतम समतुल्य ÷*⊢(एक कांटा भी) होगा, जो (1/x)**xभिन्न दिशा के कारण गणना करता है । चूँकि जैली के परमाणु अतिभारित नहीं हैं (वे या तो मोनैडिक या डाइएडिक हैं, लेकिन कभी भी दोनों नहीं हैं), वहाँ 1,2,1- और 2,1-कांटे हो सकते हैं।
डेनिस

स्पष्टीकरण के लिए धन्यवाद। स्वाभाविक रूप से, मैं जेली से काफी घिनौना हूं (जो मुझे अभी भी लगता है कि ȷ या कुछ इसी तरह का नाम होना चाहिए।)
Adám

17

जावास्क्रिप्ट (ES2016), 11 बाइट्स

x=>x**(1/x)

मैं शायद ही कभी ES6 पर ES7 का उपयोग करता हूं।


2
x=>x**x**-1यह भी काम करता है, फिर से 11 बाइट्स के लिए।
नील

7
सभी नए घातांक ऑपरेटर की जय हो!
mbomb007

15

पायथन 3, 17 बाइट्स

lambda x:x**(1/x)

सुगम


7
मुझे काफी पसंद है lambda x:x**x**-1, लेकिन यह कम नहीं है।
seequ

1
आपका अभिव्यक्ति @Seeq एक ही लंबाई है, लेकिन यह दोनों अजगर 2 और 3 में काम का लाभ दिया है
mathmandan

1
पायथन 2 सबसे छोटा है lambda x:x**x**-1, इसलिए यह 2 और 3 में समान है
mbomb007

मुझे यह जवाब उम्र के लिए नहीं मिला और जब मैंने किया तो मैं वास्तव में नाराज था।

12

हास्केल, 12 11 बाइट्स

कुछ जादू करने के लिए @LambdaFairy धन्यवाद:

(**)<*>(1/) 

मेरा पुराना संस्करण:

\x->x**(1/x)

4
(**)<*>(1/)11 बाइट्स है।
लैम्ब्डा फेयरी

@LambdaFairy धन्यवाद! क्या आप समझाते हैं? ऐसा लग रहा है कि आप आंशिक रूप से लागू किए गए कार्यों के साथ कुछ जादू कर रहे हैं, लेकिन जैसा कि मैं हास्केल के लिए काफी नया हूं मैं वास्तव में यह नहीं समझता कि यह कैसे काम करता है =)
त्रुटी

यह इस तथ्य का उपयोग करता है कि 1-तर्क फ़ंक्शन को एक आवेदक फ़नकार ("रीडर मोनाड") माना जा सकता है। <*>ऑपरेटर एक अनुप्रयोगी कि एक समारोह है, और एक अनुप्रयोगी कि एक मूल्य का उत्पादन का उत्पादन लेता है, और मूल्य के लिए समारोह लागू होता है। तो इस मामले में, 1-तर्क फ़ंक्शन के लिए 2-तर्क फ़ंक्शन को लागू करने का एक मन-झुकने वाला तरीका।
MathematicalOrchid

2
समारोह <*>3 तर्क, दो कार्यों लेता है fऔर gऔर एक तर्क x। इसे इस रूप में परिभाषित किया गया है (<*>) f g x = f x (g x), अर्थात यह लागू होता fहै xऔर g x। यहाँ यह आंशिक रूप से लागू होता है fऔर gबाहर निकलता है x, जहाँ f = (**)और g = (1/)(एक आंशिक रूप से लागू फ़ंक्शन (एक खंड) जो इसके तर्क के पारस्परिक मूल्य की गणना करता है)। तो ( (**)<*>(1/) ) xहै (**) x ((1/) x)या लिखित इन्फ़िक्स में: x ** ((1/) x)और अनुभाग का संकल्प के साथ: x ** (1/x)। - नोट: <*>यहां फ़ंक्शन संदर्भ में उपयोग किया जाता है और अन्य संदर्भों में अलग तरह से व्यवहार करता है।
nimi

@ निम्मी तो यह Sकॉम्बिनेटर यानी एस (**) (1 /) के बराबर है ?
नील

10

जे, 2 बाइट्स

^%

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

^%  Monadic verb. Argument: y

 %  Inverse; yield 1÷y.
^   Power (hook); compute y ** (1÷y).

मैं यह जवाब लिखने वाला था। मैं इस पर बहुत धीमा हूँ।
बिजन

1
@Bijan एक साल से अधिक धीमी गति से, ऐसा लगता है। : पी
डेनिस

मैं देखता हूं, मैं अब केवल एक हफ्ते के लिए गोल्फ खेल रहा हूं।
बिजन

9

अजगर, 3 बाइट्स

@QQ

तुच्छ चुनौती, तुच्छ समाधान ...

(नॉनकमेटिंग, 1 बाइट)

@

यह Pyth के एक संस्करण में मौजूद निहित इनपुट सुविधा का उपयोग करता है जो इस चुनौती को स्थगित करता है।


क्या यह समाधान अंतर्निहित इनपुट की विशेषता को दर्शाता है?
लीक नून

@ केनीलाऊ हां, लंबे समय से। लेकिन मैं वैसे भी एक-बाइट समाधान संपादित किया है।
दरवाज़े

8

जावास्क्रिप्ट ईएस 6, 18 बाइट्स

n=>Math.pow(n,1/n)

8

जावा 8, 18 बाइट्स

n->Math.pow(n,1/n)

जावा अंतिम स्थान पर नहीं है!?!

निम्नलिखित के साथ परीक्षण करें:

import java.lang.Math;

public class Main {
  public static void main (String[] args) {
    Test test = n->Math.pow(n,1/n);
    System.out.println(test.xthRoot(6.0));
  }
}

interface Test {
  double xthRoot(double x);
}

यह तथ्य यह है कि यह एक फ़ंक्शन है
कैलक्यूलेटरफल

6

जावा, 41 बाइट्स

float f(float n){return Math.pow(n,1/n);}

जावा के कारण बिल्कुल प्रतिस्पर्धी नहीं है, लेकिन क्यों नहीं?


1
PPCG में आपका स्वागत है! मुझे लगता है कि आप इस फ़ंक्शन पर रिटर्न प्रकार याद कर रहे होंगे।
एक स्पेगेटो

उफ़, मैला हो गया। एक जावा 8 जवाब ने पहले ही इस एक को हरा दिया ...
डारेल हॉफमैन


6

मेथेमेटिका, 8 7 4 7 बाइट्स

#^#^-1&

अधिक अंतर्निहित केवल जवाब, और अब भी कम! नहीं। परिभाषा के अनुसार, अगला उत्तर 13 बाइट्स होना चाहिए। (फाइबोनैचि!) पैटर्न अभी भी टूटा हुआ है। :(


1
# ^ # ^ - 1 और 1 बाइट बचाता है।
njpipeorgan

अब यह गोल्फ है।
अड्म

1
अब यह गोल्फ है।
कैलकुलेटरफाइनल

1
जब मुमताका रिलीज़ होगी, हम इस बोर्ड पर राज करने जा रहे हैं।
माइकल स्टर्न

1
निश्चित रूप से सिर्फ Surdमान्य नहीं है क्योंकि इसके लिए दो तर्कों की आवश्यकता है?
LLAMAMYP

5

पर्ल 5, 10 बाइट्स

9 बाइट्स प्लस 1 के लिए -p

$_**=1/$_

5

आर, 19 17 बाइट्स

function(x)x^x^-1

-2 बाइट्स @Flounderer को धन्यवाद


क्यों नहीं x^(1/x)? संपादित करें: x^x^-1काम करने के लिए भी लगता है।
फ़्लाउंडर

यह एक स्निपेट है, और जाहिर तौर पर लोग स्निपेट पसंद नहीं करते हैं।
कैलक्यूलेटरफैनलाइन

@CatsAreFluffy यह एक फ़ंक्शन की परिभाषा है।
21

5

रूबी, 15 बाइट्स

a=->n{n**n**-1}

Ungolfed:

->इसके बराबर में स्टैम्बी लैम्बडा ऑपरेटर a=->nहैa = lambda {|n|}


5

एनएआरएस एपीएल, 2 बाइट्स

√⍨

NARS फ़ंक्शन का समर्थन करता है, जो S-th रूट ⍵ देता है। कम्यूट (⍨) लागू करने से एक फ़ंक्शन मिलता है, जो कि विडंबना का उपयोग करने पर, दिए गए फ़ंक्शन के दोनों पक्षों पर अपना तर्क लागू करता है। इसलिए √⍨ xx √ x

अन्य एपीएल, 3 बाइट्स

⊢*÷

यह एक समारोह ट्रेन, यानी है (F G H) x(F x) G H x। मोनाडिक पहचान है, डायडिक *शक्ति है, और मोनैडिक ÷उलटा है। इसलिए, ⊢*÷है एक्स 1 / करने के लिए उठाया एक्स


5

पायथन 2 - 56 बाइट्स

पहला वास्तविक उत्तर, यदि मैं सही हूं। न्यूटन की विधि का उपयोग करता है।

n=x=input();exec"x-=(x**n-n)/(1.*n*x**-~n);"*999;print x

कार्य ठीक हैं।
कैलक्यूलेटर



4

तोरण , 5 बाइट्स।

ideAe

यह काम किस प्रकार करता है।

i # Get command line input.
d # Duplicate the top of the stack.
e # Raise the top of the stack to the power of the  second to the top element of the stack.
A # Push -1 to the stack (pre initialized variable).
e # Raise the top of the stack to the power of the second to the top element of the stack.
  # Implicitly print the stack.


4

सी ++, 48 बाइट्स

#include<math.h>
[](auto x){return pow(x,1./x);}

दूसरी पंक्ति एक अनाम लंबो फ़ंक्शन को परिभाषित करती है। इसे एक फ़ंक्शन पॉइंटर को असाइन करके और इसे कॉल करके या सीधे कॉल करके इसका उपयोग किया जा सकता है।

इसे ऑनलाइन आज़माएं


^C ++ में काम नहीं करता है जैसा कि C में करता है?
ताकरा

2
@ minerguy31: ^C (और C ++) में बिटवाइस एक्सोर है।
मारीनस

4

मिल्की वे 1.6.5 , 5 बाइट्स

'1'/h

व्याख्या

'      ` Push input
 1     ` Push the integer literal
  '    ` Push input
   /   ` Divide the STOS by the TOS
    h  ` Push the STOS to the power of the TOS

एक्स ** (1 / एक्स)


प्रयोग

$ ./mw <path-to-code> -i <input-integer>

4

, 6 बाइट्स

j.1\/^

कोई ऑनलाइन लिंक नहीं क्योंकि ऑनलाइन आईडीई काम नहीं करता है (विशेष रूप से, घातांक टूट गया है)

स्पष्टीकरण:

j.1\/^
j.      push two copies of input
  1\/   push 1/input (always float division)
     ^  push pow(input, 1/input)

ओह हे, आपने इसे किया था
चरण


4

पाइके (कमिट 29), 6 बाइट्स

D1_R^^

स्पष्टीकरण:

D      - duplicate top
 1_    - load -1
   R   - rotate
    ^  - ^**^
     ^ - ^**^

खतरनाक लिंक कर सकते हैं pls?
बिल्ली

ओह, मुझे लगा कि आपका मतलब है कि कोई कार्यान्वयन उपलब्ध नहीं है। हां, दुभाषिए को होस्ट नहीं करना है , रेपो / स्रोत (या डॉक्स) के लिए बस एक लिंक पर्याप्त होगा
बिल्ली

4

सी # - 18 43 41 बाइट्स

float a(float x){return Math.Pow(x,1/x);}

-2 बाय @VoteToClose को धन्यवाद

कोशिश करके देखो

ध्यान दें:

गोल्फिंग में पहला वास्तविक प्रयास - मुझे पता है कि मैं यह बेहतर कर सकता था।


भीड़ में आपका स्वागत है! यह बिल्कुल नए लोगों की वजह से है कि मैं इस तरह की तुच्छ चुनौतियों का सामना करता हूं।
एडमंड

फिक्स्ड। मुझे इस बारे में सूचित करने के लिए धन्यवाद
EnragedTanker

@ crayzeedude कोई समस्या नहीं है। अच्छा काम और फिर, पीपीसीजी में आपका स्वागत है!
एलेक्स ए।


वास्तव में यह करता है।
EnragedTanker

4

सी, 23 बाइट्स

#define p(a)pow(a,1./a)

यह एक स्थूल कार्य को परिभाषित करता है pजो की aमूल जड़ का मूल्यांकन करता है a

मुझे याद दिलाने के लिए डेनिस को धन्यवाद कि gccइसमें math.hशामिल होने की आवश्यकता नहीं है ।

@ मुझे याद दिलाने के लिए @ E spaceGᴏʟғᴇʀ का धन्यवाद कि पहले के बाद का स्थान ) जरूरत नहीं है।

इसे ऑनलाइन आज़माएं


GCC के साथ, आपको math.h को शामिल करने की आवश्यकता नहीं है।
डेनिस

-1 बाइट:#define p(a)pow(a,1./a)
आउटगोल्फ

4

डीसी , 125 बाइट्स

15k?ddsk1-A 5^*sw1sn0[A 5^ln+_1^+ln1+dsnlw!<y]syr1<y1lk/*sz[si1[li*li1-dsi0<p]spli0<p]so0dsw[lzlw^lwlox/+lw1+dswA 2^!<b]dsbxp

अन्य डीसी उत्तर के विपरीत, यह सभी वास्तविक xसे अधिक या 1 ( 1 ≤ x) के बराबर के लिए काम करता है । दशमलव के बाद 4-5 स्थानों पर सटीक।

मैंने यहाँ एक TIO लिंक शामिल किया होगा, लेकिन किसी कारण से यह वहाँ संस्करण के साथ एक विभाजन दोष फेंकता है (dc 1.3 ) जबकि यह मेरे स्थानीय संस्करण के साथ नहीं है (dc 1.3.95 ) के ।

व्याख्या

जैसा कि dcगणना करने के लिए गैर-पूर्णांक घातांक के लिए संख्या बढ़ाने का समर्थन नहीं करता है x^(1/x), यह इस तथ्य का लाभ उठाता है कि:

लाभ

तो, गणना करने के लिए ln(x), यह इस तथ्य का लाभ उठाता है कि:

Advantage2

से जिसका निश्चित अभिन्न 1 to (b = x)की वृद्धि के साथ संख्यानुसार-approximated है 10^-5निम्नलिखित योग सूत्र का उपयोग:

संक्षेप सूत्र

परिणामी राशि तब 1/xप्राप्त करने के लिए गुणा होती है ln(x)/xe^(ln(x)/x)फिर अंत में e^xमैक्लॉरीन श्रृंखला का उपयोग करके 100 शब्दों की गणना की जाती है:

e ^ x मैकलॉरिन श्रृंखला

इसके परिणामस्वरूप हमारा अपेक्षाकृत सटीक उत्पादन होता है x^(1/x)


1
+1 यह वहाँ से बाहर सबसे अच्छा डीसी उत्तरों में से एक हो गया है। मैं इसे बुकमार्क कर रहा हूँ!
कृतिका लिथोस

@KritiiLithos धन्यवाद! इस तरह के शब्द मुझे पसंद हैं। :)
आर। काप

3

PHP 5.6, 32 30 29 बाइट्स

function($x){echo$x**(1/$x);}

या

function($x){echo$x**$x**-1;}

30-> 29, धन्यवाद डेनिस!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.