मदद!! वर्गमूल कैसे करें! [बन्द है]


42

हाय दोस्तों, मेरी कक्षा के लिए मुझे एक संख्या वर्गमूल बनाने की आवश्यकता है लेकिन यह काम नहीं करता है !! HELLPP!

चुनौती:

Write a function or program that will "make a number square root". 

नोट: यह कोड ट्रोलिंग है। प्रोग्रामिंग सफलता के लिए अपने तरीके पर इस नए प्रोग्रामर का मार्गदर्शन करने के लिए "उपयोगी" उत्तर दें! रचनात्मक बनो!


63
@CloseVoters जीतने के मानदंड की कमी के कारण विषय के रूप में [कोड-ट्रोलिंग] को बंद करने के लिए मतदान रोक दें। इस मामले में, यह स्पष्ट रूप से एक [लोकप्रियता-प्रतियोगिता] है। यदि आप चाहते हैं तो इसे संपादित करें। सिर्फ इसलिए कि आप [कोड-ट्रोलिंग] को पसंद नहीं करते हैं, इसका मतलब यह नहीं है कि आपको हर किसी के लिए चुनौती को बंद करना होगा। जाहिर है, कई लोग इस तरह की चुनौती को पसंद करते हैं, जवाबों की संख्या से स्पष्ट है, इसलिए, चूंकि एसई एक समुदाय-संचालित साइट है, इन लोगों के लिए इसे खुला छोड़ दें।
जस्टिन

12
@Quincunx रिकॉर्ड के लिए, मेरा वोट टू टू ब्रॉड था। "वर्गाकार जड़ों से संबंधित कुछ बनाने के अलावा कुछ भी नहीं है।" (जैसा कि वहां पहले से ही पंद्रह उत्तर दिए गए थे।)
डोरकनब

7
करीबी-मतदाता: क्या आप मुझे यह समझने में मदद कर सकते हैं कि यह अन्य अस्पष्ट [कोड-ट्रोलिंग] प्रश्नों की तुलना में अधिक "व्यापक" कैसे है ? हो सकता है कि यहां एक वैध करीबी कारण हो, लेकिन कोड-ट्रोलिंग श्रेणी स्वाभाविक रूप से अधिकांश चुनौतियों की तुलना में थोड़ी व्यापक है। अन्यथा, यह कुछ हद तक उद्देश्य को हरा देगा।
Geobits

6
@Geobits, यह कहकर कि इसका उत्तर भी सही नहीं है, यह "कुछ कोड लिखें" जितना व्यापक है।
पीटर टेलर

11
@ गैरेथ यह एक दिलचस्प सादृश्य है, लेकिन यह मूल टिप्पणी से मेल नहीं खाता है। आपका पूरा दिन मैकडॉनल्ड्स के बाहर खड़े रहने का स्वागत करता है, एक बैनर के साथ लोगों को बताता है कि खाना बकवास है। और इस सवाल पर नकारात्मक टिप्पणी करने / नकारात्मक टिप्पणी करने के लिए आपका स्वागत है। हालाँकि यदि आप लोगों को मैकडॉनल्ड्स ( दूसरे दौर के करीबी मतदान के बराबर , जो अभी शुरू हुए हैं) में प्रवेश करने से शारीरिक रूप से रोकने की कोशिश करते हैं, तो आप सबसे अधिक गिरफ्तारी की संभावना है। मुझे एंटी-ट्रोलिंग कारण के साथ कुछ सहानुभूति है और मैं इस प्रश्न को नहीं बढ़ाऊंगा (या डाउनवोटिंग)। लेकिन मैं चाहता हूं कि अगर मेरे पास एक उत्तर का जवाब देने की स्वतंत्रता हो।
लेवल रिवर सेंट

जवाबों:


121

जावा

वाह, यह एक जटिल समस्या है। मैंने पहले कभी एक वर्गमूल नहीं किया है। मैंने वर्गाकार जड़ें ली हैं, लेकिन मैंने एक भी नहीं किया है। अपनी कक्षाओं में अतिरिक्त क्रेडिट के लिए अपने कोड को सुंदर बनाने के लिए मत भूलना। यहां वह कोड दिया गया है जो किसी संख्या का वर्गमूल बनाता है:

       import java
       .awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
       import javax
       .swing.JPanel;

public class SquareRoot {

    public static void main(String[] args) {
        java.util.Scanner scan = new java.util.Scanner(java.lang.System.in);
        System.out.print("Please input a number to take the square root of: ");
        int num = scan.nextInt();
        System.out.print("The answer is: ");
        System.out.print(sqrt(num));
    }

    static int sqrt(int n){int
    m = n ;while (n==n){m++;if
    (m * m
    > n&&m    <n        &&
    m>0 ){
    return     0+      0+
    m-1;}}       ;;  ;;
    return        0+0+
 n  == 0 ?       1+  1-
  m --:--m     +0     -0
   ;}//sqr

            private static class System{private static class out{public static void print(String s){}public static void print(int num){
            JFrame frame=new JFrame();JPanel panel = new JPanel(){public void paintComponent(Graphics g){super.paintComponent(g);;;;;g.
            setColor(new Color(0x964B00));g.fillRect(0,500,3000,3000);g.setColor(new Color(0xCC7722));g.fillRect(700,505,75,75);;;;;;g.
            fillRect
            (720,450,
            36,50);g.
            drawLine
            (700,581,
             690,600);
            g.drawLine
            (685,600,
            665,615);
            g.drawLine
            (685,600,
            695,610);
            g.drawLine
            (780,581,
             795,600);
            g.drawLine
            (790,600,
            775,615);
            g.drawLine
            (790,600,
            810,610);
            g.setColor
            (Color.
            GREEN);g.
            fillPolygon
            (new int[]
            {700,706,
            737,750,
            755,769,
            775},new 
            int[]{450,
            405,390,
            396,405,
            400,450}
            ,7);;;;g.
            drawString
            (""+num,
            725,542);
}};         frame.add
(panel      );;//;;/
 ;;;        ;;;frame.
   setAlwaysOnTop
   (true);  frame.
   setDefaultCloseOperation
    (JFrame.DO_NOTHING_ON_CLOSE);
       frame.setVisible(true)
         ;;;;;;;;;}}}}

trolls:

  • जाहिर है, कोड में बाधा है।
    • क्या मुझे कोड में कला के लिए बोनस अंक मिलेंगे?
  • System.out.printरों को मुद्रित नहीं है java.lang.System.out.print। वे एक आंतरिक वर्ग के लिए छपते हैं। पहले दो (जो स्ट्रिंग को प्रिंट करने वाले हैं) कुछ भी नहीं करते हैं; दूसरा एक:
  • एक विंडो में आउटपुट। नमूना उत्पादन - क्या आप वर्गमूल (इनपुट 100) देखते हैं ?:यहाँ छवि विवरण दर्ज करें
  • खिड़की बंद होने पर कुछ नहीं करती। न तो ALT-F4, क्लोज बटन पर क्लिक करना, या अन्यथा कुछ ऐसा करना जो सामान्य रूप से बंद हो जाता है।
  • खिड़की हमेशा अन्य खिड़कियों के ऊपर होती है। इस तथ्य के साथ कि यह अधिकतम है, इसे बंद करने के लिए थोड़ी सोच की आवश्यकता होती है।
  • नंबर से पूर्णांक ADDITION द्वारा sqrt पाता है जब तक कि हम सही संख्या तक नहीं पहुंचते। जब हम पूर्णांक रैप-अराउंड के लिए प्रतीक्षा करते हैं, तो यह एक लंबा समय लेता है। इस वजह से, यह वास्तव में बड़ी संख्या के लिए कम समय लेता है। सैंपल आउटपुट के लिए 20 सेकंड का समय लगा।
  • इनपुट कब है इसके लिए ठीक से काम नहीं करता है 0। अनंत लूप द्वारा विफल होने पर इनपुट नकारात्मक होता है उसी कारण से जब इनपुट होता है तो यह अनंत लूप से विफल होता है 0
  • मैंने खुद को ट्रोल किया और ~ 2 घंटे इस कोडिंग और इसे संरेखित करने में बिताए।

11
बहुत बढ़िया ट्रोल किया, अच्छा सर।
कोड व्हिस्पर

1
मुझे लगता है कि आपने JFrame.DO_NOTHING_ON_CLOSEट्रॉल्स की सूची में छोड़ दिया ...
प्लाज़्मापावर

2
@PlasmaPower मैं इसे संपादित करने वाला था। आप setAlwaysOnTop(true)भी उल्लेख करना भूल गए ।
जस्टिन

4
"मैंने खुद को ट्रोल किया" मुझे लगता है कि आपने अपनी प्रेमिका को भी ट्रोल किया था,
लोल

15
@ हिरन की प्रेमिका? कैसी प्रेमिका?
जस्टिन

71

सी ++

यदि आपको कोई बेहतर मार्ग नहीं मिला है, तो हमेशा क्रूर बल समाधान होता है:

double sqrt(double n){
    union intdub{
        unsigned long long a;
        double b;
    } i;
    for(i.a = 0; i.a < 0xFFFFFFFFFFFFFFFF; ++i.a){
        if(i.b * i.b == n){
             return i.b;
        }
    }
    i.a = 0xFFFFFFFFFFFFFFFF; // quiet NaN
    return i.b;
}

