कौन सी बड़ी संख्या बड़ी है?


22

इनपुट

1 से 20 की रेंज में इंटेगर ए 1, ए 2, ए, बी 1, बी 2, बी 3।

उत्पादन

True if a1^(a2^a3) > b1^(b2^b3) and False otherwise.

^ इस सवाल में घातांक है।

नियम

यह कोड-गोल्फ है। मानक डेस्कटॉप पीसी पर किसी भी मान्य इनपुट के लिए आपका कोड 10 सेकंड के भीतर सही ढंग से समाप्त होना चाहिए।

आप कुछ भी ट्रू के लिए ट्रू और कुछ भी फालसे के लिए सच कर सकते हैं।

आप किसी भी इनपुट ऑर्डर को पसंद कर सकते हैं, जब तक कि उत्तर में निर्दिष्ट और हमेशा समान हो।

इस प्रश्न के लिए आपका कोड हमेशा सही होना चाहिए। वह यह है कि फ्लोटिंग पॉइंट अशुद्धि के कारण असफल नहीं होना चाहिए। इनपुट की सीमित सीमा के कारण इसे प्राप्त करना बहुत कठिन नहीं होना चाहिए।

परीक्षण के मामलों

3^(4^5) > 5^(4^3)
1^(2^3) < 3^(2^1)
3^(6^5) < 5^(20^3)
20^(20^20) > 20^(20^19)
20^(20^20) == 20^(20^20)
2^2^20 > 2^20^2
2^3^12 == 8^3^11
1^20^20 == 1^1^1
1^1^1 == 1^20^20

टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
DJMcMayhem

जवाबों:


16

पर्ल 6 , 31 29 बाइट्स

-2 बाइट्स ग्रिम के लिए धन्यवाद

*.log10* * ***>*.log10* * ***

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

मानो या न मानो, यह एक esolang नहीं है , भले ही यह ज्यादातर तारांकन से बना हो। यह ln के बजाय log10 के साथ Arnauld के सूत्र का उपयोग करता है ।


मेरा मानना ​​है कि यह विफल रहता है 2^3^12 == 8^3^11
अर्जन जोहानसन

@ NowrjanJohansen यह अब तय किया जाना चाहिए। मुझे बताएं कि क्या यह किसी और चीज के लिए विफल रहता है
जो किंग


@ ग्रैमी थैंक्स! मैं शपथ ले सकता था कि मैंने कोशिश की ...
जो राजा

7

आर , 39 बाइट्स

function(x,y,z)rank(log2(x)*(y^z))[1]<2

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

a > bयदि और जब सही होने पर FALSE लौटाता हैb < a


4
यह गलत हैf(2,2,20,2,20,2)
H.PWiz

फिक्स्ड, @Arnauld उत्तर;) को अपने सुझाव का उपयोग करके
digEmAll

मेरा मानना ​​है कि यह विफल रहता है 2^3^12 == 8^3^11
अर्जन जोहान्सन

1
दोनों के लिए विफल 1^20^20 == 1^1^1और 1^1^1 == 1^20^20
ओलिवियर ग्रेगोइरे

6

05AB1E , 11 9 11 7 बाइट्स

.²Šm*`›

पोर्ट @Arnauld के जावास्क्रिप्ट और @digEmAll के आर एप्रोच (मैंने उन्हें उसी समय के आस-पास देखा)
-2 बाइट्स के लिए @Emigna
+2 बाइट्स का धन्यवाद बग-फिक्स के बाद @Arnauldd के उत्तर और @digEmAll के उत्तर समाहित किए हुए हैं। एक त्रुटि
-4 बाइट्स अब @LuisMendo की टिप्पणियों के बाद एक अलग इनपुट ऑर्डर की अनुमति है

इनपुट के रूप [a1,b1]में [a3,b3], [a2,b2]तीन अलग-अलग इनपुट के रूप में।

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

       # Take the logarithm with base 2 of the implicit [a1,b1]-input
  Š      # Triple-swap a,b,c to c,a,b with the implicit inputs
         #  The stack order is now: [log2(a1),log2(b1)], [a2,b2], [a3,b3]
   m     # Take the power, resulting in [a2**a3,b2**b3]
    *    # Multiply it with the log2-list, resulting in [log2(a1)*a2**a3,log2(b1)*b2**b3]
     `   # Push both values separated to the stack
        # And check if log2(a1)*a2**a3 is larger than log2(b1)*b2**b3
         # (after which the result is output implicitly)

