क्या यह संख्या -2 की पूर्णांक शक्ति है?


41

यह निर्धारित करने के चतुर तरीके हैं कि क्या कोई संख्या 2 की शक्ति है। यह अब एक दिलचस्प समस्या नहीं है, तो आइए यह निर्धारित करें कि क्या दिया गया पूर्णांक -2 की पूर्णांक शक्ति है । उदाहरण के लिए:

-2 => yes: (-2)¹
-1 => no
0 => no
1 => yes: (-2)⁰
2 => no
3 => no
4 => yes: (-2)²

नियम

  • आप एक प्रोग्राम या फ़ंक्शन लिख सकते हैं और इनपुट प्राप्त करने और आउटपुट प्रदान करने के किसी भी मानक तरीके का उपयोग कर सकते हैं।

  • यदि आपका पूर्णांक -2 की पूर्णांक शक्ति है, और मिथ्या मान है तो आपका इनपुट एकल पूर्णांक है, और आउटपुट एक सत्य मान होना चाहिए। कोई अन्य आउटपुट (जैसे चेतावनी संदेश) की अनुमति नहीं है।

  • सामान्य पूर्णांक ओवरफ़्लो नियम लागू होते हैं: आपका समाधान आपकी भाषा के एक काल्पनिक (या शायद वास्तविक) संस्करण में मनमाने ढंग से बड़े पूर्णांकों के लिए काम करने में सक्षम होना चाहिए जिसमें सभी पूर्णांक डिफ़ॉल्ट रूप से अनबाउंड हैं, लेकिन यदि आपका प्रोग्राम कार्यान्वयन के कारण अभ्यास में विफल रहता है पूर्णांक का समर्थन नहीं कर रहा है, जो समाधान को अमान्य नहीं करता है।

  • आप किसी भी प्रोग्रामिंग भाषा का उपयोग कर सकते हैं , लेकिन ध्यान दें कि इन खामियों को डिफ़ॉल्ट रूप से मना किया गया है।

जीतने की स्थिति

यह एक प्रतियोगिता है: जिसका उत्तर सबसे कम बाइट्स (आपके चुने हुए एन्कोडिंग में) विजेता होता है।


17
@KritiiLithos मैं नहीं देखता कि यह क्यों होना चाहिए। ऐसा कोई पूर्णांक नहीं iहै(-2)^i = 2
घातक

2
क्या घातांक सकारात्मक हैं या -0.5यह 2 ^ (- 1) के बाद से मान्य होना चाहिए ।
मिस्टर एक्सकोडर

1
@ Mr.Xcoder, चूंकि इनपुट हमेशा पूर्णांक मान होते हैं , एक नकारात्मक घातांक की आवश्यकता नहीं होगी (या संभव)।
टोबे स्पाइट

1
@SIGSEGV शायद iस्वाभाविक नहीं है
श्री एक्सकोडर

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

जवाबों:


26

गणितज्ञ, 22 बाइट्स