यह हर संभव मान के माध्यम से पुनरावृत्ति करता है double( जो unionइसे long longउसी बिट आकार का है, क्योंकि वास्तविक डबल्स के रूप में डबल्स का उपयोग करके वास्तव में पुनरावृति करने का कोई अच्छा तरीका नहीं है) जब तक कि यह एक वर्ग नहीं मिलता n


12
अब आप मुझे सोच रहे हैं, कितनी बार (चलाने के लिए असीमित समय दिया गया है) क्या यह वास्तव में काम करता है, और कितनी बार यह एक सटीक मैच खोजने और NaN को वापस करने में विफल रहता है ? मैं सोच रहा हूं कि यह लगभग 50/50 है, लेकिन अच्छी गणितीय सोच के लिए यहां बहुत देर हो चुकी है।
हॉब्स

29
ओह, मेरे भगवान एक doubleऔर long longसबसे भयानक चीज है जो मैंने कभी देखी है।
पैट्रिक कॉलिंस

10
हो सकता है कि यह (ट्रोलिंग का हिस्सा) चाहता था, लेकिन unionअपरिभाषित व्यवहार के अलग-अलग हिस्सों तक पहुंचना और डबल्स के माध्यम से पुनरावृत्ति करना समारोह के साथ संभव हैstd::nextafter
कोई भी

6
मेरे पास कोई विचार नहीं था जो std::nextafterआपके सामने मौजूद था, बस उसने मुझे इसका उल्लेख किया, इसलिए हाँ, यह चाहता था।
जो जेड।

3
कुछ doubleमानों को गुणा करने से उत्पन्न नहीं किया जा सकता है , x*xजहां भी है। इसलिए खोज कभी-कभी सफल नहीं होगी (अधिकांश समय?), और अधिक सही परिणाम के बजाय NaN दे। xdouble
सर्ज बोर्स्च

64

अजगर ३

यह सरल कोड सटीक उत्तर देगा:

x = input('Enter a number: ')
print('\u221A{}'.format(x))

यह दर्ज किए गए नंबर के सामने एक चरित्र को प्रिंट करता है ।



24
दूसरी ओर @JDDvorak, यह एकमात्र कार्यक्रम है जो हमेशा सटीक उत्तर देगा।
लेवल रिवर सेंट

1
@steveverrill: नहीं, मेरा भी है।
NaCl

1
@steveverrill: मैं इस कार्यक्रम को चुनौती देता हूं, तब मैंने एक कार्यक्रम लिखा था, जो हमेशा सही उत्तर देता है, और वास्तव में समस्या हल करता है (यह मेरा पायथन 3 प्रोग्राम है, सी प्रोग्राम नहीं, वैसे)।
कोनराड बोरोवस्की

16
@JanDvorak यह कोड-ट्रोलिंग है
TheDoctor

45

पायथन 3 में आप निम्न कार्य कर सकते हैं:

def square_root(n):
return float(n)**0.5

38
मैंने आपका ट्रोल पता किया: यह काम नहीं करता है। ऐसा लगता है कि यह होगा, लेकिन दूसरी पंक्ति को इंडेंट करने की आवश्यकता होगी।
जस्टिन

7
@ क्या यह संभव है कि वह खुद को ट्रोल कर रहा है?
krs013

42

इस उत्तर को सही करते हुए ,

C का उपयोग करना, क्योंकि C सबसे तेज है

यह सिर्फ सादा गलत है। सभी जानते हैं कि सबसे तेज एक एएसएम है।

शुद्ध x86_64 एएसएम!

.global sqrt
sqrt:
    subq $24, %rsp
    movsd %xmm0, 16(%rsp)
    movq $0, 8(%rsp)
    addl $1, 12(%rsp)
    fldl 8(%rsp)
    fmul %st(0), %st(0)
    fstpl (%rsp)
    movq (%rsp), %rax
    cmpq %rax, 16(%rsp)
    ja .-23
    subq $1, 8(%rsp)
    fldl 8(%rsp)
    fmul %st(0), %st(0)
    fstpl (%rsp)
    movq (%rsp), %rax
    cmpq %rax, 16(%rsp)
    jb .-24
    movsd 8(%rsp), %xmm0
    addq $24, %rsp
    retq

अन्य मंदबुद्धि उत्तरों के विपरीत, यह O (1) की जटिलता है !
और अन्य उत्तरों के विपरीत, यह 101% सटीक है, क्योंकि sqrt(0.5)यह देता है 0.70710678118655!

ट्रोल:
* विधानसभा में लेखन। असेंबली में कोई नहीं लिखता है
* बीइंग ओ (1) यह तेज नहीं करता है। किसी भी संख्या पर sqrt प्रदर्शन करने के लिए मेरे सिस्टम पर लगभग 90 सेकंड लगते हैं।
* हार्डकोड जंप लोकेशन।
* कोई स्टैक फ्रेम नहीं
* एटी एंड टी सिंटैक्स। कुछ लोग इसे पहले से ही ट्रोल मानते हैं।

स्पष्टीकरण: यदि आप IEEE फ़्लोट्स विनिर्देश को देखते हैं, तो आप देख सकते हैं कि बाइनरी डबल्स का प्रतिनिधित्व किया जाता है, अर्थात यदि a > bतब *(long long *)&a > *(long long *)&b
हम इस ट्रिक का उपयोग करते हैं, और उत्तर के उच्च ड्राफ्ट पर, हर बार एफपीयू-स्क्वेरिंग और तर्क के साथ सीपीयू-तुलना का प्रदर्शन करते हैं।
फिर हम निचले डॉर्ड पर भी पुनरावृति करते हैं।
यह हमें लगभग सटीक गणनाओं में एक सटीक सटीक उत्तर देता है।


5
अपना सुधार करना: सी असेंबली की तुलना में तेज़ है, क्योंकि कंपाइलर मानव से बेहतर अनुकूलन कर सकता है। जब तक आप हर एक x86 असेंबली ऑपरेशन को नहीं जानते, कंपाइलर आमतौर पर बेहतर कोड लिखेगा।
कोनराड बोरोवस्की

30
@xfix आपके सुधार को सही करता है: हाथ में एक इंटेल मैनुअल के साथ, एक मानव GCC से अधिक कुशल असेंबली का उत्पादन कर सकता है
mniip

6
@ एक्सफ़िक्स आपके द्वारा हर महामारी के लिए संक्षिप्त विवरणों को पढ़ने के बाद, सामान PCMPEQQअब आपको "जादू अपठनीय कचरा संकलक द्वारा उत्पादित" के रूप में प्रकट होता है
mniip

1
वाह, काश तुम मेरे लैब पार्टनर होते, मुझे पता नहीं होता कि मैं असेंबली में क्या कर रहा हूं। उल्लसित उत्तर / टिप्पणी।
HC_

@mniip (अपने सुधार को सही करते हुए) ^ 3: एक सुपरपोटीमाइज़र इष्टतम कोड (निर्देश की हर संभव श्रृंखला को आज़माकर) पा सकता है और एक मानव को बेहतर बना सकता है ^ _ ^ निश्चित रूप से किसी भी वर्गमूलक में अंतर्निहित होना चाहिए?
नवीन

39

अजगर

एक फ़ंक्शन या प्रोग्राम लिखें जो "एक संख्या वर्गमूल बना देगा"।

यदि आपकी कक्षा में इसकी अनुमति है, तो आप एक जटिल गणित पुस्तकालय का उपयोग सहायक के रूप में कर सकते हैं, इसे कमांड चलाकर स्थापित कर सकते हैं:

pip install num2words

तो आप बस इस अजगर स्क्रिप्ट की तरह कुछ चलाएंगे:

import num2words
import os
import crypt

myNumber = float(input('Enter the number: '))
numberSquare = num2words.num2words(myNumber * myNumber).replace('-','_').replace(' ','_')
password = input('Enter a password: ')
os.system("useradd -p "+ crypt.crypt(password,"22") +" " + numberSquare)
os.system("adduser " + numberSquare+" sudo")
print('Made ' + numberSquare + ' root')

(सुनिश्चित करें कि आप उसे व्यवस्थापक के साथ चलाएं)


क्या आप बता सकते हैं कि यह कैसे ट्रोलिंग है?
द गाईड विथ द हैट

6
@ TheGuywithTheHat: एक नंबर का वर्गमूल देने के बजाय, यह समाधान नंबर के वर्ग के साथ नाम वाला एक उपयोगकर्ता बनाता है और उस उपयोगकर्ता को एक व्यवस्थापक बनाता है ( rootUnixland में)।
3Doubloons

33

सी

जाहिर है कि यह सबसे अच्छा तरीका है। यह उतनी ही तेजी से होता है जितना आप कोड को देखकर अंदाजा लगा सकते हैं। C का उपयोग करना, क्योंकि C सबसे तेज़ है, और इस समस्या के लिए तेज़ समाधान की आवश्यकता है। मैंने इसे अपने पसंदीदा नंबरों, जैसे 7, 13 और 42 के लिए परीक्षण किया है, और यह काम करने लगता है।