1
आपका दूसरा संस्करण ²ć.²š] P`>
Emigna

@Emigna आह अच्छा, मैं एक दृष्टिकोण के साथ देख रहा था ć, लेकिन पूरी तरह से उपयोग करने के बारे में भूल गया š(निश्चित नहीं कि अब मैं इसे क्यों देख रहा हूं, हाहा)। धन्यवाद!
केविन क्रूज़सेन

यह गलत प्रतीत होता है (क्योंकि हाल ही में तय होने तक अरनुल्द का जवाब गलत था)।
अनुष

@ आंसू फिक्स्ड और 4 बाइट्स एक अलग क्रम में अब इनपुट्स को बचाकर। :)
केविन क्रूज़सेन

5

जावा (JDK) , 56 बाइट्स

(a,b,c,d,e,f)->a>Math.pow(d,Math.pow(e,f)/Math.pow(b,c))

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

क्रेडिट


मेरा मानना ​​है कि यह विफल रहता है 2^3^12 == 8^3^11
अर्जन जोहान्सन

@ IerrrrJohansen फिक्स्ड
ओलिवियर ग्रैगोइरे

4

यह a1 = 20, a2 = 20, a3 = 20 के लिए समाप्त नहीं होता है।
अनुष

@ आयुष तय ...
J42161217

1
अतिप्रवाह के बारे में बहुत बुरा है, अन्यथा ##>0&@@(##^1&@@@#)&केवल 19 बाइट्स हैं और इससे भी अधिक मनमौजी संयुक्त राष्ट्र-मैथेमेटिका जैसे ऊपर दिए गए कोड की तुलना में। (infput format {{a,b,c},{d,e,f}})
ग्रेग मार्टिन

3

जे , 11 9 बाइट्स

>&(^.@^/)

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

सूचियों के रूप में दिए गए तर्क।

  • > बाईं ओर एक बड़ा है?
  • &(...) लेकिन पहले, प्रत्येक तर्क को इस प्रकार रूपांतरित करें:
  • ^.@^/घातांक के साथ इसे दाईं से बाईं ओर कम करें। लेकिन क्योंकि साधारण घातांक विस्तारित संख्या के लिए भी त्रुटि को सीमित करेगा, हम दोनों पक्षों के लॉग लेते हैं

3

साफ , 44 बाइट्स

import StdEnv
$a b c d e f=b^c/e^f>ln d/ln a

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

अर्नुल्ड के सूत्र के एक अनुकूलन का उपयोग करता है।


1
मेरा मानना ​​है कि यह विफल रहता है 2^3^12 == 8^3^11
अर्जन जोहान्सन

@ ØrrrJohansen फिक्स्ड।
Οurous

3

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

lambda a,b,c,d,e,f:log(a,2)*(b**c)>log(d,2)*(e**f)
from math import*

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

पोर्ट ऑफ़ @Arnualds उत्तर, लेकिन लॉग के लिए आधार के साथ बदल गया।


^**पायथन में कहा जाता है। और उस बदलाव के साथ, आप सभी ओपी के परीक्षण मामलों को चलाने में सक्षम नहीं होंगे।
अर्जन जोहान्सन

सभी को अभी तय किया जाना चाहिए, हालांकि 66 बाइट्स।
आर्टेमिस

मेरा मानना ​​है कि यह विफल रहता है 2^3^12 == 8^3^11
अर्जन जोहान्सन

@ ArtRrrJohansen तय होनी चाहिए
आर्टेमिस मोनिका

इसी की तरह लगता है। फिक्स के लिए लॉगरिदमिक आधार परिवर्तन के अलावा, यह अरनॉल्ड की विधि की तरह दिखता है।
अर्जन जोहान्सन

2

05AB1E , 13 बाइट्स

Arnauld के JS उत्तर से विधि का उपयोग करता है

2F.²IIm*ˆ}¯`›

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


यह a1 = 20, a2 = 20, a3 = 20 के लिए समाप्त नहीं होता है।
अनुष

1
@Anush: मेरे लिए एक सेकंड से भी कम समय में समाप्त होता है।
एमिगा

आपको 20 तक सभी चर सेट करने हैं। tio.run/##yy9OTMpM/f9f79Du3GK9Q6tzHzXs@v8/2shAB4xiuRMMAA
Anush

@Anush: आह, तुम्हारा मतलब था b1=b2=b3=20, हाँ जो समाप्त नहीं होता है।
एमिगा

1
@ आयुष: यह अब तय हो गया है। मेरी गलती को इंगित करने के लिए धन्यवाद :)
एमिगा

2

एक्सेल, 28 बाइट्स

=B1^C1*LOG(A1)>E1^F1*LOG(D1)

पहले से ही उपयोग किए गए उसी सूत्र का एक्सेल कार्यान्वयन।


मेरी समझ यह है कि एक्सेल के पास 15 अंकों की सटीकता है, इसलिए ऐसे मामले हो सकते हैं, जहां इस गलत उत्तर को वापस करने में परिणाम होता है।
संचय

2

