चलिए बील के $ 1,000,000 लेते हैं


17

यदि आप इसे प्रमाणित / अस्वीकृत करते हैं, तो Beal's Conjecture के पास एक मिलियन डॉलर का पुरस्कार है।

इसमें कहा गया है कि यदि A ^ x + B ^ y = C ^ zA, B, C, x, y और z, x, y, z> 2 के साथ धनात्मक पूर्णांक हैं, तो A, B, और C में एक सामान्य अभाज्य गुणक है।

चुनौती एक ऐसे कार्यक्रम को लिखना है जो इसे नापसंद करने के लिए एक काउंटर उदाहरण की खोज करे!

नियम

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

टिप्पणियाँ

  • यह एक लोकप्रियता प्रतियोगिता है, रचनात्मक रहें!
  • गति आवश्यक नहीं है, लेकिन यह और अधिक दिलचस्प बना देता है। अनुकूलन!
  • मुझे सबसे छोटा कोड देखने में भी दिलचस्पी है। आपको मुझसे +1 मिलेगा!
  • मैं एक सुपर कंप्यूटर पर जीतने का कार्यक्रम चलाऊंगा जिस तक मेरी पहुंच है!
  • यह अनुमान सही माना जाता है, लेकिन इसका मतलब यह नहीं है कि हम कोशिश नहीं कर सकते हैं!
  • Google के पीटर नॉरविग ने भी इस समस्या का प्रयास किया है। आप उनके पृष्ठ का मार्गदर्शन के रूप में उपयोग कर सकते हैं । उनके पास एक छोटा पायथन कार्यक्रम है जिसे आप एक उदाहरण के रूप में उपयोग कर सकते हैं।
  • कुछ अन्य लड़के (जो Google पर काम करने के लिए भी होते हैं) नॉरविग के दृष्टिकोण पर बहुत सुधार किया है, उनका पृष्ठ (स्रोत कोड के साथ) यहां पाया जा सकता है
  • दो साल पहले इससे संबंधित मेरा SO प्रश्न भी मददगार हो सकता है: किसी दिए गए रेंज में सभी ए ^ x को फिन करें

1
सुपर कंप्यूटर? अब यह शांत है। नकदी को विभाजित करने का कोई मौका?
atı

@Synthetica इस अनुमान को पहले ही बहुत, बहुत, बहुत बड़ी संख्याओं के साथ परीक्षण किया जा चुका है, इसलिए यह ज्यादातर मौज-मस्ती के लिए है। लेकिन निश्चित रूप से हम नकदी को विभाजित कर सकते हैं :)
ऑस्टिन हेनली

2
"इसे या तो हमेशा के लिए जारी रखना चाहिए या एक सीमित ऊपरी सीमा (चाहे कितना भी बड़ा हो) की अनुमति देनी चाहिए।" ... क्या विकल्प के विपरीत?
अंडरग्राउंडोरेल

@undergroundmonorail केवल छोटी संख्या के लिए काम कर रहा है।
ऑस्टिन हेनले

2
छोटी संख्या एक ऊपरी ऊपरी सीमा है।
अंडरग्राउंडोरेल

जवाबों:


4

मैं देशभक्ति से लजा रहा हूं (सजा का इरादा), लेकिन क्यों नहीं ... नियमों को पूरा करने के लिए लगता है।

हास्केल, 204

import Control.Monad
import Control.Monad.Omega
main=print.filter(\[(a,x),(b,y),(c,z)] 
 ->and$(a^x+b^y==c^z):zipWith(((>1).).gcd)[a,b,c][b,c,a])
 .runOmega$mapM(\_->liftM2(,)(each[1..])$each[3..])"123"

यह 1 सभी संयोजनों को प्रिंट करता है जो काउंटरएक्सप्लांट संपत्ति को पूरा करते हैं। मैं इस्तेमाल किया नियंत्रण इकाई-ओमेगा पैकेज ℕ diagonalising के लिए 6 ... माना जा सकता है पुस्तकालय-धोखाधड़ी। लेकिन यह देखते हुए कि कोई बाद में एक एपीएल उत्तर पोस्ट करेगा जहां यह सब सामान भाषा में बनाया गया है (या यह नहीं है?), मैं इसके बारे में बहुत अधिक नहीं देता ...