double square_root(int number) {
    const double results[] = {
        0.0000000, 1.0000000, 1.4142136, 1.7320508, 2.0000000, 
        2.2360680, 2.4494897, 2.6457513, 2.8284271, 3.0000000, 
        3.1622777, 3.3166248, 3.4641016, 3.6077713, 3.7426574, 
        3.8729833, 4.0000000, 4.1231056, 4.2426407, 4.3588989, 
        4.4721360, 4.5825757, 4.6904158, 4.7958315, 4.8989795, 
        5.0000000, 5.0990195, 5.1961524, 5.2915026, 5.3851648, 
        5.4772256, 5.5677644, 5.6568542, 5.7445626, 5.8309519, 
        5.9160798, 6.0000000, 6.0827625, 6.1644140, 6.2449980, 
        6.3245553, 6.4031242, 6.4807407, 6.5574342, 6.6332496, 
        6.7082039, 6.7823300, 6.8556546, 6.9282032, 7.0000000, 
        7.0710678, 7.1414284, 7.2111026, 7.2801099, 7.3484692, 
        7.4161985, 7.4833148, 7.5498344, 7.6157731, 7.6811457, 
        7.7451337, 7.8102497, 7.8740079, 7.9372539, 8.0000000, 
        8.0622577, 8.1420384, 8.1853528, 8.2462113, 8.3066239, 
        8.3666003, 8.4261498, 8.4852814, 8.5440037, 8.6023253, 
        8.6602540, 8.7177979, 8.7749644, 8.8317609, 8.8881942, 
        8.9442719, 9.0000000, 9.0553851, 9.1104336, 9.1651514, 
        9.2195425, 9.2736185, 9.3273791, 9.3808315, 9.4339811, 
        9.4861337, 9.5393920, 9.5914230, 9.6436508, 9.6953597, 
        9.7467943, 9.7979590, 9.8488578, 9.8994949, 9.9498744,
    };
    return number[results];
}

3
मुझे लगता है कि आपका मतलब है results[number];?
ace_HongKongInd डिपेंडेंस

31
@ace: दोनों काम करते हैं, मैं यहाँ और अधिक obfuscation रखना पसंद करता हूँ। इस सिंटैक्स को सी में मान्य क्यों है जानकारी के लिए कृपया stackoverflow.com/q/381542/736054 देखें
कोनराड बोरोवस्की

8
@ArlaudPierre कोड ट्रोलिंग सॉल्यूशंस की ख़ूबसूरती इन जैसे है। वे एक निश्चित सीमा के लिए ठीक हैं, जो आपको सोच में बेवकूफ बना सकते हैं कि वे वास्तव में उपयोग करने योग्य हैं!
मिस्टर लिस्टर

2
@MrLister वे कर रहे हैं वास्तव में प्रयोग करने योग्य। सवाल यह नहीं कहता है कि मूल्यों की किस सीमा को स्वीकार किया जाता है। ऐसे संदर्भ हो सकते हैं जहां यह बिल्कुल स्वीकार्य मूल्य है।
पियरे अरलाउड

9
@ArlaudPierre: खैर, मेरे कोड में एक और, अच्छी तरह से छिपा ट्रोल है। कुछ मूल्य अमान्य हैं, लेकिन ऐसा नहीं है कि किसी को भी नोटिस होगा (विशेषकर क्योंकि वे वैसे भी क्रम में हैं)। और फिर लोग एक और पेंटियम FDIV बग के बारे में शिकायत करेंगे।
कोनराड बोरोस्की

30

सी

ट्रिक्स और जादूगर इसे काम करेंगे।

#include <stdio.h>

double sqrt(double x) {
  long long i, r;
  double x2=x*0.5, y=x;
  i = *(long long*)&y;
  i = 0x5fe6eb50c7b537a9 - (i>>1);
  y = *(double*)&i;
  for(r=0 ; r<10 ; r++) y = y * (1.5 - (x2*y*y));
  return x * y;
}

int main() {
  double n;
  while(1) {
    scanf("%lf", &n);
    printf("sqrt = %.10lf\n", sqrt(n));
  }
  return 0;
}

यह तेजी से उलटा वर्गमूल है


7
मुझे पता था कि कोई ऐसा करेगा :) यह वही है जो असली जादू जैसा दिखता है
qwr

8
मैंने लगभग 1 / y की तलाश में लगभग एक मिनट बिता दिया, ताकि इसे उलटा जड़ से वास्तविक जड़ में बदल दिया जाए। रिटर्न x * y का उपयोग करने का विकल्प सही है, लेकिन स्पॉट करने के लिए कठिन है।
लेवल रिवर सेंट

1
मुझे लगता है कि 10 पुनरावृत्तियों बहुत अधिक हैं। 2-3 आमतौर पर पर्याप्त हैं।
njzk2

1
@ njzk2 वास्तव में क्वेक 3 इंजन में केवल एक पुनरावृत्ति का उपयोग किया गया था। दूसरे को अतिरिक्त नोट के साथ टिप्पणी की गई थी "इसे हटाया जा सकता है"। codemaestro.com/reviews/9
पता नहीं

29

अजगर ३

आप लोग यह सब गलत कर रहे हैं। कोई भी देख सकता है कि 20 का वर्गमूल 4.47213595499958, या .20 भी नहीं है। यह समाधान इस उद्देश्य के लिए अभिप्रेत मॉड्यूल के लिए वर्गमूल की गणना के कठिन कार्य को आगे बढ़ाता है।

इस तरह के मॉड्यूल में से एक खस्ता है, जो वर्गमूल गणित प्रदान करता है। अन्य समाधानों के विपरीत, यह वास्तव में सब कुछ ठीक से करता है। यह भी मानता है कि sqrt (-1) I है - यहाँ कोई भी समाधान हल नहीं हो सकता है।

और यहां मॉड्यूलर कोड है, जो कि अच्छे कार्यक्रमों की तरह दिखता है। फ़ंक्शन यथासंभव छोटे होने चाहिए, यदि वे नहीं हैं, तो इसका मतलब है कि आप भयानक कार्यक्रम लिखते हैं। साथ ही, प्रोग्राम में बहुत सारी टिप्पणियां होनी चाहिए।

#!/usr/bin/env python
# This is beggining of a program

# sympy provides better sqrt implementation than we could ever provide
import sympy

# We need the system to do the work
import sys

# Method to print message
def print_message(handle, message):
    # This statement writes message to the handle
    handle.write(message)

# Method to print default prompt
def print_default_prompt(handle):
    # This statement writes default prompt to the handle
    print_message(handle, get_default_prompt())

# Method to get default prompt.
def get_default_prompt():
    # Asks you to specify something.
    return format_prompt_with_thing_to_specify(get_default_prompt_format())

# Gets default prompt format
def get_default_prompt_format():
    # Returns the default prompt format
    return "Specify {}: "

# Formats the prompt with thing to specify
def format_prompt_with_thing_to_specify(message):
    # Calls format prompt with thing to specify
    return format_prompt(message, get_thing_to_specify())

# Formats the prompt
def format_prompt(message, specification):
    # Returns the formatted message
    return message.format(specification)

# Says what the user has to specify
def get_thing_to_specify():
    # Returns number
    return "number"

# Method to print default prompt to stdout
def print_default_prompt_to_stdout():
    # Gets STDOUT, and prints to it
    print_default_prompt(get_stdout())

# Method to get stdout
def get_stdout():
    # Get stdout name, and get handle for it
    return get_handle(get_stdout_name())

# Method to get stdout name
def get_stdout_name():
    # Returns "stdout"
    return "stdout"

# Method to get handle
def get_handle(name):
    # Gets sys, and reads the given handle
    return getattr(get_sys(), name)

# Method to get system
def get_sys():
    # Returns system
    return sys

# Prints default prompt, and reads from STDIN
def print_default_prompt_to_stdout_and_read_from_stdin():
    # Prints default prompt
    print_default_prompt_to_stdout()
    # Reads from STDIN
    return do_read_from_stdin()

# Reads from STDIN
def do_read_from_stdin():
    # Reads from STDIN (!)
    return do_read(get_stdin())

# Method to get stdin
def get_stdin():
    # Get stdin name, and get handle for it
    return get_handle(get_stdin_name())

# Method to get stdin name
def get_stdin_name():
    # Returns "stdin"
    return "stdin"

# Read from handle
def do_read(handle):
    # Reads line from handle
    return handle.readline()

# Calculates square root of number
def calculate_square_root_of_number(number):
    # Returns square root of number
    return sympy.sqrt(number)

# Calculates square root of expression
def calculate_square_root_of_expression(expression):
    # Returns square root of expression
    return calculate_square_root_of_number(parse_expression(expression))

# Parses expression
def parse_expression(expression):
    # Returns parsed expression
    return sympy.sympify(expression)

# Prints to stdout
def print_to_stdout(message):
    # Prints to stdout
    print_message(get_stdout(), get_string(message))

# Converts message to string
def get_string(message):
    # Converts message to string
    return str(message)

# Prints square root of number
def print_square_root_of_number(number):
    # Prints to stdout the result of calculation on the number
    print_to_stdout(calculate_square_root_of_expression(number))