EvenQ@Log2@Max[#,-2#]&

इसे ऑनलाइन आज़माएं! (इसके बजाय मैथिक्स का उपयोग करना, जहां यह समाधान भी काम करता है।)

मैंने थोड़ी देर के लिए बिटवाइज़ ऑपरेटरों के साथ एक समाधान खोजने की कोशिश की, और जबकि एक निश्चित रूप से मौजूद है, मैंने कुछ ऐसा ढूंढना समाप्त कर दिया जो संभवतः सरल है:

  • Max[#,-2#]नकारात्मक होने पर इनपुट को -2 से गुणा करता है । -2 के एक अन्य कारक से गुणा करना यह नहीं बदलता है कि मूल्य -2 की शक्ति है या नहीं। लेकिन अब के सभी अजीब शक्तियों -2 का भी शक्तियों में बदल दिया है -2
  • लेकिन -2 की शक्तियां भी 2 की शक्तियां हैं , इसलिए हम एक सरल Log2@...और चेक का उपयोग कर सकते हैं यदि परिणाम एक पूर्णांक है (यह जांचने के लिए कि क्या यह 2 की शक्ति है )। यह पहले से ही दो बाइट्स बचाता है Log[4,...]( -2 की शक्तियों को देखने का दूसरा तरीका )।
  • एक अतिरिक्त बोनस के रूप में, यह जांचना कि क्या एक मान भी पूर्णांक है यह जाँचने से छोटा है कि क्या यह पूर्णांक है: हम EvenQइसके बजाय का उपयोग करके तीन और बाइट्स बचा सकते हैं IntegerQ

क्या यह विचार करने में मदद करता है कि -2 की शक्तियां 4 की पूर्णांक शक्तियां हैं? मुझे सबकुछ पॉजिटिव पाने के लिए -2 से गुणा करने का विचार पसंद है - हालांकि अब तक कोई बिट-ट्विडलिंग नहीं देखकर निराश हूं।
टोबे स्पाइट

5
@TobySpeight उन्हें 2 की शक्तियों के रूप में मानना ​​वास्तव में 5 बाइट्स बचाता है। मैंने पहले 4 की शक्तियों का उपयोग किया था, लेकिन इससे Log[4,...]अधिक लंबी है Log2@...और इससे IntegerQअधिक लंबी है EvenQ
मार्टिन एंडर


12

पायथन , 46 बाइट्स

-2 बाइट्स थैंक्स टू @ovs।

def g(x):
 while x%-2==0!=x:x/=-2
 return x==1

उपयोग के साथ समारोह:

g(4) # put your number between the brackets

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


print g(8)प्रिंट्सFalse
फेलिप नारदी बतिस्ता

2
@FelipeNardiBatista नहीं होना चाहिए?
श्री Xcoder

2
क्षमा करें, मेरा उदाहरण एक बुरा था, print g(4)वही
फेलिप नारदी बतिस्ता

रुको, एक छोटी सी त्रुटि है, शीघ्र ही इसे ठीक कर रहा है
श्री एक्सकोडर

1
मैंने ;एक न्यूलाइन की बजाय रख दिया है ... इसके लिए क्षमा करें। फिक्स्ड @FelipeNardiBatista
श्री एक्सकोडर

11

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

b-2S⁼1

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

यह इस बात पर आधारित है कि कैसे जेली एक पूर्णांक N को किसी मनमाने आधार B में परिवर्तित करती है, N को एक सरणी में परिवर्तित करके ऐसा करती है , जिसमें प्रत्येक पूर्णांक एक अंक d ( N ) B का होता है , जिसका मान 0≤ V d < B हो सकता है। । यहां, हम दाईं ओर से 0-इंडेक्स अंक प्राप्त करेंगे, इसलिए प्रत्येक अंक N बनाने के लिए V d B d जोड़ता है । वी डी < बीवी डी बी डी < बी बी डी = बी डी +1 , इसलिए हर संभवएन अगर हम में (प्रमुख 0s की अनदेखी, केवल एक अद्वितीय प्रतिनिधित्व है एन ) बी

यहां, d = इनपुट, B = -2। एन = बी डी = 1 बी डी = वी डी बी डी ⇔1 = वी डीवी डी = 1, और, क्योंकि हम की शक्तियों के किसी भी अन्य गुणकों जोड़ने नहीं कर रहे हैं बी , हर दूसरे वी 0 अभी हो सकता है, सरणी को d 0s के साथ 1 समवर्ती होना चाहिए । चूंकि बाईं ओर से जेली 1-इंडेक्स, हमें यह देखना चाहिए कि क्या सरणी का पहला तत्व 1 है, और अन्य सभी तत्व 0 हैं।

हम्म ... सब अच्छा है, है ना? नहीं? क्या चल रहा है? अरे हाँ, मेरे पास एक बेहतर विचार है! सबसे पहले, आइए हम सभी पूर्णांकों के योग को सरणी में लेते हैं, यह मानते हुए कि यह पूर्णांक सरणी है और आधार -2 में कोई संख्या नहीं है। यदि यह 1 है तो इसका मतलब केवल एक 1 है कि वहाँ, और अन्य सभी पूर्णांकों, 0. हैं के बाद से अग्रणी शून्य नहीं हो सकता 0 के मामले को छोड़कर -2(जहां योग 0 any 1 वैसे भी होगा), 1 पूर्णांक गैर-शून्य होना चाहिए। सरणी में एकमात्र गैर-शून्य पूर्णांक 1 है, इसलिए यह पहला होना चाहिए। इसलिए, यह एकमात्र मामला है कि सरणी में पूर्णांक के सभी का योग 1 होगा, क्योंकि सकारात्मक पूर्णांक की एक जोड़ी का सबसे छोटा संभव योग 1,1 {1,1} = 2 है, क्योंकि सबसे छोटा पूर्णांक 1 है आधार निरूपण में प्रत्येक पूर्णांक गैर-ऋणात्मक है, इसलिए योग 1 का एकमात्र तरीका केवल 1 1 है, और अन्य सभी पूर्णांक 0. हैं। इसलिए, हम जांच कर सकते हैं कि पूर्णांक के सभी का योग क्या है सरणी 1 है।

यहाँ कोड क्या है:

b-2S⁼1 Main link. Arguments: d
b-2    Convert d to base -2.
   S   Take the sum.
    ⁼1 Check if the sum is equal to 1.

1
भाइयो, उस स्पष्टीकरण को लिखने में समय लगा ...
एरिक आउटगॉल्फर

मुझे यह देखने से नफरत है कि एक लंबे कार्यक्रम के लिए एक स्पष्टीकरण तब कैसा लगेगा ...
boboquack

1
@boboquack यहाँ मैं समझा रहा हूँ कि मैं आधार रूपांतरण सामग्री का उपयोग क्यों कर रहा हूँ। मुझे नहीं लगता कि लंबे कार्यक्रमों के लिए स्पष्टीकरण यह लंबा होगा। एक पोस्ट में 30000 तक मार्कडाउन अक्षर हो सकते हैं, और अधिक प्रोग्राम के लिए स्पष्टीकरण वैसे भी अधिक ट्रिक होंगे। इसके अलावा, मैंने बहुत लंबे समय तक स्पष्टीकरण पढ़ा है, और वे उबाऊ नहीं हैं।
आउटगोल्फर



10

एक्सेल, 40 36 बाइट्स

CallumDA द्वारा 4 बाइट्स सहेजे गए

एक्सेल निश्चित रूप से कर सकता है लेकिन त्रुटियों को सुधारने के लिए 11 बाइट्स जोड़ता है

=IFERROR(-2^IMREAL(IMLOG2(A1)),1)=A1

इनपुट सेल में है A1। आउटपुट TRUEया हैFALSE

यदि इसे झूठे मूल्यों के लिए FALSEया तो #NUM!त्रुटि की अनुमति दी गई थी , तो यह केवल 25 बाइट्स होगी:

=-2^IMREAL(IMLOG2(A1))=A1

एक छोटा सा सुधार:=IFERROR(-2^IMREAL(IMLOG2(A1)),1)=A1
CallumDA

1
@CallumDA धन्यवाद! मैंने जटिल संख्या फ़ंक्शंस का उपयोग करने का तरीका जानने की कोशिश की, लेकिन मैं जो कुछ भी आया था वह लंबा था।
इंजीनियर टोस्ट

9

05AB1E , 8 बाइट्स

Y(IÄÝm¹å

इसे ऑनलाइन आज़माएं! या टेस्ट सूट के रूप में

व्याख्या

Y(         # push -2
  IÄÝ      # push range [0 ... abs(input)]
     m     # element-wise power
      ¹å   # check if input is in the resulting list

क्यों होता है पतन?
कृति लीथोस

@KritiiLithos: ऐसा लगता है जैसे किसी ने सभी गोल्फ भाषाओं को डाउनवोट कर दिया है।
इमीना

6
उस पर भी ध्यान दिया। हालांकि मैं लंबे समय तक पीपीसीजी के आसपास नहीं रहा, लेकिन मैंने सीखा है कि मानक भाषाओं में रचनात्मक और दिलचस्प समाधान गोल्फिंग भाषाओं में 3-बाइट समाधानों की तुलना में कहीं अधिक सराहनीय हैं। हालांकि, कुछ लोग हैं जो (दुर्भाग्य से) गोल्फ भाषाओं में बहुत रचनात्मक समाधानों को कम करते हैं, बस इसलिए कि उन्हें लगता है कि सब कुछ बिल्ट-इन है, और समझ में नहीं आता कि एल्गोरिदम (हालांकि गोल्फिंग लैंगगेज में लिखे गए) कितने अच्छे हैं। अविश्वसनीय समाधान @Emigna के लिए +1
श्री Xcoder

ÄLY(småO8. 8. 8 के Y(sÄLm¢Zलिए ... Nevermind, सभी 8.
मैजिक ऑक्टोपस Urn

9

जावास्क्रिप्ट (ईएस 6), 37 28 24 बाइट्स

f=x=>!x|x%2?x==1:f(x/-2)

सहेजे गए 4 बाइट्स अर्नुल्ड के लिए धन्यवाद।

f=x=>!x|x%2?x==1:f(x/-2)

console.log(f(-2));
console.log(f(-1));
console.log(f(0));
console.log(f(1));
console.log(f(2));
console.log(f(3));
console.log(f(4));


जब मैं "रन कोड स्निपेट" पर क्लिक करता हूं तो मुझे कुछ गलतियाँ (सच्चे / झूठे मूल्यों से पहले) क्यों दिखाई देती हैं?
संख्यामान

@numbermaniac मुझे यकीन नहीं है, शायद आप एक ऐसे ब्राउज़र का उपयोग कर रहे हैं जो ES6 का पूरी तरह से समर्थन नहीं करता है?
टॉम

वेल्ड, ताज़ा और फिर से कोशिश की, कोई त्रुटि नहीं। यकीन नहीं होता कि पहली बार क्या हुआ था।
संख्यामान 13


8

MATL , 9 8 बाइट्स

2_y|:q^m

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

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

-8उदाहरण के रूप में इनपुट पर विचार करें

2_    % Push -2
      % STACK: -2
y     % Implicit input. Duplicate from below
      % STACK: -8, -2, -8
|     % Absolute value
      % STACK: -8, -2, 8
:     % Range
      % STACK: -8, -2, [1 2 3 4 5 6 7 8]
q     % Subtract 1, element-wise
      % STACK: -8, -2, [0 1 2 3 4 5 6 7]
^     % Power, element-wise
      % STACK: -8, [1 -2 4 -8 16 -32 64 -128]
m     % Ismember. Implicit display
      % STACK: 1

यदि मैं आपके स्पष्टीकरण को सही ढंग से समझता हूं, तो दिए गए इनपुट से n, यह nएक मध्यवर्ती चरण के रूप में एक सरणी बनाता है । अच्छा काम है कि दक्षता यहाँ एक मानदंड नहीं है!
टोबे स्पाइट

2
@ निश्चित रूप से! यह कोड गोल्फ है, जो दक्षता के बारे में परवाह करता है? :
लुइस मेंडो


6

PHP, 41 बाइट्स

for(;$argn%-2==0;)$argn/=-2;echo$argn==1;

PHP, 52 बाइट्स

echo($l=log(abs($argn),2))==($i=$l^0)&&$argn>0^$i%2;

PHP, 64 बाइट्स

Regex के साथ काम करना

echo preg_match("#^".($argn>0?1:"1+0")."(00)*$#",decbin($argn));


5

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

एक पुनरावर्ती कार्य जो लौटता है 0या true

f=n=>n==1||n&&f(n/-2)

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

इसमें कोई स्पष्ट परीक्षण शामिल नहीं है - जैसे nकि विषम होना या abs(n)एक से कम होना - इनपुट को -2 की सटीक शक्ति नहीं होने पर पुनरावृत्ति को जल्दी से रोकना ।

हम केवल तभी बाहर निकलते हैं जब या nतो बिल्कुल बराबर हो 1या 0

हालांकि यह काम करता है क्योंकि किसी भी IEEE-754 फ्लोट को गोलाकार अंडरफ्लो के0 कारण अंततः 2 (या -2) से विभाजित करके गोल किया जाएगा ।

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



4

जावा 7, 55 बाइट्स

boolean c(int n){return n==0?0>1:n%-2==0?c(n/-2):n==1;}

स्पष्टीकरण:

boolean c(int n){  // Method with integer parameter and boolean return-type
  return n==0 ?    //  If n is zero:
    0>1//false     //   Return false
   : n%-2==0 ?     //  Else-if n mod -2 is zero:
    c(n/-2)        //   Recursive call for the input divided by -2
   :               //  Else:
    n==1;          //   Return if n is one
}                  // End of method

टेस्ट कोड:

इसे यहाँ आज़माएँ।

class M{
  static boolean c(int n){return n==0?0>1:n%-2==0?c(n/-2):n==1;}

  public static void main(String[] a){
    for(int i = -2; i <= 4; i++){
      System.out.println(i + ": " + c(i));
    }
  }
}

आउटपुट:

-2: true
-1: false
0: false
1: true
2: false
3: false
4: true

गैर-पुनरावर्ती तरीका 5 बाइट्स से छोटा है boolean c(int n){while(0==n%-2)n/=-2;return 1==n;}:।
ओलिवियर ग्रैगोइरे

@ OlivierGrégoire एक लिए काम नहीं करता दुर्भाग्य है कि n=0जावा में, क्योंकि 0%-2==0हो जाएगा trueऔर 0/-2अब भी है 0अनंत लूप, जिसके कारण मैं जोड़ा कारण, n==0?0>1मेरी पुनरावर्ती विधि करने के लिए हिस्सा।
केविन क्रूज़सेन

अच्छी तरह से देखा!
ओलिवियर ग्रेजायर 14

4

हास्केल, 24 23 बाइट्स

f 0=0
f 1=1
f n=f(-n/2)

एक फ़ंक्शन को परिभाषित करता है fजो 1-2 की शक्तियों के लिए लौटता है और 0अन्यथा।

अन्य चुनौती के लिए मेरे पहले सबमिशन का एक गोल्फ संस्करण ।



3

पर्ल 6 , 21 बाइट्स

{$_==(-2)**(.lsb//0)}

कोशिश करो

विस्तारित:

{  # bare block lambda with implicit parameter 「$_」

  $_                  # is the input
  ==                  # equal to
  (-2)**( .lsb // 0 ) # -2 to the power of the least significant bit of the input
}

ध्यान दें कि 0.lsbरिटर्न Nilजो एक चेतावनी है जब, एक नंबर के रूप में इस्तेमाल इसलिए परिभाषित या ऑपरेटर का उत्पादन  //किया जाता है।
( एक अलग तिरछा के साथ के //रूप में सोचो ||)

एक विधि जिसमें कोई इनवोकेंट नहीं है, जहां एक शब्द की अपेक्षा की जाती है, को संक्षेप में कहा जाता है $_। ( .lsb)

के साथ भी काम करता है.msb


मैं यह पसंद है!
कथा 852150


3

पायथन , 24 बाइट्स

lambda n:n*n&n*n-1<n%3%2

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

बिट चाल की k&k-1==0जाँच करता है कि क्या k2 (या k==0) की शक्ति है । के लिए यह जांच की जा रही k=n*nके रूप में n*n&n*n-1==0हमें बताता है कि क्या abs(n)2 के एक शक्ति है।

यह देखने के लिए कि nक्या -2 की शक्ति है, हमें केवल यह जांचने की आवश्यकता है n%3==1। यह काम करता है क्योंकि mod 3, मान -2 1 के बराबर है, इसलिए इसकी शक्तियां 1. हैं, इसके विपरीत, उनकी नकारात्मकता 2 mod 3 हैं, और निश्चित रूप से 0 0 mod 3 देता है।

हम चेक n*n&n*n-1==0और n%3==1एक अभिव्यक्ति में जोड़ते हैं । पहले से लिखा जा सकता है <1के लिए ==0है, क्योंकि यह कभी नहीं नकारात्मक है। के n%3==1बराबर है n%3%2, 0 या 1 दे रहा है। इसलिए, हम उन्हें जोड़ सकते हैं n*n&n*n-1<n%3%2


2

आर, 22 बाइट्स

स्टड, रिटर्न TRUEया FALSEतदनुसार इनपुट लेता है ।

scan()%in%(-2)^(0:1e4)

मुझे 100% यकीन नहीं है कि यह एक मान्य उत्तर है, क्योंकि यह केवल आर के आकार की सीमा तक पूर्णांकों के लिए काम करता है, और यदि पूर्णांक अनबाउंड थे तो यह काम नहीं करेगा। हालाँकि, नियम राज्य:

सामान्य पूर्णांक ओवरफ़्लो नियम लागू होते हैं: आपका समाधान आपकी भाषा के एक काल्पनिक (या शायद वास्तविक) संस्करण में मनमाने ढंग से बड़े पूर्णांकों के लिए काम करने में सक्षम होना चाहिए जिसमें सभी पूर्णांक डिफ़ॉल्ट रूप से अनबाउंड हैं, लेकिन यदि आपका प्रोग्राम कार्यान्वयन के कारण अभ्यास में विफल रहता है पूर्णांक का समर्थन नहीं कर रहा है, जो समाधान को अमान्य नहीं करता है।

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

scan()%in%(-2)^(0:Inf)

बेशक, वास्तविक आर में, उपरोक्त कोड बस देता है Error in 0:Inf : result would be too long a vector


2

बीसी 88 बाइट्स

bc -l <<< "n=$1;q=l(sqrt(n*n));p=4*a(1);((n<1)*c(q/l(2)*p/2)+(n>1)*(s(q/l(4)*p)))^2==0"

मेरे पास यह एक फ़ाइल में है neg2.shऔर यह और अन्य 1की शक्तियों के लिए प्रिंट करता है-20

मुझे पता है कि यह वास्तव में लंबा है, लेकिन यह मजेदार था

परीक्षा

$ for i in {-129..257}; do echo -n "$i: "; ./neg2.sh $i; done | grep ': 1'
-128: 1
-32: 1
-8: 1
-2: 1
1: 1
4: 1
16: 1
64: 1
256: 1

व्याख्या

मुख्य शरीर में दो हिस्सों होते हैं, दोनों ही शक्तियों के लिए समान शून्य की कोशिश कर रहे हैं -2

q=l(sqrt(n*n))               % ln of the absolute value of the input
p=4*a(1)                     % pi: arctan(1) == pi/4
q/l(2) -> l(sqrt(n*n))/l(2)  % change of base formula -- this gives
                             % the power to which 2 is raised to equal
                             % sqrt(n*n). It will be an integer for 
                             % numbers of interest
n<1                          % 1 if true, 0 if false. for negative
                             % numbers check for powers of 2
n>1                          % for positive numbers, check for powers
                             % of 4
c(q/l(2)*p/2)                % cos(n*pi/2) == 0 for integer n (2^n)
s(q/l(4)*p)                  % sin(n*pi) == 0 for integer n (4^n)
(....)^2==0                  % square the result because numbers are
                             % not exactly zero and compare to 0

मैंने त्रिकोणमिति की कभी उम्मीद नहीं की थी! अच्छा उत्तर!
टॉबी स्पाइट


2

फूरियर , 53 बाइट्स

I~X1~N~G0(0-2*G~GX*X~PG*G>P{1}{0~O~N}G{X}{1~O0~N}N)Oo

मैं इसे बाद में गोल्फिंग पर काम करूंगा, लेकिन इसकी रूपरेखा इस प्रकार है:

X = User input
G = N = 1
Loop until N = 0
    G = -2 * G
    P = X*X 
    If G*G > P then
        N = O = 0
    End if
    If G = X then
        O = 1
        N = 0
    End if
End loop
Print O

कहाँ उत्पादन होता है 0के लिए falsey और 1के लिए truthy

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


एल्गो विवरण में बेहतर नहीं होगा कि आप P वेरिएबल का उपयोग करें और यदि G * G> X * X लिखें तो ...?
RosLuP

@RosLuP यह बेहतर होगा, लेकिन फूरियर बस के रूप में इलाज होगा कि(G*G > X)*X
बीटा Decay

2

कैसियो बेसिक , 76 बाइट्स

ध्यान दें कि मेरे कैलकुलेटर पर 76 बाइट्स हैं।

?→X
0→O
While Abs(X)≥1
X÷-2→X
If X=1
Then 1→O
IfEnd
WhileEnd
O

कैसियो बेसिक में यह मेरा पहला उद्यम है ... मुझे कभी भी एहसास नहीं हुआ कि मैं एक कैलकुलेटर पर इस तरह के सभ्य कार्यक्रम लिख सकता हूं: डी


1

पायथन 2.7, 40 बाइट्स

a=input()
while a%-2==0:a/=-2
print a==1

लंबाई 43 बाइट्स के मूल कोड के लिए श्री एक्सकोडर को क्रेडिट । एक अलग उत्तर के रूप में पोस्ट करना पड़ा क्योंकि मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है।


यह उसी तरह की बात है, चूंकि मैंने अपना उत्तर संस्करण-सार्वभौमिक बना दिया है, इसलिए यह पायथन 2 और 3 में काम करता है। यदि आप पायथन 3 में ऐसा करते हैं, तो आपको जोड़ा जाना चाहिए int(input())जो कि सीमा से अधिक हो गया है defकी तरह कार्य करते हैं। साथ ही, अजगर 3 में, आप का उपयोग करना चाहिए print(), जिनमें से 1 बाइट बर्बाद होगा। इसलिए मैंने उस तरह से चुना, क्योंकि पायथन 3 में यह लंबा हो जाता है ...
श्री एक्सकोडर

1

रेटिना , 27 बाइट्स

+`(1+)\1
$1_
^(1|-1_)(__)*$

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

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

+`(1+)\1\1\1
$1_
^(-1)?1_*$

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

इस बार मैं चार रूपांतरण को आधार बनाने के लिए आंशिक एकता करता हूं। चार की शक्तियां समाप्त होती हैं ^1_*$जबकि दो की नकारात्मक विषम शक्तियां समाप्त होती हैं ^-11_*$

+`\b(1111)*$
$#1$*
^(-1)?1$

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

इस बार मैं बस चार से विभाजित कर सकता हूं जितना मैं कर सकता हूं 1या -11अंत में जांच कर सकता हूं ।

+`\b(1+)\1\1\1$
$1
^(-1)?1$

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

चार से भाग देने का दूसरा तरीका। और अभी भी नाराज 27 बाइट्स ...


1

स्कीम, 60 बाइट्स

(define(f n)(cond((= 1 n)#t)((<(abs n)1)#f)(#t(f(/ n -2)))))

पुनरावर्ती समाधान।

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