बेशक, कार्यक्रम बहुत धीमी गति से है (वास्तव में थकावट, और डेटा संरचना के रूप में लिंक्ड-लिस्ट) वास्तव में एक प्रतिरूप की उपज की उम्मीद है, लेकिन हास्केल वास्तव में सभ्य प्रदर्शन प्राप्त कर सकते हैं।


1 के बाद से यह एक पंक्ति में सूची प्रारूप में tuples, यानी प्रिंट, आप स्विच करने के लिए अपने टर्मिनल के बंद बफरिंग की जरूरत है या आप नहीं देख सकेंगे जब एक परिणाम में आता है। इसके अलावा, आप बदल सकते हैं printके साथ mapM_ printताकि आप प्रत्येक परिणाम के बाद एक नई पंक्ति मिलता है, एक लाइन बफर टर्मिनल निस्तब्धता।

प्रोग्राम का परीक्षण करने के लिए, इसमें बदलाव each[3..]करें each[2..], फिर आपको परिणाम के रूप में सभी गैर-कोप्राइम पाइथागोरस ट्यूपल्स मिलेंगे।


2

सी #, नो लूप्स

ठीक है, मैंने उन लिंक के एक जोड़े को स्किम किया, लेकिन सच कहूं तो वे थोड़े उबाऊ थे। मुझे हैश टेबल्स और व्हाट्सएप के साथ नरक से इसके अनुकूलन में कोई दिलचस्पी नहीं है। मुझे क्यों चाहिए? आपको एक गॉडडैम सुपर कंप्यूटर मिला है!

नरक, मैं भी छोरों के साथ परेशान नहीं करना चाहता! यह समाधान नो-लूप नियम का पालन करेगा

कृपया ध्यान दें कि मैं जिस कोड के बारे में लिखने जा रहा हूं वह अच्छा कोड नहीं है, या जिस तरह का कोड मैं वास्तविक जीवन में लिखूंगा (यदि कोई संभावित नियोक्ता इसे पढ़ने के लिए होता है)। यह कोड संक्षिप्तता और एक कथा में काम करने की क्षमता पर जोर देता है, और उचित सम्मेलनों और अनुष्ठानों और छोरों और इतने पर deemphasises।

यह दिखाने के लिए कि मैं किस बारे में बात कर रहा हूं, हम समीकरण के ऑपरेंड को संग्रहीत करने के लिए सार्वजनिक क्षेत्रों के साथ एक चौंकाने वाली कक्षा से शुरू करेंगे:

class BealOperands
{
    public BigInteger A, B, C, x, y, z;
}

ठीक है, हम शायद सबसे कठिन चुनौती है। हमें उन ऑपरेंड के हर संयोजन के माध्यम से अनुमति देने का एक तरीका निकालने की जरूरत है। प्रत्येक क्रमपरिवर्तन की जाँच करने की तुलना में निस्संदेह इसे और अधिक कुशलता से करने के तरीके हैं, लेकिन मुझे उन्हें समझकर परेशान नहीं किया जा सकता है। और मुझे क्यों करना चाहिए? हमें एक गॉडडैम सुपर कंप्यूटर मिला है!

यहाँ मैं जिस एल्गोरिथ्म के साथ आया हूं। यह अविश्वसनीय रूप से अक्षम है, और बार-बार एक ही ऑपरेंड पर चला जाता है, लेकिन कौन परवाह करता है? सुपर कंप्यूटर!

  • एक आधार -2 नंबर के रूप में छह ऑपरेंड्स का इलाज करें, और हर संयोजन के माध्यम से अनुमति दें।
  • एक आधार -3 नंबर के रूप में छह ऑपरेंड्स का इलाज करें, और हर संयोजन के माध्यम से अनुमति दें।
  • एक आधार -4 नंबर के रूप में छह ऑपरेंड्स का इलाज करें, और हर संयोजन के माध्यम से अनुमति दें।
  • (...)