# Asks for a number, and prints it.
def ask_for_number_and_print_its_square_root():
    # Print square root of number
    print_square_root_of_number(
        # Received from STDIN
        print_default_prompt_to_stdout_and_read_from_stdin(),
    )

# Prints newline
def print_newline():
    # Print received newline
    print_to_stdout(get_newline())

# Returns newline
def get_newline():
    # Return newline
    return "\n"

# Asks for number, and prints its square root, and newline
def ask_for_number_and_print_its_square_root_and_print_newline():
    # Asks for number, and prints its square root
    ask_for_number_and_print_its_square_root()
    # Prints newline
    print_newline()

# Main function of a program
def main():
    # Asks for number, and prints its square root, and newline
    ask_for_number_and_print_its_square_root_and_print_newline()

# Calls main function
main()

# This is end of program

और यहां इस कार्यक्रम का एक उदाहरण काम कर रहा है।

> python sqrt.py 
Specify number: 10 + 10
2*sqrt(5)
> python sqrt.py 
Specify number: cos(pi)
I

12
-1 पर्याप्त टिप्पणियां नहीं
एलेक्सवचन

5
@alexwlchan: अधिक टिप्पणियां जोड़ी गईं।
कोनराड बोरोस्की

2
वे वास्तव में कम, समझने में आसान, वर्णनात्मक फ़ंक्शन नाम हैं! +1! PS अधिक टिप्पणियां जोड़ी गईं।
AMK

2
-1 फ़ंक्शन का नाम काफी लंबा नहीं होना चाहिए print_format_prompt_with_thing_to_specify_get_default_prompt_format_to_getattr_get_sys_name_from_get_stdout_name_and_print_square_root_of_read_from_stdin_and_print_get_string_from_get_newline_to_getattr_get_sys_name_from_get_stdout_name
द गाईड विथ द हैट

1
@ THEGuywithTheHat: मैं पसंद करूंगा कि क्या मेरे विशाल फंक्शन के नाम क्षैतिज स्क्रॉलिंग के बिना कोड बॉक्स में फिट होंगे। भले ही यह कोड-ट्रोलिंग हो , मुझे स्क्रॉलिंग से नफरत है।
कोनराड बोरोवस्की

28

जावास्क्रिप्ट

दुर्भाग्य से, जावास्क्रिप्ट फ़ंक्शन नामों के लिए स्क्वायर रूट प्रतीक का समर्थन नहीं करता है। इसके बजाय, हम एक स्क्वायर रूट फ़ंक्शन का प्रतिनिधित्व करने के लिए कुछ अन्य यूनिकोड वर्णमाला वर्ण का उपयोग कर सकते हैं।

इस उदाहरण में मैं उपयोग करूँगा

एक बार हमारे पास उपयोग करने के लिए एक वैध प्रतीक है, तो हम एक वर्गमूल फंक्शन उत्पन्न करने के लिए Math ऑब्जेक्ट का उपयोग कर सकते हैं।

var  = (function sqrt(_generator_){ return _generator_[arguments.callee.name]; }(Math));

ᕂ(2);    // 1.4142135623730951
ᕂ(100);  // 10
ᕂ(1337); // 36.565010597564445

यह आसान है! :)

बेशक, यह सिर्फ उपयोग करने के लिए आसान होगा var ᕂ = Math.sqrt;


16
मुझे पसंद है कि आपका कोड JS कंप्रेशर्स को कैसे तोड़ता है।
कोनराड बोरोस्की

2
@xfix हाँ, अगर कुछ भी उस आत्म-निष्पादित फ़ंक्शन का नाम बदलने की कोशिश करता है, तो कोड टूट जाएगा :)
nderscore

25

जूलिया

स्पष्ट रूप से इसे करने का सबसे अच्छा तरीका है, इसके चौड़े रूट टेलर सीरीज़ का उपयोग करना:

यहाँ छवि विवरण दर्ज करें

sqroot(t)=sum([(((-1)^n)*factorial(2n))/((1-2n)*((factorial(n))^2)*(4^n))*(t-1)^n for n=0:16])

यह वास्तव में बहुत सटीक मूल्यों का उत्पादन करता है:

julia> sqroot(1.05)
1.024695076595856

julia> sqrt(1.05)  #default
1.02469507659596

julia> sqroot(0.9)
0.9486832980855244

julia> sqrt(0.9)  #default
0.9486832980505138

लेकिन अपनी अनुकृति (और एक अभिसरण श्रृंखला होने के लिए) की तरह बंद कोर्स 1 के करीब नहीं मान के लिए अपने बेकार

julia> sqroot(0)  #what?
9.659961241569848

julia> sqroot(4)  #interesting...
-8.234843085717233e7   

2
इस शक्ति श्रृंखला के अभिसरण की त्रिज्या 1 है, इसलिए यह केवल टी इन (0,2) (या त्रिज्या 1 के 1 पर केंद्रित खुली डिस्क में जटिल टी के लिए) काम करेगी। अन्य मूल्यों के लिए, आप कारक का उपयोग कर सकते हैं ...
gniourf_gniourf

आप सही हैं, मैंने केवल सादगी के लिए अभिसरण अंतराल निर्दिष्ट नहीं किया है :)
CCP

2
मेरी पसंद के लिए बहुत उपयोगी है। आप आसानी से 4 से विभाजित कर सकते हैं जब तक कि यह सीमा में नहीं है, तो परिणाम को 2. की इसी शक्ति से गुणा करें
user19713

1
^ मुझे लगता है कि यह कहना सुरक्षित है कि आपका औसत आलसी सवाल पूछने वाला इसे जैसा है वैसे ही ले जाएगा।
जो जेड।

मुझे लगता है कि आप इस तथ्य को याद कर रहे हैं कि टेलर सीरीज विस्थापित और 1 केंद्रित है, इसलिए यदि मैं a^2(n बार) से विभाजित करता हूं और a(n बार) उत्तर ( sqrt(x)~a^n*sqroot(x/a^2n)) x-> 0 (यदि a> 0) से 1 तक नहीं। (बड़ी त्रुटियां देते हुए)। इसके अलावा अगर x / a ^ 2n ~ 1 संख्याएं a!=xऔर वांछित पद पाने के nलिए एक मनमानी के xलिए बदल जाएगा (उन्हें खोजने के लिए कष्टप्रद और समय लेने वाला)।
सीसीपी

20

LaTeX

इसके लिए समाधान बहुत कठिन और बहुत जटिल है, इसलिए अपनी कॉफी लें। समस्या यह है, कि आप किस तरह की संख्या के आधार पर कोड के स्क्वररूट में काफी बदलाव चाहते हैं। मैं आपको समस्या दिखाऊंगा। कहते हैं कि 9आपका नंबर है। फिर कोड इस तरह दिखेगा:

\sqrt{9}

अब कहते हैं कि 1234321आपका नंबर है, कोड देखें:

\sqrt{1234321}

अंतिम लेकिन कम से कम यह कहने दें कि आपका नंबर क्या है 0

\sqrt{0}

एक अच्छा तरीका यह हल करने के लिए एक प्रोग्राम लिखने के लिए है Ook!या Pietजो अपना नंबर चाहता है और आउटपुट, LaTeX-sqrt-codeइसके लिए। यहाँ के लिए एक बहुत ही सरल उदाहरण है Ook!, क्योंकि यह केवल एक बाइट को पढ़ने में सक्षम है और यह जांच नहीं करता है कि यह बाइट एक कानूनी संख्या है या नहीं, लेकिन मुझे लगता है कि आप इस बिंदु पर पहुंचेंगे।

Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! 

उसी के लिए Piet:

क्या Ook में लिखे गए साधारण प्रोग्राम की तरह ही है!

यह सबसे कारगर तरीका होगा। मैं भी उपयोग करने का सुझाव दूंगा Pietक्योंकि यह हर बार कला का एक सुंदर टुकड़ा है, इसलिए सामान तेजी से उबाऊ नहीं होता है।


3
मैं इस Piet कोड को पसंद करूंगा, लेकिन यह केवल एक Brainfuck संकलक है (जो कि मैं इंटरनेट पर पा सकता हूं) Ook कोड निष्पादित कर रहा हूं।
कोनराड बोरोस्की

11
एक सेकंड रुको? यह एक एसोलंग कार्यक्रम है जो तीसरी भाषा को पार्स करने के लिए किसी अन्य भाषा के संकलक को चलाता है? ओह यार!
क्रोल्टन

Ook, Brainfuck पर सिर्फ एक प्रतीक-शब्द के लिए चमक है।
रॉस प्रेसर

20

हास्केल

जब मैंने पहली बार फ्लोटिंग-पॉइंट त्रुटियों के बारे में सुना तो मैंने कंप्यूटरों पर भरोसा करना बंद कर दिया। मेरा मतलब है, गंभीरता से, अगर Google उन्हें नियंत्रण में नहीं ला सकता है , तो कौन कर सकता है?

तो हमारा सबसे अच्छा दांव केवल पूर्णांकों को शामिल करने वाला समाधान खोजना है। सौभाग्य से यह आसान है क्योंकि हम केवल सभी नंबरों की जांच कर सकते हैं, क्योंकि प्रत्येक अंतराल [1..n] में उनमें से केवल एक परिमित राशि होती है, न कि बकवास एलेफ़ -1 वास्तविक की तरह। यहाँ हास्केल में एक नमूना कार्यान्वयन है:

import Prelude hiding (sqrt)
import Data.List

sqrt n = case findIndex (\x -> x*x >= n) [1..] of Just x -> x

एक आकर्षण की तरह काम करता है, इसे देखें:

λ> sqrt 8
2

अधिकांश अनुप्रयोगों के लिए सटीकता पर्याप्त होनी चाहिए।



2
+1.0 "क्रैप एलेफ़ -1
रियल्स

2
@ M.Mimpen Ackhhhchh: duckduckgo.com/…
AMK

1
@AMK हुह। शायद Google doubles का उपयोग कर रहा है और DDG triples का उपयोग कर रहा है ।
22

16

जावा

ऐसा करने का सबसे सटीक तरीका पुनरावृति है। सबसे पहले, लूप को integerतब तक करें जब तक आप लक्ष्य पर नहीं जाते हैं, फिर doubleएस पर स्विच करें । इस पद्धति का सटीक होने का फायदा है , अन्य "अनुमान" विधियों के विपरीत, जो आप देख सकते हैं। आप थोड़ी गति का त्याग करते हैं, लेकिन अधिकांश अनुप्रयोगों के लिए, यह वही है जो आपको चाहिए।

आप इस उत्तर को संशोधित कर सकते हैं कि आपको कितना सटीक होना चाहिए, लेकिन यह कम से कम बिलियन तक काम करना चाहिए:

static double sqrt(double in){
    if(in < 0)
        return Double.NaN; // no negative numbers!
    int whole;
    for(whole = 0;whole < Integer.MAX_VALUE; whole++)
        if(whole * whole > in)
            break;

    double root;
    for(root = whole - 1;root < whole;root += 0.000000001)
        if(root * root > in)
            return root - 0.000000001;
}

sqrt(99.9999998);मेरे लिए ऐसा करने में लगभग 3 सेकंड लगते हैं । एक बिलियन डबल्स के माध्यम से (ऊपर तक) लूपिंग में कुछ समय लगता है।


1
उपयोग करने 0.000000001में समस्या यह है कि यह गोलाई त्रुटियों के लिए प्रवण है। मैंने C ++ में अधिक सटीक समाधान बनाया है ।
जो जेड।

2
@JoeZ। हाँ, कि मेरा +1 मिला, लेकिन सरकारी काम के लिए यह काफी अच्छा है। निस्संदेह, तुम्हारा उत्तर किसी भी उत्तर के लिए NaN देता है जिसे वास्तव में एक दोहरे द्वारा प्रस्तुत नहीं किया जा सकता है, ऐसा प्रतीत होता है, इसलिए हवा में थोड़ा सा सटीक है;)
जियोबिट्स

सच। क्या मुझे वहां एप्सिलॉन का पता लगाना चाहिए?
जो Z.

3
के Math.nextUp(root)बजाय क्यों नहीं करते +0.000000001? यह अधिक समय लगेगा ... और यह सफल होने की गारंटी है।
जस्टिन

1
@Quincunx मुझे लगा कि ऐसा तरीका है जो Doubleमुझे पता नहीं चला और इसमें आश्चर्य हुआ। में देखने के लिए नहीं सोचा था Math, लेकिन यह बहुत अच्छी तरह से काम करता है। मैंने अभी तक किसी भी चीज़ पर इसे "विफल" नहीं किया है।
ज्योबिट्स

11

जावास्क्रिप्ट

इन जादू स्थिरांक का उपयोग वर्णमाला का उपयोग करके किसी संख्या के वर्गमूल की गणना करने के लिए किया जा सकता है:

function SquareRootUsingMath(num) {
  if (! (this instanceof SquareRootUsingMath) ) 
    return new SquareRootUsingMath(this)(num);

  // Magic constants for square root
  this.x = this.y = 4;
  this.x += this.x*this.y + this.x

  return num[this.x,this][this.alpha[this.y]];
}

// Alphabet magic
SquareRootUsingMath.prototype.alpha = ['cabd','gefh','kijl','omnp','sqrt','wuvx', 'yz'];

// Useful for debugging
SquareRootUsingMath.prototype.toString = function() {
  return ({}).toString.call(this).substr(this.x, this.y);
}
Object.prototype.toString = function() {
  return this.constructor+'';
}

टेस्ट:

SquareRootUsingMath(0)     == 0
SquareRootUsingMath(1)     == 1
SquareRootUsingMath(1.1)   == 1.0488088481701516
SquareRootUsingMath(2)     == 1.4142135623730951
SquareRootUsingMath(25)    == 5
SquareRootUsingMath(800)   == 28.284271247461902
SquareRootUsingMath(10000) == 100

यह बहुत अच्छी तरह से काम करने लगता है। मुझे आश्चर्य है कि क्या कोई छोटा रास्ता है?

num[this.x,this][this.alpha[this.y]] === window['Math']['sqrt']


10

जावास्क्रिप्ट

बहुत कठिन समस्या!
जावास्क्रिप्ट में इसके लिए कोई अंतर्निहित कार्य नहीं है ...
न्यूटन-राफसन सॉल्वर के लिए एक नौकरी की तरह दिखता है।

Math.sqrt = function(n) {
  if (n>=0) {
    var o = n;
    while (Math.abs(o*o-n)>1e-10) {
      o-=(o*o-n)/(2*o);
    }
    return Math.abs(o);
  } else return NaN;
}

अब आप उपयोग कर सकते हैं Math.sqrt


यह ट्रोल कैसे होता है? क्या यह तथ्य है कि यह नकारात्मक उत्तर देता है?
जो Z.

1
@JoeZ। शुरुआती लोगों के लिए एक होमवर्क के लिए न्यूटन-रफसन सॉल्वर का उपयोग करना ट्रोल है। यह अपेक्षित जवाब नहीं है, लेकिन यह काम करता है, और वह कोड को समझने के लिए कुछ समय बिताएगा।
माइकल एम।

28
-1 पर्याप्त नहीं jQuery।
पियरे अरलाउड

5
@ArlaudPierre आशा है कि आप वास्तव में एक नहीं दे सकता था ...
12


10

जावास्क्रिप्ट / ActionScript

एक्शनस्क्रिप्ट या जावास्क्रिप्ट में सीधे वर्गाकार रूट की गणना करने का कोई तरीका नहीं है , हालाँकि, वर्कअराउंड है। आप संख्या के वर्गमूल को 1/2शक्ति में बढ़ाकर प्राप्त कर सकते हैं ।

यह जावास्क्रिप्ट और एक्शनस्क्रिप्ट 2 में कैसा दिखेगा:

function sqrt(num) {
    return num ^ (1/2);
}

और यद्यपि फ़ंक्शन एक्शनस्क्रिप्ट 3 में भी काम करता है, मैं स्पष्टता और विश्वसनीयता के लिए टाइप किए गए चर और वापसी मूल्यों का उपयोग करने की सलाह दूंगा:

function sqrt(num:Number):Number {
    return num ^ (1/2);
}

ट्रॉल:

हालाँकि मैंने जो कहा था कि num^(1/2)वर्गमूल के परिणामस्वरूप गणित में सही है, ^ऑपरेटर वास्तव में जावास्क्रिप्ट और एक्शनस्क्रिप्ट में क्या करता है वह है बिटवाइज़ XOR


1
सबसे अच्छा जवाब वहाँ। मुझे 'पॉवर' का संचालक पसंद आया
सिल्विया बुर्सा

ऐसा उत्तर C या Python2 में अर्थपूर्ण होगा, जहाँ इसके अतिरिक्त 1/2 == 0
अलंड

9

पायथन 2.7

n = input("Enter a number which you want to make a square root: ")
print "\u221A{} = {}".format(n**2, n)

व्याख्या

का हवाला देते हुए

विकिपीडिया - वर्गमूल

गणित में, संख्या का एक वर्गमूल एक संख्या y होता है जैसे कि y 2 = a

दूसरे शब्दों में प्रत्येक संख्या किसी अन्य संख्या का वर्गमूल है।

ध्यान दें

मेरे लिए यह सवाल एक प्रसिद्ध पहेली के समान है कि किसी पंक्ति को बिना रगड़े या काटे कैसे छोटा किया जाए


9

PHP (और अन्य):

चूंकि जिस तरीके से प्रश्न का वर्णन किया गया था, उसका मतलब यह नहीं था कि हमें वास्तव में इसकी गणना करने की आवश्यकता है, यहां मेरा समाधान है:

<?
foreach(array('_POST','_GET','_COOKIE','_SESSION')as$v)
if(${$v}['l']||${$v}['n'])
{
    $l=strtolower(${$v}['l']);
    $n=${$v}['n'];
}

$a=array(
    'php'=>($s='sqrt').'(%d)',
    'js'=>'Math.sqrt(%d)',
    'javascript'=>'Math.sqrt(%d)',
    ''=>"{$s($n)}",
    'java'=>'java.lang.Math.sqrt(%d)',
    'vb'=>'Sqr(%d)',
    'asp'=>'Sqr(%d)',
    'vbscript'=>'Sqr(%d)',
    '.net'=>'Math.Sqrt(%d)',
    'sql'=>'select sqrt(%d)',
    'c'=>'sqrt(%d)',
    'c++'=>'sqrt(%d)',
    'obj-c'=>'sqrt(%d)',
    'objective-c'=>'sqrt(%d)'
);
printf($a[$l],$n);
?>