जावास्क्रिप्ट, 51 बाइट्स

f=(a,b,c,h,i,j)=>(l=Math.log)(a)*b**c-l(h)*i**j>1e-8

हैरानी की बात है, परीक्षण मामलों में कोई फ़्लोटिंग-पॉइंट त्रुटि नहीं दिखाई देती है। मुझे नहीं पता कि क्या यह कभी इस आकार में होता है।

यह सिर्फ संख्याओं के लघुगणक की तुलना करता है।

समानता सहिष्णुता के बराबर है 1e-8


PPCG में आपका स्वागत है! काश यह मेरे 2^3^12 == 8^3^11टेस्ट केस में फेल हो जाता । वास्तव में आपका उत्तर अर्नुलद (मूल रूप से हटाए गए बजाय निश्चित रूप से हटाए गए) द्वारा दिए गए मूल उत्तर से काफी मिलता-जुलता है, जिसने इसे विफल कर दिया।
अर्जन जोहान्सन

@ अर्जन जोहानसन l(h)दाईं ओर चला गया, और शायद अब यह काम करता है? संपादित करें: रुको, यह नहीं है।
नारूयोको

समता सहिष्णुता को जोड़ा 0.01
नारुयोको

मैंने एक त्वरित खोज की और एक सहिष्णुता काम करना चाहिए, लेकिन यह थोड़ा अधिक है। सबसे अधिक आपको बाहर करने की आवश्यकता है (5.820766091346741e-11,(8.0,3.0,11,2.0,3.0,12))(मेरा परीक्षण मामला), और सबसे कम आपको शामिल करने की आवश्यकता है (9.486076692724055e-4,(17.0,19.0,1,3.0,7.0,2))( 3^7^2 > 17^19^1।) तो कुछ ऐसा 1e-8होना चाहिए जो बीच में सुरक्षित रूप से होना चाहिए और एक ही बाइट लंबाई।
अर्जन जोहान्सन

@ अर्जन जोहान्सन ओके, धन्यवाद!
नारायणोको

1

बीसीएल, ४ 47 बाइट्स

l(read())*read()^read()>l(read())*read()^read()

इनपुट से पढ़ा जाता है STDIN, प्रति पंक्ति एक पूर्णांक।

bcबहुत तेज़ है; यह मेरे लैपटॉप पर एक सेकंड में एक = बी = सी = डी = ई = एफ = 1,000,000 से थोड़ा अधिक संभालता है।


मुझे bc उत्तर पसंद है! बस अब एक को कोस में जरूरत है :)
अनुश्

1

सी ++ (जीसीसी) , 86 बाइट्स

इसमें दोष देखने के लिए @ torjanJohansen और फिक्स देने के लिए @Ourous का शुक्रिया।

#import<cmath>
int a(int i[]){return pow(i[1],i[2])/pow(i[4],i[5])>log(i[3])/log(*i);}

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

सी>


logदो बार लेने के बाद सूत्र होना चाहिए i[2]*log(i[1])+log(log(*i))। उदाहरण के लिए वर्तमान एक के लिए असफल हो जाएगा 2^2^20 > 4^2^18
अर्जन जोहान्सन

@ !RjanJohansen: अच्छी पकड़! मुझे लगता है कि मुझे powतब विधि का उपयोग करना होगा ।
नील ए।

वैकल्पिक एक 2^3^12 == 8^3^11समस्या है जो मैंने दूसरों के लिए इंगित की है।
अर्जन जोहानसन

@ GuessrjanJohansen: ठीक है, मुझे लगता है कि मैं आपके तय फॉर्मूले का उपयोग कर रहा हूँ।
नील ए।

ओह, मुझे डर है कि सूत्र केवल गणितीय रूप से सही है। यह अभी भी एक अस्थायी बिंदु त्रुटि समस्या है, बस एक अलग मामले के साथ 2^3^20 == 8^3^19,। वास्तव में औसतन बिजली की विधि कम के लिए विफल हो जाती है, शायद इसलिए कि यह दो बिल्कुल शक्तियों से गुणा करने के लिए होती है। दूसरों ने इसे थोड़ा मोड़कर काम करने में कामयाबी हासिल की है।
अर्जन जोहान्सन

1

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

l⁵×*/}>/

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

अरनौलद के जेएस जवाब के आधार पर । इनपुट के [a1, b1]रूप में छोड़ दिया तर्क और [[a2, b2], [a3, b3]]सही तर्क के रूप में की उम्मीद है।

अब लॉग 10 का उपयोग करके बेस 10 में बदल दिया गया है, जहां तक ​​निर्दिष्ट सीमा में सभी संभावित इनपुटों को सही ढंग से संभालता है। मूल समस्या खोजने के लिए अर्जन जोहान्सन को धन्यवाद!