बिना छोरों के यह सब कैसे करें? आसान! बस लागू करें IEnumerableऔर IEnumeratorक्रमपरिवर्तन से बाहर पंप करने के लिए जुड़े । बाद में, हम इसे क्वेरी करने के लिए LINQ का उपयोग करेंगे।

class BealOperandGenerator : IEnumerable<BealOperands>
{
    // Implementation of IEnumerable<> and IEnumerable -- basically boilerplate to get to BealOperandGeneratorEnumerator.
    public IEnumerator<BealOperands> GetEnumerator() { return new BealOperandGeneratorEnumerator(); }
    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); }
}

class BealOperandGeneratorEnumerator : IEnumerator<BealOperands>
{
    public BealOperandGeneratorEnumerator() { Reset(); }

    private BealOperands operands;
    private BigInteger @base;

    public void Reset()
    {
        // A is set to 0, which is "before" its minimum value, because IEnumerators are supposed to
        // point to their first element *after* the first call to MoveNext().
        // All other operands are set to their minimum values.
        operands = new BealOperands { A = 0, B = 1, C = 1, x = 3, y = 3, z = 3 };
        @base = 2;
    }

    public BealOperands Current
    {
        get 
        {
            // We need to return a copy, since we'll be manipulating our internal one.
            return new BealOperands { 
                A = operands.A, B = operands.B, C = operands.C, 
                x = operands.x, y = operands.y, z = operands.z };
        }
    }

    public bool MoveNext()
    {
        // Increment the lowest "digit" and "carry" as necessary.
        operands.A++;
        if (operands.A - 1 >= @base)
        {
            operands.A = 1; operands.B++;
            if (operands.B - 1 >= @base)
            {
                operands.B = 1; operands.C++;
                if (operands.C - 1 >= @base)
                {
                    operands.C = 1; operands.x++;
                    if (operands.x - 3 >= @base)
                    {
                        operands.x = 3; operands.y++;
                        if (operands.y - 3 >= @base)
                        {
                            operands.y = 3; operands.z++;
                            if (operands.z - 3 >= @base)
                            {
                                operands.z = 3; @base++;
                            }
                        }
                    }
                }
            }
        }
        // There will always be more elements in this sequence.
        return true;
    }

    // More boilerplate
    object System.Collections.IEnumerator.Current { get { return Current; } }
    public void Dispose() { }
}

अब हम व्यवसाय में हैं! हमें बस इतना करना चाहिए कि BealOperandGeneratorबील के अनुमान का एक प्रतिरूप खोजा जाए।

हमारी अगली बड़ी समस्या यह है कि एक BigIntegerकी शक्ति को बढ़ाने के लिए कोई अंतर्निहित तरीका नहीं है BigInteger। वहाँ है BigInteger.Pow(BigInteger value, int exponent), और BigInteger.ModPow(BigInteger value, BigInteger exponent, BigInteger modulus), लेकिन एक BigIntegerऔर BigInteger, modulo अनंत की शक्ति को बढ़ाने के लिए कोई विधि नहीं है ।

क्या एक समस्या का एक चमकदार नाखून! ऐसा लगता है कि इसे हमारे IEnumerable/ IEnumeratorहथौड़े से हल किया गया था !

class BigIntegerPowerEnumerable : IEnumerable<Tuple<BigInteger, BigInteger>>
{
    public BigIntegerPowerEnumerable(BigInteger @base, BigInteger exponent) { this.@base = @base; this.exponent = exponent; } 
    BigInteger @base, exponent;

    public IEnumerator<Tuple<BigInteger, BigInteger>> GetEnumerator() { return new BigIntegerPowerEnumerator(@base, exponent); }
    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); }
}

class BigIntegerPowerEnumerator : IEnumerator<Tuple<BigInteger, BigInteger>>
{
    public BigIntegerPowerEnumerator(BigInteger @base, BigInteger exponent) 
    {
        originalBase = @base; 
        originalExponent = exponent;
        Reset(); 
    }

    BigInteger originalBase, currentBase, originalExponent, currentExponent;
    bool finished;