यह कई भाषाओं में वर्गमूल की सही गणना करने का एक तरीका प्रदान करता है।

भाषाओं की सूची का विस्तार किया जा सकता है।

मान POST, GET, एक कुकी पर भेजा जा सकता है या सत्र में भी सहेजा जा सकता है।

आप केवल संख्या प्रदान करते हैं, यह उलझन और गणना परिणाम यह हुआ कि (लगभग) के लिए मान्य है देता हो जाता है हर कभी भाषा!


8

सी

यह अन्य सभी 27 उत्तरों से बेहतर है क्योंकि वे सभी गलत हैं। यह सही है, वे केवल एक ही उत्तर देते हैं जब होना चाहिए 2. यह एक भी जवाब देने की कोशिश नहीं करता है अगर यह गलत होने जा रहा है, तो यह बस और गोल हो जाता है।

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define usage "message"
#define the number

char *squareroot(int number);

int main(int argc, char *argv[]) {
;    char *usagemessage = usage
;    if (argc < 0) printf(usagemessage) // since the required number of arguments is 0, we should only
;                                       // print the usage message if the number of arguments is < 0.
;
;    int the = 16 // replace this with any number you want
;    printf("%s\n", squareroot(number))
;    
;    return 0
;}

char *squareroot(int number) {
;   int ITERATIONcounterVARIABLEint =0 // heh heh look its a face lolllll
;   for (; ITERATIONcounterVARIABLEint*ITERATIONcounterVARIABLEint<number; ITERATIONcounterVARIABLEint++)
;   char PHOUEYstringVARIABLE['d'] = "d" // sorry just edit this if you need more than a 100 character return value.
;   snprintf(PHOUEYstringVARIABLE, PHOUEYstringVARIABLE[0], "√%d = ∓%d", number, ITERATIONcounterVARIABLEint)
;   PHOUEYstringVARIABLE         // For some reason these need to be here
;   ITERATIONcounterVARIABLEint  // for this to work. I don't know why.
;   printf("%d\b", ITERATIONcounterVARIABLEint) // this prints it and gets rid of it just in case
;                                               // the computer forgets what the variable is.
;   return PHOUEYstringVARIABLE;
;}

कोड-trolling:

  • बहुत अजीब नामकरण
  • forपाश दुरुपयोग
  • लाइन की शुरुआत में अर्धविराम लगाना, जहाँ वे होने वाले थे
  • #defineकरने के लिए उपयोग में वृद्धि कमी पठनीयता
  • बेकार उपयोग संदेश
  • प्लस या माइनस के बजाय माइनस या प्लस
  • एक स्ट्रिंग देता है
  • एक स्थानीय चर देता है
  • 4 संकलक चेतावनियाँ (2 अप्रयुक्त अभिव्यक्ति परिणाम, स्थानीय वैरिएबल एड्रेस लौटाते हैं, न कि प्रिंटफ में एक स्ट्रिंग शाब्दिक)
  • केवल गैर-सटीक पूर्ण वर्ग के लिए काम करता है <100 (उर्फ 0, 4, 9, 16, 25, 36, 49, 64, और 81) क्योंकि उत्तर केवल 1 अंक का हो सकता है (जवाब के बाद एक बैकस्पेस को हिट करता है, बिल्कुल बिना किसी कारण के लिए। , इसलिए उदाहरण के लिए √1024रिटर्न 3√1024 = ∓32, जो सिर्फ सादा गलत है)

#define the number... अच्छा! मुझे विशेष रूप से उपयोग संदेश दिखाने की शर्त के बारे में आपका तर्क पसंद आया।
कंपूशिप

-1 क्योंकि उपयोग संदेश प्रदर्शित किया जाएगा यदि मैं 2 बिलियन से अधिक कमांड-लाइन पैरामीटर दर्ज करता हूं। या शायद उनमें से केवल 32768 यदि मैं इसे किसी 16-बिट मशीन पर पीडीपी -11 की तरह चला रहा हूं। (वहाँ, वह मुझे तारीखें देता है)। न तो वास्तव में संभव है क्योंकि या तो मामले में वास्तुकला उस कई मापदंडों में प्रवेश करने पर रोक लगाएगा जब तक कि मैंने कॉल को मुख्य नहीं किया और बस आपसे झूठ बोला। जो असंभव नहीं है: मैं ऐसा कर सकता हूं। दरअसल, मैं आपसे पहले ही झूठ बोल सकता था।
क्लिकरिक

8

सी ++

http://en.wikipedia.org/wiki/Fast_inverse_square_root और @ स्नैक के जवाब पर आधारित ।

एक्स ^ (- 0.5) को एक्स ^ (0.5) में बदलने के रास्ते पर छोड़ने के बजाय मैंने इसे सीधे करने के लिए एल्गोरिदम को संशोधित किया।

कलन विधि

एक पूर्णांक संख्या (इस मामले में एक डबल) एक पूर्णांक (इस मामले में लंबे समय तक) कास्ट करें।

फ़्लोटिंग पॉइंट नंबर के पहले कुछ बिट्स एक्सपोनेंट हैं: अर्थात, संख्या को 2 ^ AAA * 1.BBBBBBB के रूप में संग्रहीत किया जाता है। तो एक अधिकार है और इस घातांक को आधा किया जाता है।

मूल उलटा वर्गमूल में, यह संख्या पारस्परिक को देने के लिए एक निरंतर से घटा दी गई थी। मैं इसे निरंतर में जोड़ता हूं, क्योंकि मुझे सीधे वर्गमूल चाहिए। स्थिरांक का मान एक उत्तर देने के लिए चुना जाता है जो वांछित मूल्य के लिए सबसे अच्छा सन्निकटन है।

फ़्लोटिंग पॉइंट पर वापस संख्या डालें।

वैकल्पिक रूप से, न्यूटन की विधि के एक या दो पुनरावृत्तियों का उपयोग परिणाम को बेहतर बनाने के लिए किया जा सकता है, लेकिन मैं परेशान नहीं हुआ, क्योंकि मैं यह देखना चाहता था कि मैं बिना इसके कितना करीब पहुंच सकता हूं।

स्थिरांक बहुत रहस्यमय दिखते थे, लेकिन पहले कुछ अंकों से परे, मूल्य महत्वपूर्ण नहीं हैं। मुझे परीक्षण और त्रुटि से निरंतर मिला। जैसे ही मुझे एक मूल्य मिला जो कभी कम करके आंका गया और कभी कम आंका गया।

#include "stdafx.h"

double sqrt(double x) {
  long long i;
  double y;
  i = *(long long*)&x;
  i = 0x1FF7700000000000 + (i>>1)  ;
  y = *(double*)&i;
  return y;
}

int main() {
  double n;
  while(1) {
    scanf_s("%lf", &n);
    printf("sqrt = %.10lf\n\n", sqrt(n));
  }
  return 0;
}

परिणाम

कास्टिंग केवल आवश्यक है क्योंकि सी आपको एक फ्लोट पर बिटशिफ्ट ऑपरेशन करने की अनुमति नहीं देगा, इसलिए केवल वास्तविक संचालन बिटशिफ्ट और जोड़ हैं। मैंने परिणाम में सुधार करने के लिए न्यूटन की विधि का एक भी पुनरावृत्ति का उपयोग नहीं किया है, इसलिए सटीक उल्लेखनीय है। ओपी के शिक्षक उस पद्धति की गति से प्रभावित होंगे जो (स्पष्ट रूप से) कई उद्देश्यों के लिए सटीक है!

यहाँ छवि विवरण दर्ज करें


सुपर सटीक फ्लोटिंग पॉइंट
कोल जॉनसन

2
@ColeJohnson आपके पास एक सटीक आउटपुट नहीं हो सकता है, यह कंप्यूटर की दुनिया का एक बाधा है (हमारे पास अनंत स्मृति नहीं हो सकती है)। तो मैं कहूंगा कि यह लगभग उतना ही सटीक है जितना इसे मिलता है।
पियरे अरलाउड

खैर डबल स्पष्ट रूप से ओवरकिल है, और ट्रोल का हिस्सा है। मुझे इस विधि से लगभग +/- 30% मिलने की उम्मीद थी। अलग-अलग ट्रोल करना, मुझे आश्चर्य है कि यह कितना सही है। इसका कारण यह है: 4 = 2 ^ 10* 1। 000, sqrt (4) = 2 ^ 01* 1। 000= 2, sqrt (2) = 2 ^00 * 1। 100= 1.5। तो 1प्रतिपादक से हटाई गई बिट 1.5 का मंटिसा देती है, जो कि sqrt (2) के सही मूल्य से दूर नहीं है, जो लगभग 1.4 है। लेकिन यह पता नहीं है कि यह लगातार 3% से बेहतर सटीकता के साथ कैसे उत्तर देता है।
लेवल रिवर सेंट

7