1
मेरा मानना ​​है कि यह विफल रहता है 2^3^12 == 8^3^11
अर्जन जोहानसन

आपका पायथन TIO गलत है .. आपके 8*बजाय है 8**। @ IsrjanJohansen वास्तव में सही है जो कि 2**(3**12) > 8**(3**11)गलत है, क्योंकि वे समान हैं।
केविन क्रूज़सेन

@ केविनक्रूजसेन उफ़। हाँ, वे वास्तव में समान हैं। मूल दो को अलग-अलग चिह्नित करने का कारण फ़्लोटिंग पॉइंट त्रुटि है।
निक केनेडी

1

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

ln(Ans(1))Ans(2)^Ans(3)>Ans(5)^Ans(6)(ln(Ans(4

6Ans

उदाहरण:

{3,4,5,5,4,3
   {3 4 5 5 4 3}
prgmCDGF16
               1
{20,20,20,20,20,19       ;these two lines go off-screen
{20 20 20 20 20 19}
prgmCDGF16
               1
{3,6,5,5,20,3
  {3 6 5 5 20 3}
prgmCDGF16
               0

स्पष्टीकरण:

ln(Ans(1))Ans(2)^Ans(3)>Ans(5)^Ans(6)(ln(Ans(4   ;full program
                                                 ;elements of input denoted as:
                                                 ; {#1 #2 #3 #4 #5 #6}

ln(Ans(1))Ans(2)^Ans(3)                          ;calculate ln(#1)*(#2^#3)
                        Ans(5)^Ans(6)(ln(Ans(4   ;calculate (#5^#6)*ln(#4)
                       >                         ;is the first result greater than the
                                                 ; second result?
                                                 ; leave answer in "Ans"
                                                 ;implicit print of "Ans"

नोट: TI-BASIC एक टोकन भाषा है। कैरेक्टर काउंट बाइट काउंट नहीं के बराबर होता है ।


मैं TI-BASIC से परिचित नहीं हूं, लेकिन ऐसा लगता है कि log(x) × y × zनहीं है log(x) × y ^ z। यह जरूरी नहीं कि मूल असमानता के समान ही आदेश देगा।
निक केनेडी

@NickKennedy जी, आप इस बारे में सही हैं! मैं इसके लिए पोस्ट को अपडेट करूंगा।
ताऊ

1

एपीएल (एनएआरएस), चार्ट्स 36, बाइट्स 72

{>/{(a b c)←⍵⋄a=1:¯1⋄(⍟⍟a)+c×⍟b}¨⍺⍵}

यहाँ फ़ंक्शन के नीचे z (abc) z (xyt) 1 वापस आएगा यदि ^ (b ^ c)> x ^ (y ^ t) और फिर 0 वापस आएंगे; परीक्षा

  z←{>/{(a b c)←⍵⋄a=1:¯1⋄(⍟⍟a)+c×⍟b}¨⍺⍵}
  3 4 5 z 5 4 3
1
  1 2 3 z 3 2 1
0
  3 6 5 z 5 20 3
0
  20 20 20 z 20 20 19
1
  20 20 20 z 20 20 20
0
  2 2 20 z 2 20 2
1
  2 3 12 z 8 3 11
0
  1 20 20 z 1 1 1
0
  1 1 1 z 1 20 20
0
  1 4 5 z 2 1 1
0

{(abc) ⍵⋄ 1a = 1: ⋄1⍟⍟ ()a) + c × ⍟b} फ़ंक्शन p (a, b, c) = लॉग (लॉग (a)) + c * लॉग (b) है ) = लॉग (लॉग (एक ^ b ^ c)) और यदि a = b, c> 0 और a> 1 bb = x ^ (y ^ t) के साथ x, y, t> 0 और x> 1 से

aa>bb <=> log(log(a^b^c))>log(log(x^y^t))  <=>  p(a,b,c)>p(x,y,t)

फ़ंक्शन पी के साथ एक समस्या है: जब एक 1 है, तो लॉग 1 मौजूद नहीं है, इसलिए मैं नंबर -1 के साथ प्रतिनिधित्व करने का चयन करता हूं; जब = 2 तो लॉग इन करें एक ऋणात्मक संख्या है लेकिन> -1।

पुनश्च। फ़ंक्शन को इसके बड़े सेट में देखें, जिसमें परिभाषित किया गया है

p(a,b,c)=log(log(a))+c*log(b)

1..20 के लिए a, b, c के लिए रेंज दिखना बहुत कम है ... यदि कोई देखता है कि यह लॉग बेस 10 के साथ ओवरफ्लो होता है, a, b, c के लिए सीमा 1..10000000 या 64 बिट के लिए बड़ी हो सकती है फ्लोट प्रकार।

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