    public void Reset()
    {
        // IEnumerable.Reset() is a silly method. You're required to implement it when you implement IEnumerable,
        // but it isn't used by foreach or LINQ or anything. If you want to re-enumerate the enumerable, just get
        // a brand new enumerator.
        // In this case it gets in the way. The only reason I'm storing the original values is so I can implement 
        // this useless method properly. I supposed I could just throw a NotImplementedException or something, 
        // but it's done now.
        currentBase = originalBase;
        currentExponent = originalExponent;
        finished = false;
    }

    public bool MoveNext()
    {
        if (finished) return false;

        if (currentExponent <= Int32.MaxValue)
        {
            currentBase = BigInteger.Pow(currentBase, (Int32)currentExponent);
            currentExponent = 1;
            finished = true;
        }
        else
        {
            currentBase = BigInteger.Pow(currentBase, Int32.MaxValue);
            currentExponent -= Int32.MaxValue;
        }
        return true;
    }

    public Tuple<BigInteger, BigInteger> Current
    {
        get { return new Tuple<BigInteger, BigInteger>(currentBase, currentExponent); }
    }

    object System.Collections.IEnumerator.Current { get { return Current; } }
    public void Dispose() { }
}

static class BigIntegerPowExtension
{
    public static BigInteger Pow(this BigInteger @base, BigInteger exponent)
    {
        return new BigIntegerPowerEnumerable(@base, exponent).Last().Item1;
    }
}

अब हमें एक एक्सटेंशन विधि मिल गई है Pow, जिसे एक पर बुलाया जा सकता है BigInteger, और एक BigIntegerघातांक और कोई मापांक नहीं ले सकता है ।

ठीक है, चलो वापस कदम। हम कैसे बता सकते हैं कि क्या कोई विशेष BealOperandsबील के अनुमान का एक प्रतिरूप है? खैर, दो बातें सच होने की जरूरत है:

  • जब पृष्ठ के शीर्ष पर उस सूत्र में प्लग किया जाता है, तो ऑपरेंड को एक वास्तविक समीकरण बनाना चाहिए।
  • A, B, और C के पास एक सामान्य अभाज्य कारक नहीं होना चाहिए (अर्थात उनका GCD 1 है)।

हमें वह मिल गया है जो हमें पहली शर्त की जाँच करने की आवश्यकता है। और यह दूसरी स्थिति से पता चलता है कि यह सुनने में आसान है। BigIntegerएक सुंदर GreatestCommonDivisorविधि प्रदान करता है , जो हमें बिना लूप के इसे लागू करने की कोशिश के पूरे दुःस्वप्न को आसानी से दूर करने की अनुमति देता है।

इसलिए हम यह जांचने के लिए एक विधि लिखने के लिए तैयार हैं कि BealOperandsक्या एक प्रतिरूप है। यहाँ जाता हैं...

static class BealOperandsExtensions
{
    public static bool IsBealsConjectureCounterExample(this BealOperands o)
    {
        // If the equation isn't even true, we don't have a counter example unfortunately
        if (o.A.Pow(o.x) + o.B.Pow(o.y) != o.C.Pow(o.z))
        {
            return false;
        }

        // We have a counterexample if A, B and C are coprime
        return BigInteger.GreatestCommonDivisor(o.A, o.B) == 1 &&
               BigInteger.GreatestCommonDivisor(o.A, o.C) == 1 &&
               BigInteger.GreatestCommonDivisor(o.B, o.C) == 1;
    }
}

और अंत में हम इसे सभी के साथ एक साथ ला सकते हैं बल्कि यह आसान Mainतरीका है:

static class Program
{
    static void Main()
    {
        var bealOperandGenerator = new BealOperandGenerator();
        if (bealOperandGenerator.Any(o => o.IsBealsConjectureCounterExample()))
        {
            Console.WriteLine("IN YOUR FACE, BEAL!");
        }
    }
}

2

C ^ Z <= 1.0E27 के साथ कोई प्रतिपक्ष नहीं हैं।

फरवरी 2019 तक मैं इस बात की जाँच कर रहा हूँ कि C ^ Z <= 1.0E29 इस धारणा पर है कि या तो "X" और / या "Y" एक्सपोनेंट> = 5 होना चाहिए।