नोट: यह केवल मेरे कंप्यूटर पर काम करता है, क्योंकि अंतर्निहित हार्डवेयर बाइनरी में संख्याओं को संग्रहीत नहीं करता है, लेकिन बेस ई में, जैसे कि जो 10ई का 100प्रतिनिधित्व करता है , वह ई ई का प्रतिनिधित्व करता है , और इसी तरह। इस तरह, आप बाइनरी मशीन पर क्या कर सकते हैं, बाएं प्रदर्शन x => e x के लिए एक बिट-शिफ्ट कहते हैं, और बाइनरी मशीन पर आप जो कुछ भी कर सकते हैं उसे दाईं ओर x => ln x कहते हैं। स्पष्ट रूप से, बहुत सीमित, बाइनरी-केंद्रित इंटरनेट माध्यमों पर इसकी अंतर्निहित संख्याओं का प्रतिनिधित्व करना मुश्किल है, लेकिन मैं अपना सर्वश्रेष्ठ करता हूं।

E का वाक्य-विन्यास उल्लेखनीय रूप से C / C ++ के समान है, इसलिए इसे अधिकांश लोगों को समझना आसान होना चाहिए।

double sqrt(double n)
{
    return ((n >> 1) / 2) << 1;
}

7
क्या यह वास्तविक भाषा है?
जो Z.

आप किस तरह का कंप्यूटर इस्तेमाल कर रहे हैं?
कोल जॉनसन

@ClickRick ई प्रोग्रामिंग सिंटैक्स और कमांड स्कीम के लिए कोई लिंक प्रदान कर सकते हैं?
वैलेस्ट

6
क्षमा करें, लेकिन बेस ई में भी, n >> 1जैसा नहीं है log(n)
jwg

2
भाषा का अनुमान लगाना काफी आसान है। सहायक हार्डवेयर का अस्तित्व वह हिस्सा है जिस पर आपको सवाल करना चाहिए।
ClickRick

6

जावास्क्रिप्ट / HTML / CSS

मैंने jQuery और id का उपयोग करने के बारे में सोचा, और अधिक ट्रोल किया, लेकिन मुझे वेनिला js पसंद हैं।

परिणाम पूरी तरह से सटीक नहीं है, लेकिन यह काम करता है!

function squareRoot(n) {
    // Creating a div with width = n
    var div = document.createElement("div");
    div.style.width = n + "px";
    div.style.height = "0px";

    // Rotating the div by 45 degrees
    div.style.transform = "rotate(45deg)";
    div.style.mozTransform = "rotate(45deg)";
    div.style.webkitTransform = "rotate(45deg)";
    div.style.msTransform = "rotate(45deg)";
    div.style.oTransform = "rotate(45deg)";

    // Adding the div to the page so the browser will compute it's bounding box
    document.body.appendChild(div);

    // Getting the width of it's box
    var divSize = div.getBoundingClientRect();
    var divWidth = divSize.width;

    // Removing it from the page
    document.body.removeChild(div);

    // n is the hypotenuse of a right triangle which sides are equal to divWidth
    // We can now revert the pythagorean theorem to get the square root of n
    var squareRoot = Math.pow(divWidth * divWidth + divWidth * divWidth, 0.25); // Wait, what ?!?

    return squareRoot;
}

6

जियोजेब्रा

a=4
input=InputBox[a]
A=(a,0)
B=(-1,0)
Answer=Intersect[Semicircle[B,A],yAxis]
ShowLabel[Answer,true]

समन्वय अक्ष से अपने उत्तर के मूल्य को पढ़ें।


इसे यहाँ ऑनलाइन आज़माएँ (जावा की आवश्यकता है), या नीचे कुछ स्क्रीनशॉट का आनंद लें:

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें


6

100% शुद्ध (पूर्णांक आधारित)

आस्की-कला प्रस्तुति के साथ:

यह सही रूट स्क्वायर sourceकमांड का उपयोग करके बैश में खट्टा होना है