इस कार्यक्रम का वर्तमान संस्करण ("एक्स" और / या "वाई"> = 5) सीएम जेड <= 1.0E15 के सभी समाधान खोजने के लिए एक एएमडी 2920 एक्स पर 1 सेकंड से कम समय लेता है। (लेकिन सभी gcd (A, B, C) हैं> = 2)

Http://www.durangobill.com/BealsConjecture.html पर विवरण

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

मेरा ईमेल पता मेरे होम पेज पर है http://www.durangobill.com


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

कई विश्वविद्यालयों में उच्च प्रदर्शन वाले क्लस्टर हैं। यदि आप एक तक पहुंच गए हैं, तो वे आपको पहुंच प्रदान करने में सक्षम हो सकते हैं। मैंने बहुत सारे समूहों को सिर्फ सुस्ती के रूप में देखा है!
ऑस्टिन हेनले

1

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

सीजेड<1026एक्स+बीY=सीजेड(एक्स,Y)> =4

2) यदि आप मानते हैं कि कम से कम घातांक है (एक्स,Y) होना चाहिए > =5, कोई प्रतिपक्ष नहीं हैं सीजेड<1028। सभी सामान्य समाधानों की एक पूरी सूचीएक्स+बीY=सीजेड कम से कम एक प्रतिपादक के साथ (एक्स,Y)> =5और C ^ Z <1.0E29 पर देखा जा सकता है: http://www.durangobill.com/BealXgt4e29.txt

पर विवरण: http://www.durangobill.com/BealsConjecture.html

अगले दो प्रश्न हैं :: 1) क्या कोई सुपरकंप्यूटर खोज का विस्तार कर सकता है? 2) यदि कोई सुपरकंप्यूटर खोज का विस्तार कर सकता है, तो क्या यह व्यावहारिक होगा?

1) उपरोक्त खोजों में से किसी एक को 1.0E30 तक विस्तारित करने के लिए, प्रति कोर 300GB RAM की आवश्यकता होगी जब तक कि कोर 300GB साझा नहीं कर सकते। 1.0E30 से परे घातीय शक्ति में प्रत्येक अतिरिक्त अतिरिक्त वृद्धि के लिए, आवश्यक RAM की मात्रा कम से कम 2.2 के कारक से बढ़ जाती है।

2) 1.0E30 से आगे और उससे आगे के विस्तार में प्रत्येक वृद्धिशील वृद्धि के लिए आवश्यक प्रसंस्करण शक्ति की मात्रा संयुक्त CPU समय को लगभग 3.8 से गुणा करती है। 1.0E29 की खोज में 12 कोर का उपयोग करते हुए 2 सप्ताह लग गए। सुपरकंप्यूटर का समय आम तौर पर "मुक्त" नहीं होता है, और इस बात की बहुत कम संभावना होती है कि कोई भी प्रतिवाद हो।

Durangobill.com/BealE29code.txt पर कोड की दक्षता के मार्गदर्शक के रूप में, प्रत्येक 12 कोर में आंतरिक लूप के लिए प्रति सेकंड 220 मिलियन लूप पुनरावृत्तियों का औसत था। (औसत 2-सप्ताह के रन के लिए है।) (जो मेरे पास है उससे परे रैम मेमोरी में वृद्धि। इस औसत गति को 2 के कारक तक बढ़ा देगा।)

मैं ऑस्टिन को जवाब 1) और 2) दूँगा क्योंकि उसके पास एक सुपर कंप्यूटर की पहुंच है और मैं नहीं। (यदि किसी भी दूरस्थ संयोग से कि दोनों 1) और 2) एक "गो" हैं, तो मैं "सी" कोड को कैविटी के साथ आपूर्ति कर सकता हूं जो कि मैं बड़े सुपरकंप्यूटर समूहों के लिए बहु-थ्रेड निर्देशों से परिचित नहीं हूं।)