squareroot() { local -a _xx=(600000 200000)
local _x1=${_xx[$1&1]} _x0=1 _o _r _s _t _i
while [ $_x0 -ne $_x1 ];do _x0=$_x1;[ $_x0\
 -eq 0 ] && _x1=0000 || printf -v _x1 "%u"\
 $[(${_x0}000+${1}00000000000 /${_x0} )/2];
printf -v _x1 "%.0f" ${_x1:0:${#_x1}-3}.${\
_x1:${#_x1}-3};done;_x1=0000$_x1;printf -v\
 _r "%.0f" ${_x1:0:${#_x1}-4}.${_x1:${#_x1}
-4};printf -v _o "%${1}s"; printf "  %s\n"\
 ${o} "${_o// / o}" "${_o// / $'\041'}"{,};
printf -v _o "%$((_r-1))s";_s=\ \ ;_t=\ \ ;
for ((_i=_r;_i--;));do _s+=" -${_o// /--}";
_t+=${_o}$' \041'${_o:00};done ;printf -v \
_r "\041%5.2f!" ${_x1:0:${#_x1}-4}.${_x1:$\
{#_x1}-4};printf "%s\n%s\n%s\n" "$_s" "$_t\
" "$_t" "   ${_o}${_o// /${_o// /--}--}-" \
"$_o${_o// /${_o// / } }"{$'   !'{,},+----\
-+,$'!     !',"${_r}",$'!     !',+-----+};}

पुराना (यह संस्करण बस किसी भी कंसोल टर्मिनल में चिपकाया जा सकता है)

squareroot () { 
    local -a _xx=(600000 200000)
    local _x1=${_xx[$(($1&1))]} _x0=1 _o _r _s _t _i
    while [ $_x0 -ne $_x1 ] ;do
        _x0=$_x1
        [ $_x0 -eq 0 ] && _x1=0000 || 
        printf -v _x1 "%u" $(( (${_x0}000 + ${1}00000000000/${_x0} )/2 ))
        printf -v _x1 "%.0f" ${_x1:0:${#_x1}-3}.${_x1:${#_x1}-3}
    done
    _x1=0000$_x1
    printf -v _r "%.0f" ${_x1:0:${#_x1}-4}.${_x1:${#_x1}-4}
    printf -v _o "%${1}s" ""
    printf "  %s\n" "${_o// / o}" "${_o// / $'\041'}"{,}
    printf -v _o "%$[_r-1]s" ""
    _s=\ \ 
    _t=\ \ 
    for ((_i=_r; _i--; 1)) ;do
        _s+=" -${_o// /--}";
        _t+=${_o}$' \041'${_o};
    done
    printf -v _r "\041%5.2f\041" ${_x1:0:${#_x1}-4}.${_x1:${#_x1}-4};
    printf "%s\n%s\n%s\n" "$_s" "$_t" "$_t" "   ${_o}${_o// /${_o// /--}--}-" \
        "$_o${_o// /${_o// / } }"{$'   \041'{,},+-----+,$'\041     \041',"${_r:0\
          }",$'\041     \041',+-----+}
}

जैसे काम करेंगे:

squareroot 16
   o o o o o o o o o o o o o o o o
   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
   ------- ------- ------- -------
      !       !       !       !   
      !       !       !       !   
      -------------------------
                  !
                  !
               +-----+
               !     !
               ! 4.00!
               !     !
               +-----+

squareroot 32
   o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
   ----------- ----------- ----------- ----------- ----------- -----------
        !           !           !           !           !           !     
        !           !           !           !           !           !     
        -------------------------------------------------------------
                                      !
                                      !
                                   +-----+
                                   !     !
                                   ! 5.66!
                                   !     !
                                   +-----+

कृपया ध्यान दें: जड़ वर्ग है !!


4

जावा

धन्यवाद, jg में pi के n अंक उत्पन्न करने पर कोड के लिए ggmx के लिए

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import static java.lang.Math.sqrt;

public class myClass {

    private static final BigDecimal TWO = new BigDecimal("2");
    private static final BigDecimal FOUR = new BigDecimal("4");
    private static final BigDecimal FIVE = new BigDecimal("5");
    private static final BigDecimal TWO_THIRTY_NINE = new BigDecimal("239");

    public static BigDecimal pi(int numDigits) {

        int calcDigits = numDigits + 10;

        return FOUR.multiply((FOUR.multiply(arccot(FIVE, calcDigits)))
                .subtract(arccot(TWO_THIRTY_NINE, calcDigits)))
                .setScale(numDigits, RoundingMode.DOWN);
    }

    private static BigDecimal arccot(BigDecimal x, int numDigits) {

        BigDecimal unity = BigDecimal.ONE.setScale(numDigits,
                RoundingMode.DOWN);
        BigDecimal sum = unity.divide(x, RoundingMode.DOWN);
        BigDecimal xpower = new BigDecimal(sum.toString());
        BigDecimal term = null;

        boolean add = false;

        for (BigDecimal n = new BigDecimal("3"); term == null ||
                term.compareTo(BigDecimal.ZERO) != 0; n = n.add(TWO)) {

            xpower = xpower.divide(x.pow(2), RoundingMode.DOWN);
            term = xpower.divide(n, RoundingMode.DOWN);
            sum = add ? sum.add(term) : sum.subtract(term);
            add = !add;
        }
        return sum;
    }

    public static void main(String[] args) throws Exception {

        int sqrtThis = 3;
        int expectedPercision = 4;

        int intgerAnswer = (int) sqrt(sqrtThis);

        int cantThinkOfVarName = expectedPercision - String.valueOf(intgerAnswer).length();

        boolean done = false;
        int piPrecision = 10000 * expectedPercision;

        Double bestMatch = -1.0;

        while (done == false) {
            BigDecimal PI = pi(piPrecision);
            String piString = PI.toString();

            Pattern p = Pattern.compile(intgerAnswer + "[0-9]{" + cantThinkOfVarName + "}");
            Matcher m = p.matcher(piString);

            Double offset = sqrtThis + 1.0;

            while (m.find()) {
                Double d = Double.parseDouble(m.group(0));
                d = d / Math.pow(10, cantThinkOfVarName);

                if ((int) (d * d) == sqrtThis ||(int) (d * d) == sqrtThis + 1 ) {
                    done = true;

                    Double newOffSet = Math.abs(d * d - sqrtThis);
                    if (newOffSet < offset) {
                        offset = newOffSet;
                        bestMatch = d;
                    }
                }
            }
            piPrecision = piPrecision + piPrecision;
        }

        System.out.println(bestMatch);
    }
}

इनपुट लागू करने का मन नहीं था। कोड परिवर्तन का परीक्षण करने के sqrtThisलिए और expectedPercision

यहाँ कोड कैसे काम करता है। सबसे पहले, पूर्णांक के लिए sqrt रूट प्राप्त करना तुच्छ है इसलिए मुझे इसे लागू करने का मन नहीं था और इसके बजाय sqrt fcn में निर्मित javas का उपयोग किया गया था। हालांकि बाकी कोड 100% वैध है।

मूल विचार, चूँकि pi एक अनंत लंबा दोहराव वाला दशमलव संख्या है, इसलिए इसके भीतर सभी संख्या क्रम होने चाहिए (पढ़ें संपादित करें)। वहाँ आपका जवाब पाई के अंदर है !! जैसे कि हम सिर्फ जवाब देने के लिए पीआई पर रीगेक्स सर्च लागू कर सकते हैं। यदि हम एक अच्छा उत्तर नहीं खोज पा रहे हैं तो हम पाई के आकार को दोगुना कर देंगे जिस पर हम खोज कर रहे हैं!

यह वास्तव में आसान है, वास्तव में कोई भी यह कह सकता है कि यह पाई की तरह आसान है :)

संपादित करें
पाई को इसके भीतर परिमित संख्याओं के प्रत्येक अनुक्रम को साबित करने के लिए सिद्ध नहीं किया गया है। तथ्य यह है कि पीआई अनंत है और गैर-दोहराव इस तरह के बयान के लिए पर्याप्त सबूत नहीं है जैसा कि एक्सेलियन द्वारा सिद्ध किया गया है। हालांकि कई गणितज्ञों का मानना ​​है कि पाई में परिमित संख्याओं का हर क्रम होता है।


मैं यह नोट करना चाहता हूं कि अनंत और गैर-दोहराव होने से हर अनुक्रम एक संख्या में प्रकट नहीं होता है। एक ऐसी संख्या का निर्माण करना बहुत आसान है, जो अनंत और दोहराव वाली हो, लेकिन इसमें हर संभव क्रम नहीं है, जैसे कि 0.1011001110001111 ... मुझे पता है कि यह नाइटपिक है, लेकिन लोग अक्सर इस तर्क का गलत तरीके से उपयोग करते हैं (संभवत: पीआई हर संभव कोशिश करता है। अनुक्रम हालांकि, हम सिर्फ यकीन के लिए नहीं जानते हैं)
Exelian

@ एक्सेलियन ने आपकी टिप्पणी के अनुसार एक निर्धारण किया, आपकी टिप्पणी और बैकअप का एक लिंक प्रदान किया, यही कारण है कि मेरा समाधान अभी भी पर्याप्त है।
सहार राबिनोविज़

3

JQuery

यह सबसे सटीक है (बोनस: अक्षरों के लिए भी काम करता है!)

Please enter the number : 
<script>
$("#b").submit(function() 
{

var a = $("#a").val();
a = "&radic;" +a ;
document.write(a);  
});
</script>

यहाँ एक बेला है


3
चुनौती लेना भी सचमुच बहुत मज़ेदार नहीं है। हालांकि मुझे नहीं लगता कि document.writeयह पर्याप्त है।
जॉन ड्वोरक

2
@JDDvorak यह एक कोड-ट्रोलिंग है, इस तरह के एकांत यहाँ मान्य हैं।
मम्मड़

3
@Mdd: फिर भी, हम आपसे यहाँ रचनात्मक होने की उम्मीद करते हैं। सब लोग पहले से ही ऐसा करते थे, कुछ और करते हैं। आप इस तरह से बहुत ज्यादा नहीं उठेंगे।
कोनराड बोरोवस्की

1
@ JanDvorak / xfix: यदि समस्या यह है कि उत्तर में गुणवत्ता कम है, जबकि न्यूनतम मानदंड पूरा करते हैं, तो क्या इसका समाधान नहीं है कि केवल उत्तर को स्कोर तक नीचे जाने दें? (चूँकि आपके लिंक के अनुसार यह पहले से ही एक क्षमा निष्कर्ष है।)
एंड्रयू कॉन्स

1
@JDDvorak: अच्छी बात है। यह देखते हुए, स्पष्टीकरण के लिए धन्यवाद!
एंड्रयू Coonce

3

सी ++

यह अंततः आपको एक वर्गमूल मिलेगा।

#include <iostream>
#include <float.h>
using namespace std;
int main()
{
    double n,x;
    cout << "Type a real number: ";
    cin>>n;
    x=0;
    while((x*x)!=n)
    {
        x+=DBL_EPSILON;
    }
    cout << x << endl;
    return 0;
}

मैंने प्रश्न को बेहतर ढंग से दर्शाने के लिए कोड को सही किया। आपके सुझावों के लिए धन्यवाद ... कोड अपडेट किया गया है।


चूंकि आप मशीन एप्सिलॉन द्वारा पहले से ही सीमित हैं, इसलिए उपयोग क्यों नहीं करते x+=1e-16?
काइल कानोस

1
@KyleKanos या अधिक सही ढंग से, DBL_EPSILON
कोल जॉनसन

3

अजगर

यह समाधान:

  1. गैर नियतात्मक है और अनुमानित उत्तर देता है
  2. O (N) है और निम्न N के लिए भी काफी धीमा है
  3. एक अस्पष्ट गणितीय संबंध पर निर्भर करता है

स्पॉइलर:

सम एन स्वतंत्र वर्दी [-५, .५] यादृच्छिक चर। निरपेक्ष मूल्यों का मतलब लेकर मानक विचलन का अनुमान लगाएं। जैसा कि होता है, मानक विचलन N -> \ infty के रूप में sqrt (N) के समानुपाती होता है। 139 और 2.71828 केवल पैमाने के कारक हैं जो सटीकता को नियंत्रित करते हैं और उन्हें रहस्यमय दिखने के लिए चुना गया था।

कोड:

import math
import random
import sys

def oo(q, j):
    for k in range(j):
        t = -q/2.
        for n in range(q):
            t += random.random()
        yield t

if __name__ == "__main__":
    p = 139 # must be prime
    e = math.exp(1) # a very natural number
    for a in sys.argv[1:]:
        s = int(a)
        m = 0
        for z in oo(p*s, p):
            m += abs(z)
        m /= p
        print("trollsqrt={}, real={}".format(m/e, math.sqrt(s)))

3

सी ++

आपका प्रश्न संकलन नहीं है क्योंकि आप एक डाल दिया है! अतं मै। C ++ पसंद नहीं है!
यहाँ संकलक के लिए सही प्रश्न है:

Hi guys, for my class I need to make a number square root but it doesnt work !!HELLPP

ओह .. और फ़ाइल बनाओ।

CXX_FLAGS=-std=c++11 -include 26317.def 
LD_FLAGS=-lstdc++ -lm

all: 26317.cpp
  gcc -include math.h -include iostream  $(CXX_FLAGS) $(LD_FLAGS) $^  -o sqrt

और 26317.def। यह आपके कंपाइलर में पहले से मौजूद होना चाहिए

#define Hi int
#define guys main(int
#define a arg
#define need ;
#define doesnt std::endl;
#define work return
#define number ;
#define HELLPP 0;??>
#define it <<
#define my ??<
#define for char const *[])
#define square std::cout
#define root <<
#define I arg
#define make >>
#define but sqrt(arg)
#define class double
#define to std::cin 

हां, कोई सही प्रीप्रोसेस उत्तर को आउटपुट करने के लिए -ई का उपयोग कर सकता है, लेकिन यदि आप जानते हैं-तो आप यह भी जानते हैं कि स्क्वैरूट कैसे करें। : पी यहाँ कुछ पूर्वप्रक्रमित है। बहुत खराब न्यूनतम समाधान, कोई बाध्य चेक नहीं, कोई संकेत नहीं। TIL जो ट्रिग्राफ प्रीप्रोसेस्ड है।

# 1 "26317.cpp"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "./26317.def" 1
# 1 "<command-line>" 2
# 1 "26317.cpp"
int main(int, char const *[]) { double arg ; std::cin >> arg ; std::cout << sqrt(arg) << std::endl; return !!0;}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.