क्या आप कृपया प्रश्न का केवल एक उत्तर का उपयोग कर सकते हैं, बजाय इसे तीन तक फैलाने के? आप जानते हैं कि आप अपने पिछले उत्तरों को संपादित कर सकते हैं, है ना?
जो राजा

मैं सराहना करता हूं कि आप एक प्रतिसाद पाते हैं और फिर इसे प्रिंट नहीं करते हैं ... इसके अलावा यह बहुत कोड-गोल्फ नहीं है ...
Axman6

0

इसे फिट होने के लिए 2 टिप्पणियों में रखना था।

प्रमुख सरणियों को निम्नानुसार आवंटित किया गया है:

SortHeads = calloc(PRIME1+1, 8);
X2YmodPrime1 = calloc(ARRAYSIZE+1, 4);
X2YmodPrime2 = calloc(ARRAYSIZE+1, 4);
Base = calloc(ARRAYSIZE+1, 4);
Power = malloc(ARRAYSIZE+1);

(इन सरणियों के लिए आपको 128GB RAM की आवश्यकता होगी)

साथ में:

#define PRIME1 2147483647LLU
#define PRIME2 2147483629LLU
#define ARRAYSIZE 4700000000LL

"बेस" वास्तव में 33 बिट्स ( cbrt(1.0E29)) की आवश्यकता है - अतिरिक्त बिट "पावर" (जो केवल 7 बिट्स की आवश्यकता है) में भरवां है।

सरणियाँ हैश तालिका के समान काम करती हैं। हालाँकि, चूंकि उन्हें PRIME1 द्वारा सॉर्ट किया गया है और केवल लुक-अप टेबल के रूप में उपयोग किया जाता है, इसलिए आपको उन्हें एक्सेस करने के लिए लिंक की गई सूचियों की आवश्यकता नहीं है। परिणाम इस प्रकार एक बहुत तेजी से रैखिक समय देखने के लिए अगर एक परीक्षण ए ^ एक्स + बी ^ वाई = किसी भी सी ^ जेड है।

इस प्रकार अंतरतम पाश में कथन केवल दो छोर हैं।

"प्राग्मा" कथन बहु प्रसंस्करण कोर की संख्या को नियंत्रित करता है जो उपयोग किया जाता है (इस मामले में 12) - सभी सरणियों की एकल प्रति तक पहुंच सकते हैं।

यहां "मुख्य" कोड ("सी" में है) (आशा है कि टिप्पणियाँ पोस्ट लाइन की लंबाई के अनुरूप हैं। यदि नहीं, तो उन्हें कॉपी करें और कोड को कुछ ऐसे दस्तावेज़ में पेस्ट करें जिनकी लंबाई लंबी है।)


टिप्पणी बॉक्स केवल मुझे 600 वर्णों का उपयोग करने देगा, और मुझे कोड के लिए 3,000+ की आवश्यकता होगी। (कोई सुझाव?) (मैं अपने वेब पेज पर कोड पोस्ट कर सकता हूं अगर मैं इसे यहां पोस्ट नहीं कर सकता।)
बिल बटलर

मैंने यहाँ “main” “C” कोड डाला। durangobill.com/BealE29code.txt यदि और कुछ नहीं है, तो यह "C" में कई थ्रेड प्रोसेसिंग के लिए "इसे कैसे करें" का एक उदाहरण है।
बिल बटलर

1
साइट पर आपका स्वागत है। जबकि कमेंट बॉक्स 600 वर्णों तक सीमित हैं, आपका उत्तर नहीं है। आपको अपने कोड को अपने उत्तर में आसानी से फिट करने में सक्षम होना चाहिए। यदि आप टिप्पणियों को ट्रिम करने का प्रयास नहीं कर रहे हैं। इसके अलावा मैंने कोड ब्लॉक का उपयोग करने के लिए आपके उत्तर को सुधार दिया। जैसा कि मैंने किया था ये 4 स्थानों के साथ किया जा सकता है। जब आप अपने कोड को अपने उत्तर में ले जाते हैं तो आपको इसे एक कोड ब्लॉक में रखना चाहिए या यह पूरी तरह से अपठनीय होगा।
पोस्ट रॉक गार्फ हंटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.