एक के बाद एक OEIS


95

13/03/2018 16:45 UTC के अनुसार, विजेता स्क्रूबल द्वारा उत्तर # 345 है । इसका मतलब यह है कि प्रतियोगिता आधिकारिक तौर पर खत्म हो गई है, लेकिन बेझिझक जवाब पोस्ट करना जारी है, बस जब तक वे नियमों का पालन करते हैं।

साथ ही, उत्तर की संख्या के मामले में शीर्ष तीन उत्तरदाताओं के लिए बस एक त्वरित चिल्लाओ:

1. NieDzejkob - 41 उत्तर

2. केस्मार्ट - 30 उत्तर

3. हाइपर न्यूट्रिनो - 26 उत्तर


यह एक जवाब देने वाला सवाल है जो OEIS और पिछले सबमिशन की लंबाई से अनुक्रम का उपयोग करता है।

यह उत्तर चेनिंग प्रश्न निम्नलिखित तरीके से काम करेगा:

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

nएक दृश्य की वें अवधि अवधि n पहली बार तब जब बार, पहले मान अपनी OEIS पेज पर दिए गए पहले मूल्य जा रहा है के साथ काम कर रहा है। इस प्रश्न में, हम इन अनुक्रमों के लिए 0-अनुक्रमण का उपयोग करेंगे । उदाहरण के लिए, A000242 के साथ और n = 3, सही परिणाम 25 होगा ।

हालाँकि!

यह एक , इसलिए सबसे छोटा कोड कोई मायने नहीं रखता है। लेकिन आपके कोड की लंबाई पर अभी भी प्रभाव पड़ता है। अनुक्रमों के दोहराव को रोकने के लिए, आपका बाइटकाउंट अद्वितीय होना चाहिए । इसका मतलब यह है कि यहां प्रस्तुत कोई अन्य कार्यक्रम बाइट्स में आपकी लंबाई के समान नहीं हो सकता है ।

यदि अंतिम पोस्ट की लंबाई के लिए कोई अनुक्रम नहीं है, तो आपके पोस्ट के लिए अनुक्रम सबसे कम अप्रयुक्त अनुक्रम है। इसका अर्थ है कि उपयोग किए गए अनुक्रम भी अद्वितीय होने चाहिए, और यह कि अनुक्रम आपके बाइटकाउंट के समान नहीं हो सकता है।

एक उत्तर के बाद पोस्ट किया गया है और एक सप्ताह से अधिक के लिए कोई नया उत्तर पोस्ट नहीं किया गया है, अंतिम पोस्ट (श्रृंखला को तोड़ने वाला नहीं था) से पहले का जवाब जीत जाएगा।

इनपुट और आउटपुट

सामान्य इनपुट और आउटपुट नियम लागू होते हैं। इनपुट एक पूर्णांक या एक पूर्णांक का एक स्ट्रिंग प्रतिनिधित्व होना चाहिए और आउटपुट का अनुक्रम में सही मान होना चाहिए।

प्रारूपण

अधिकांश प्रश्नों के साथ, कृपया अपने उत्तर को इस तरह से प्रारूपित करें

# N. language, length, [sequence](link)

`code`

[next sequence](link)

*anything else*

नियम

  • पोस्ट करने के बाद, जवाब देने से पहले आपको कम से कम 1 घंटे इंतजार करना होगा।
  • आप एक पंक्ति में दो बार (या अधिक) पोस्ट नहीं कर सकते हैं।
  • किसी अनुक्रम की अनुक्रमणिका संख्या Aभाग के बाद की संख्या है , और हटाए गए अग्रणी शून्य के साथ (जैसे A000040सूचकांक संख्या 40 है)
  • आप यह मान सकते हैं कि न तो इनपुट और न ही आवश्यक आउटपुट आपकी भाषाओं के बाहर संख्यात्मक श्रेणी के होंगे, लेकिन उदाहरण के लिए केवल एक नंबर का उपयोग करने वाली भाषा का चयन करके इसका दुरुपयोग न करें।
  • यदि आपकी सबमिशन की लंबाई 65536 वर्णों से अधिक है, तो कृपया कोड तक पहुंचने के लिए एक तरीका प्रदान करें (उदाहरण के लिए पास्टबिन)।
  • n 1000 से बड़ा कभी नहीं होगा, या अनुक्रम के लिए सीमा से बाहर हो सकता है, बस सटीकता की विसंगतियों को एक भाषा को रोकने से रोकने के लिए।
  • प्रत्येक 150 (मान्य) उत्तर, किसी भाषा का उपयोग करने की संख्या में वृद्धि हो सकती है। इसलिए 150 समाधान पोस्ट किए जाने के बाद, प्रत्येक भाषा का दो बार उपयोग किया जा सकता है (पिछले सभी उत्तर इस ओर गिने जाते हैं)। उदाहरण के लिए, जब 150 उत्तर पोस्ट किए गए हैं, तो पायथन 3 का उपयोग दो बार किया जा सकता है, लेकिन इस तथ्य के कारण कि यह पहले ही एक बार उपयोग किया जा चुका है, इसका मतलब है कि इसका उपयोग केवल एक बार और किया जा सकता है जब तक कि 300 उत्तर पोस्ट नहीं किए गए हों।
  • कृपया मददगार बनें और उपयोग किए जाने वाले अगले अनुक्रम का लिंक पोस्ट करें। यह आवश्यक नहीं है, लेकिन एक सिफारिश है।
  • भाषाओं के विभिन्न संस्करण, जैसे पायथन 2 और पायथन 3 अलग - अलग भाषाएं हैं । एक सामान्य नियम के रूप में, यदि अलग-अलग संस्करण दोनों Try It Online पर उपलब्ध हैं, तो वे अलग-अलग भाषाएं हैं, लेकिन ध्यान रखें कि यह एक सामान्य नियम है और कठोर उत्तर नहीं है।
  • यह प्रतिबंधित नहीं है, लेकिन कृपया OEIS पृष्ठ से कोड को कॉपी न करने का प्रयास करें, और वास्तव में इसे हल करने का प्रयास करें।
  • यदि अनुक्रम परिमित है तो हार्डकोडिंग की अनुमति है। कृपया ध्यान दें कि इस ( # 40 ) को इंगित करने वाला उत्तर नियम का अपवाद है। चेन हार्डकोड में कुछ उत्तर जल्दी, लेकिन इन्हें अनदेखा किया जा सकता है, क्योंकि # 100 तक की श्रृंखला को हटाने में कोई अच्छा नहीं है।

उत्तर श्रृंखला स्निपेट


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

क्या यह ठीक है अगर किसी प्रोग्राम को बिलिन float/ doubleटाइप के लिए बेहतर फ्लोटिंग-पॉइंट सटीकता की आवश्यकता होगी ताकि बड़े के लिए मान उत्पन्न हो सके n?
NieDzejkob

1
@Giuseppe नहीं, जैसा कि आप मैथ्स करके नंबर जेनरेट कर रहे हैं, बल्कि उन्हें एक अरै / स्ट्रिंग में रखने के बजाय
caird coinheringaahing

2
@cairdcoinheringaahing मेरी राय में यह गामा हार्डकॉन्ड है। यह बड़ी संख्या के लिए "सिद्धांत रूप में" काम नहीं करता है।
user202729

जवाबों:


4

345. ब्रेनफक , 162 बाइट्स, A000301

+<<,[>>[>]<<[>>+>+<<<-]>>>[<<<+>>>-]<<[>+>+<<-]>>[<<+>>-]<[<]<-]>>[>]+<[-]++<[>[>>+>+<<<-]>>>[<<<+>>>-]<<[>[>+>+<<-]>>[<<+>>-]<<<-]>[-]>[<<+>>-]<<<<-]>>too golfy.

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

अगला क्रम!

यह कोड पॉइंट n(BF के स्पेक्स द्वारा) और उसी तरह से आउटपुट के साथ कैरेक्टर को इनपुट करता है । संख्याओं को देखने के लिए, मैं @ टिमवी के एसोटेरिकाइड का उपयोग करने का सुझाव देता हूं ।

स्पष्टीकरण:

+<<,                                  Initialize the tape with the first two Fibonacci numbers. Take loop counter from input.
[                                     n times:
  >>[>]                                 Move to the end of the tape. 
  <<[>>+>+<<<-]>>>[<<<+>>>-]            Add fib(n-2)...
  <<[>+>+<<-]>>[<<+>>-]                 and fib(n-1). Store on the end of the tape.
  <[<]<-                                Move back to start of tape. Update loop counter.
]                                     End loop.
>>[>]+<[-]++<                         Delete the extra Fibonacci number and prepare for exponentiation. 
[                                     fib(n) times:
  >[>>+>+<<<-]>>>[<<<+>>>-]<<           Copy the base (2) to preserve it.
  [>[>+>+<<-]>>[<<+>>-]<<<-]            Multiply what started as a 1 by the base.
  >[-]>[<<+>>-]<<<<-                    Clean up and update loop counter.
]                                     End loop.
>>too golfy.                          Add some bytes, for all sequences <162 had been used. Print result. 

चूंकि यह सभी फाइबोनैचि संख्याओं को महत्वपूर्ण में संग्रहीत करता है, यह एक बंधे टेप पर वास्तव में बड़े इनपुट के लिए विफल हो जाएगा।

बेस (2) को हार्डकोड करके इसे काफी छोटा किया जा सकता है, लेकिन गोल्फ में कोई समस्या नहीं है।


अगले उत्तर (# 346) के रूप में श्रृंखला टूट गई, आपका उत्तर विजेता है!
केयर्ड कॉइनरहाइडिंग

1
@cairdcoinheringaahing इस अद्भुत चुनौती के लिए धन्यवाद। यह मुझे दुखद है कि इसे अब समाप्त हो जाना चाहिए, लेकिन जैसा कि दुनिया में सभी अच्छे काम करते हैं, समाप्त हो गया। अब कोड के लिए इस खराब बहाने को गोल्फ के लिए, क्योंकि अब यह पहला जवाब है जिसे कोई भी देखेगा, और यह प्रभावशाली रूप से छोटा होना चाहिए ...
खुल्द्रेसथ ना'बरिया

@Sroroble आप वास्तव में लंबाई नहीं बदल सकते हैं ...
NieDzejkob

@NieDzejkob हाँ, लेकिन मैं एक ही लंबाई रखने के लिए गोल्फ और कुछ और पैडिंग जोड़ सकता हूं।
खुल्द्रेसथ ना'बरिया

@cairdcoinheringaahing "चेन तोड़ दी"? इसका क्या मतलब है?
मैजिक ऑक्टोपस Urn

40

22. FiM ++ , 982 बाइट्स, A000024

नोट : यदि आप इसे पढ़ रहे हैं, तो आप "सबसे पुराने" द्वारा क्रमबद्ध करना चाह सकते हैं

Dear PPCG: I solved A000024!

I learned how to party to get a number using the number x and the number y.
Did you know that the number beers was x?
For every number chug from 1 to y,
  beers became beers times x!
That's what I did.
Then you get beers!
That's all about how to party.

Today I learned how to do math to get a number using the number n.
Did you know that the number answer was 0?
For every number x from 1 to n,
  For every number y from 1 to n,
    Did you know that the number tmp1 was how to party using x and 2?
    Did you know that the number tmp2 was how to party using y and 2?
    Did you know that the number max was how to party using 2 and n?
    tmp2 became tmp2 times 10!
    tmp1 became tmp1 plus tmp2!
    If tmp1 is more than max then: answer got one more.
  That's what I did.
That's what I did.
Then you get answer!
That's all about how to do math.

Your faithful student, BlackCap.

PS:  This is the best answer
PPS: This really is the best answer

अगला क्रम


10
हाहाहा, पूरी बात से हँसा। +1 भाषा की पसंद के लिए :-)
ETHproductions

कमाल है, मेरे upvote
downrep_nation

22

1. त्रिकोणीय , 10 बाइट्स, A000217

$\:_%i/2*<

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

अगला क्रम

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

इस त्रिकोण में कोड स्वरूप

   $
  \ :
 _ % i
/ 2 * <

आईपी ​​के साथ शुरू होने $और दक्षिण पूर्व (एसई, हेह) को आगे बढ़ाने, इस तरह से काम करता है:

$            Take a numerical input (n);     STACK = [n]
 :           Duplicate it;                   STACK = [n, n]
  i          Increment the ToS;              STACK = [n, n+1]
   <         Set IP to W;                    STACK = [n, n+1]
    *        Multiply ToS and 2ndTos;        STACK = [n(n+1)]
     2       Push 2;                         STACK = [n(n+1), 2]
      /      Set IP to NE;                   STACK = [n(n+1), 2]
       _     Divide ToS by 2ndToS;           STACK = [n(n+1)/2]
        \    Set IP to SE (heh);             STACK = [n(n+1)/2]
         %   Output ToS as number;           STACK = [n(n+1)/2]
          *  Multiply ToS by 2ndToS (no op); STACK = [n(n+1)/2]

13
1. त्रिकोणीय, 10 बाइट्स, A000217। * लिंक का अनुसरण करता है * A000217 Triangular numbers...
MD XF

22

73. तारों से , 363 बाइट्स, A000252

, +      + *     '.     `
 + + + +  *  *  *  +     
 +`      +*       +    ` 
 + +   +  + +   + *  '   
   +   '  ####`  + +   + 
 + +    ####  +*   +    *
    '  #####  +      + ' 
  `    ######+  + +   +  
+ +   + #########   * '  
 +   +  + #####+ +      +
*  +      + * +  *  *   +
   +  *  + + + +  *  *   
+   +  +   *   + `  + +  
 +  + +   + *'    +    +.

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

अगला क्रम

सूत्र का उपयोग करता है " a(n) = n^4 * product p^(-3)(p^2 - 1)*(p - 1)जहां उत्पाद ओईआईएस से सभी विभाजन पी से अधिक है जो एन को विभाजित करता है"।

चंद्रमा एक नहीं है, लेकिन हे, यह कोड-गोल्फ नहीं है।


चाँद में तारे? हममम
betseg

19

97. पायथन 3 (PyPy) , 1772 बाइट्स, A000236

सबसे पहले, मेरे साथ धैर्य रखने के लिए डॉ मैक्स अलेक्सेयेव को बहुत धन्यवाद। मैं बहुत भाग्यशाली हूं कि मैं इस चुनौती को समझने के लिए ईमेल द्वारा उनसे संपर्क कर पाया। उनकी Math.SE जवाब यहाँ मेरी बहुत मदद की। मेरी मदद करने के लिए गेहूं जादूगर को धन्यवाद। :)

plist = []

def primes(maximal = -1): # Semi-efficient prime number generator with caching up to a certain max.
	index = plist and plist[-1] or 2
	for prime in plist:
		if prime <= maximal or maximal == -1: yield prime
		else: break
	while index <= maximal or maximal == -1:
		composite = False
		for prime in plist:
			if index % prime == 0:
				composite = True
				break
		if not composite:
			yield index
			plist.append(index)
		index += 1

def modinv(num, mod): # Multiplicative inverse with a modulus
	index = 1
	while num * index % mod != 1: index += 1
	return index

def moddiv(num, dnm, mod):
	return num * modinv(dnm, mod) % mod

def isPowerResidue(num, exp, mod):
	for base in range(mod):
		if pow(base, exp, mod) == num:
			return base
	return False

def compute(power, prime):
	for num in range(2, prime):
		if isPowerResidue(moddiv(num - 1, num, prime), power, prime):
			return num - 1
	return -1

# file = open('output.txt', 'w')

def output(string):
	print(string)
	# file.write(str(string) + '\n')

def compPrimes(power, count):
	maximum = 0
	index = 0
	for prime in getValidPrimes(power, count):
		result = compute(power, prime)
		if result > maximum: maximum = result
		index += 1
		# output('Computed %d / %d = %d%% [result = %d, prime = %d]' % (index, count, (100 * index) // count, result, prime))
	return maximum

def isValidPrime(power, prime):
	return (prime - 1) % power == 0

def getValidPrimes(power, count):
	collected = []
	for prime in primes():
		if isValidPrime(power, prime):
			collected.append(prime)
		if len(collected) >= count:
			return collected
		# output('Collected %d / %d = %d%% [%d]' % (len(collected), count, (100 * len(collected)) // count, prime))

power = int(input()) + 2

output(compPrimes(power, 100))

# file.close()

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

यदि यह गलत परिणाम देता है, तो बस 100 को कुछ बड़ा करें। मुझे लगता है कि 10000 4 के लिए काम करेगा, लेकिन मैं इस बात की पुष्टि करने के लिए अपने कंप्यूटर को रात भर चला जाऊंगा; इसे खत्म होने में कुछ घंटे लग सकते हैं।

ध्यान दें कि (PyPy) भाग सिर्फ इतना है कि मैं फिर से पायथन का उपयोग कर सकता हूं। मैं वास्तव में कई अन्य भाषाओं को नहीं जानता और मैं इसे जावा में पोर्ट करने की कोशिश नहीं कर रहा हूं और समय पर खत्म नहीं होने का जोखिम उठा रहा हूं।

अगली सीक्वेंस (कृपया कोई और पागल गणित का सामान न करें; मेरे पास कोई पायथन संस्करण नहीं बचा है, इसलिए किसी और को इस चुनौती को बचाना होगा डी :)


अच्छी तरह से वहाँ हमेशा pypy3 है
केवल

15

107. ट्रम्पस्क्रिप्ट , 1589 बाइट्स, A000047

My cat hears everything really well
because with me every cat is a safe cat
Everybody knows that one is 1000001 minus 1000000
but only most of you that two is, one plus one;
As always nothing is, one minus one;
My dog is one year old.
I promise you that as long as you vote on me, nothing will be less cool than a cat;:
Much dog is, dog times two;
Dead cat is, cat minus one;!
I will make dog feel good, food for dog plus one;
Roads can be made using different things. Asphalt is one of them.
As long as Hillary jailed, I love asphalt less than my dog;:
Roads are, always made using asphalt plus one of other things;
I promise my roadways are, two times asphalt than you want;
My roadways are great, always roadways plus one;
Vladimir is nothing more than my friend.
Name of Putin is Vladimir.
As long as, Putin eat less roadways;:
China is nothing interesting.
We all know people speaking Chinese are from China.
As long as, Chinese makes less roads;:
I will make economy, for Putin - Chinese will love me;
If it will mean, economy is asphalt in Russia?;:
I will make cat feel good, cat plus one dollar on food;
Make Vladimir roadways to help Russia economy.
Never make china roads!
I show you how great China is, China plus one; You can add numbers to China.
Like Chinese is, China times China makes sense;
Like Chinese is, two times Chinese letter;!
Make Vladimir happy, Vladimir plus one million dollars;
I also show you how great Putin is, Vladimir times Vladimir; You can do number stuff to Putin too!
I will make asphalt roads a lot!
Everybody say cat. You did it? America is great.

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

ट्रम्पस्क्रिप्ट में पहली बार प्रोग्रामिंग, यह संभव है कि मैंने पहिया को कुछ बार फिर से मजबूत किया - 4 लाइनें 2 ^ n की गणना के लिए समर्पित हैं। मैंने इसे कुछ ऐसा बनाने की कोशिश की जो (नशे में) ट्रम्प कह सके। एक बोनस के रूप में, यहां एक पायथन स्क्रिप्ट है जिसे मैंने यह सत्यापित करने के लिए लिखा था कि मैं सब कुछ ठीक कर रहा हूं। उपर्युक्त कार्यक्रम के कुछ अंतर हैं, लेकिन इसमें से अधिकांश सीधे समकक्ष हैं।

cat = int(input())
dog = 2 ** cat + 1
asphalt = 1
cat = 0
while asphalt < dog:
    roads = asphalt + 1
    roadways = 2 * asphalt + 1
    vladimir = 0
    putin = vladimir
    while putin < roadways:
        china = 0
        chinese = china
        while chinese < roads:
            chair = putin - chinese
            if chair == asphalt:
                cat += 1
                vladimir = roadways
                china = roads
            china += 1
            chinese = 2 * china * china
        vladimir += 1
        putin = vladimir * vladimir
    asphalt = roads
print(cat)

अगला क्रम!


3
I will make cat feel goodO_O
व्यवसाय बिल्ली

अफसोस की बात I will make Business Cat feel goodनहीं काम करेगा ...
NieDzejkob

14

30. पायथन 1 , 1112 बाइट्स, A000046

def rotations(array):
	rotations = []
	for divider_index in range(len(array)):
		rotations.append(array[divider_index:] + array[:divider_index])
	return rotations

def next(array):
	for index in range(len(array) - 1, -1, -1):
		array[index] = 1 - array[index]
		if array[index]: break
	return array

def reverse(array):
	reversed = []
	for index in range(len(array) - 1, -1, -1):
		reversed.append(array[index])
	return reversed

def primitive(array):
	for index in range(1, len(array)):
		if array == array[:index] * (len(array) / index): return 1
	return 0

def necklaces(size):
	previous_necklaces = []
	array = [0] * size
	necklaces = 0
	for iteration in range(2 ** size):
		if not primitive(array) and array not in previous_necklaces:
			necklaces = necklaces + 1
			for rotation in rotations(array):
				complement = []
				for element in rotation:
					complement.append(1 - element)
				previous_necklaces.append(rotation)
				previous_necklaces.append(complement)
				previous_necklaces.append(reverse(rotation))
				previous_necklaces.append(reverse(complement))
		array = next(array)
	return necklaces

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

यह भी गोल्फ को परेशान करने वाला नहीं है। अरे, यह इस साइट पर मेरा सबसे लंबा पायथन जवाब नहीं है!

अगला क्रम


1
गणित को डिकोड करने के लिए बधाई: D
लीक नून


@LeakyNun जैसा कि मैं कह रहा था, मैं इस योग्य को परेशान नहीं करता था। इसके अलावा, यह इस साइट पर मेरा सबसे लंबा पायथन का जवाब नहीं है इसलिए
id

@LeakyNun और धन्यवाद: D मुझे यह सब समझने में
थोड़ा समय लगा

@LeakyNun 309 बाइट क्योंकि _अप्रासंगिक का वास्तविक मूल्य है; हमें बस इसे कई बार दोहराने की जरूरत है
हाइपरएन्यूट्रीनो

13

2. हास्केल, 44 बाइट्स, A000010

f k|n<-k+1=length.filter(==1)$gcd n<$>[1..n]

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

अगला क्रम


12
हालांकि अगले सीक्वेंस का नाम ...
जुआन

@totallyhuman गरीब खरगोश ...
निकोलस जूल

क्या हमें पिछली पोस्ट से लिंक करना चाहिए?
लीक नन

यह मुझे पीड़ा देता है कि मैं इसे अब गोल्फ नहीं कर सकता। मुझे सबसे पहले आपको देखना था
BlackCap

वह अगला क्रम क्या है? मैं तीनों को नहीं समझता: पी
बीटा डेके

13

9. पायथ , 19 बाइट्स, A000025

?>Q0sm@_B1-edld./Q1

टेस्ट सूट

अगला क्रम

a (n) = विषम संख्या वाले रैंक माइनस नंबर के साथ n के विभाजन की संख्या। एक विभाजन की श्रेणी इसके सबसे बड़े हिस्से का हिस्सा है।


उन लोगों के लिए, जो पाइथ को जानते हैं, मैंने जानबूझकर इसका उपयोग >Q0करने के बजाय Q, आप जानते हैं, A000019 होने का अगला क्रम है।
लीक नून

1
OEIS पृष्ठ सेKeywords: easy,nice
BlackCap

@LeakyNun हाँ, अन्यथा मुझे A000017 को हल करना होगा ... सकल।
आउटगोल्फ जूल

12

8. गणितज्ञ (10.1), 25 बाइट्स, A000070

Tr@PartitionsP@Range@#+1&

अगला क्रम


के लिए Mathematica का उपयोग करने के लिए सही क्रम।
लीक नन

1
A000025 एक अविश्वसनीय रूप से कठिन है। इसके बजाय A000026 पाने के लिए आपको एक बाइट जोड़ना चाहिए। : पी
एमडी एक्सएफ

12

206. प्रोटॉन , 3275 बाइट्स, A000109

# This took me quite a while to write; if it's wrong, please tell me and I'll try to fix it without changing the byte count..

permutations = x => {
	if len(x) == 0 return [ ]
	if len(x) == 1 return [x]
	result = []
	for index : range(len(x)) {
		for permutation : permutations(x[to index] + x[index + 1 to]) {
			result.append([x[index]] + permutation)
		}
	}
	return result
}

adjacency = cycles => {
	cycles = cycles[to]
	size = cycles.pop()
	matrix = [[0] * size for i : range(size)]
	for cycle : cycles {
		i, j, k = cycle[0], cycle[1], cycle[2]
		matrix[i][j] = matrix[i][k] = matrix[j][i] = matrix[j][k] = matrix[k][i] = matrix[k][j] = 1
	}
	return matrix
}

transform = a => [[a[j][i] for j : range(len(a[i]))] for i : range(len(a))]

isomorphic = (a, b) => {
	return any(sorted(b) == sorted(transform(A)) for A : permutations(transform(a)))
}

intersection = (a, b) => [x for x : a if x in b]

union = (a, b) => [x for x : a if x not in b] + list(b)

validate = graph => {
	matrix = adjacency(graph)
	rowsums = map(sum, matrix)
	r = 0
	for s : rowsums if s + 1 < graph[-1] r++
	return 2 || r
}

graphs = nodes => {
	if nodes <= 2 return []
	if nodes == 3 return [[(0, 1, 2), 3]]
	result = []
	existing = []
	for graph : graphs(nodes - 1) {
		graph = graph[to]
		next = graph.pop()
		for index : range(len(graph)) {
			g = graph[to]
			cycle = g.pop(index)
			n = g + [(cycle[0], cycle[1], next), (cycle[1], cycle[2], next), (cycle[2], cycle[0], next), next + 1]
			N = sorted(adjacency(n))
			if N not in existing {
				existing += [sorted(transform(a)) for a : permutations(transform(adjacency(n)))]
				result.append(n)
			}
			for secondary : index .. len(graph) - 1 {
				g = graph[to]
				c1 = g.pop(index)
				c2 = g.pop(secondary)
				q = union(c1, c2)
				g = [k for k : g if len(intersection(k, intersection(c1, c2))) <= 1]
				if len(intersection(c1, c2)) == 2 {
					for i : range(3) {
						for j : i + 1 .. 4 {
							if len(intersection(q[i, j], intersection(c1, c2))) <= 1 {
								g.append((q[i], q[j], next))
							}
						}
					}
				}
				g.append(next + 1)
				N = sorted(adjacency(g))
				if N not in existing {
					existing += [sorted(transform(a)) for a : permutations(transform(adjacency(g)))]
					result.append(g)
				}
				for tertiary : secondary .. len(graph) - 2 {
					g = graph[to]
					c1 = g.pop(index)
					c2 = g.pop(secondary)
					c3 = g.pop(tertiary)
					q = union(union(c1, c2), c3)
					g = [k for k : g if len(intersection(k, intersection(c1, c2))) <= 1 and len(intersection(k, intersection(c2, c3))) <= 1]
					if len(q) == 5 and len(intersection((q1 = intersection(c1, c2)), (q2 = intersection(c2, c3)))) <= 1 and len(q1) == 2 and len(q2) == 2 {
						for i : range(4) {
							for j : i + 1 .. 5 {
								if len(intersection(q[i, j], q1)) <= 1 and len(intersection(q[i, j], q2)) <= 1 {
									g.append((q[i], q[j], next))
								}
							}
						}
						g.append(next + 1)
						N = sorted(adjacency(g))
						if N not in existing {
							existing += [sorted(transform(a)) for a : permutations(transform(adjacency(g)))]
							result.append(g)
						}
					}
				}
			}
		}
	}
	return [k for k : result if max(sum(k[to -1], tuple([]))) + 1 == k[-1] and validate(k)]
}

x = graphs(int(input()) + 3)
print(len(x))

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

अगला क्रम


रुको, तुम वास्तव में यह किया था? यदि आप इन डरावने कार्यक्रमों के साथ एक पेपर नहीं लिखते हैं और किसी प्रोफेसर से बात करते हैं, तो आप कुछ शांत कर रहे हैं: P
स्टीफन

@ स्टेफेन वर्तमान में बगलिफ्टिंग लोल
हाइपरएनुट्रिनो

क्या यह पौधशाला के अनुसार त्रिभुज, वर्ग और पंचकोनों को विभाजित करने का दृष्टिकोण है? ऐसा लगता है कि यह हो सकता है, लेकिन कुछ वाक्य रचना अपरिचित है।
पीटर टेलर

1
@PeterTaylor मान लें कि आप जिस दृष्टिकोण का वर्णन कर रहे हैं, मुझे समझ में आता है, हाँ, यह त्रिभुजों की तलाश करता है और सभी 3 कोने, या दो आसन्न चक्रों से सटे एक शीर्ष स्थान रखता है और सामान्य किनारे को हटा देता है और सभी 4 के समीप स्थित एक शिखर, 3 त्रिकोणों के लिए समान होता है। एक पंचकोण पर। मुझे लगता है कि वह एक है जिसका आप वर्णन कर रहे हैं।
हाइपरनेत्रिनो


12

308. ENIAC (सिम्युलेटर) , 3025 बाइट्स, A006060

स्यूडोकोड:

repeat{
    M←input
    N←-M
    A←1
    B←253
    while(N<0){
        C←60
        C←C-A
        repeat(194){
            C←C+B
        }
        A←B
        B←C
        N←N+1
    }
    output←A
}

कोई ऑनलाइन सिम्युलेटर, निष्पादन परिणाम: कार्ड रीडर इनपुट पंच कार्ड आउटपुट

रजिस्टर और स्थिरांक:

A: 1-2
B: 3-4
C: 5-6
M: 7
N: 8

input: const. A
253: const. J
60: const. K
194: Master programmer decade limit 1B

कार्यक्रम संकेत प्रवाह और डेटा प्रवाह: प्रोग्राम सिग्नल फ्लो और डेटा फ्लो चार्ट

इस उत्तर के मार्कअप में पास्टेबिन पर या HTML टिप्पणियों में पूर्ण "कोड" , एक ही समय में स्क्रॉल करने के लिए लिंकरोट और काफी लंबे उत्तर को रोकने के लिए। यह मजेदार है!

अगला क्रम


क्या आप अगले सीक्वेंस में एक लिंक जोड़ सकते हैं
Zacharý

@ Zacharý लिंक पोस्ट में है। मैं इसे पोस्ट के अंत में स्थानांतरित कर दूंगा ताकि इसे ढूंढना आसान हो जाए।
leo3065

12

15. सीजेएम, 85 बाइट्स, ए 100,000 60

{ee\f{\~\0a*@+f*}:.+}:C;2,qi:Q,2f+{_ee1>{~2*\,:!X*X<a*~}%{CX<}*W=+}fX_0a*1$_C.- .+Q)=

ऑनलाइन डेमो

अगला क्रम

विच्छेदन

OEIS देता है

Gf: S (x) + S (x ^ 2) -S (x) ^ 2, जहां S (x) A000151 के लिए जनरेटिंग फंक्शन है। - पाब टेर, 12 अक्टूबर 2005

कहाँ पे

S(x)=xi11(1xi)2s(i)=xi1(1+xi+x2i+)2s(i)
{           e# Define a block to convolve two sequences (multiply two polynomials)
  ee\f{     e#   Index one and use the other as an extra parameter for a map
    \~\0a*  e#     Stack manipulations; create a sequence of `index` 0s
    @+f*    e#     Shift the extra parameter poly and multiply by the coefficient
  }
  :.+       e#   Fold pointwise add to sum the polys
}:C;        e# Assign the block to C (for "convolve")
2,          e# Initial values of S: S(0) = 0, S(1) = 1
qi:Q        e# Read integer and assign it to Q
,2f+{       e# For X = 2 to Q+1
  _ee1>     e#   Duplicate accumulator of S, index, and ditch 0th term
  {         e#   Map (over notional variable i)
    ~2*\    e#     Double S(i) and flip i to top of stack
    ,:!     e#     Create an array with a 1 and i-1 0s
    X*X<    e#     Replicate X times and truncate to X values
            e#     This gives g.f. 1/(1-x^i) to the first X terms
    a*~     e#     Create 2S(i) copies of this polynomial
  }%
  {CX<}*    e#   Fold convolution and truncation to X terms
  W=+       e#   Append the final coefficient, which is S(X), to the accumulator
}fX
_0a*        e# Pad a copy to get S(X^2)
1$_C        e# Convolve two copies to get S(X)^2
.-          e# Pointwise subtraction
 .+         e# Pointwise addition. Note the leading space because the parser thinks
            e# -. is an invalid number
Q)=         e# Take the term at index Q+1 (where the +1 adjusts for OEIS offset)

1 मिनट और 33 सेकंड मेरे आगे ... जब मैं स्पष्टीकरण टाइप कर रहा था
लीक

11

67. LOLCODE , 837 बाइट्स, A000043

HAI 1.2
  CAN HAS STDIO?

  I HAS A CONT ITZ 0
  I HAS A ITRZ ITZ 1
  I HAS A NUMBAH
  GIMMEH NUMBAH
  NUMBAH R SUM OF NUMBAH AN 1

  IM IN YR GF
    ITRZ R SUM OF ITRZ AN 1

    I HAS A PROD ITZ 1
    IM IN YR MOM UPPIN YR ASS WILE DIFFRINT ITRZ AN SMALLR OF ITRZ AN ASS
      PROD R PRODUKT OF PROD AN 2
    IM OUTTA YR MOM
    PROD R DIFF OF PROD AN 1

    I HAS A PRAIME ITZ WIN
    I HAS A VAR ITZ 1
    IM IN YR MOM
      VAR R SUM OF VAR AN 1
      BOTH SAEM VAR AN PROD, O RLY?
        YA RLY, GTFO
      OIC
      BOTH SAEM 0 AN MOD OF PROD AN VAR, O RLY?
        YA RLY
          PRAIME R FAIL
          GTFO
      OIC
    IM OUTTA YR MOM

    BOTH SAEM PRAIME AN WIN, O RLY?
      YA RLY, CONT R SUM OF CONT AN 1
    OIC

    BOTH SAEM NUMBAH AN CONT, O RLY?
      YA RLY, GTFO
    OIC
  IM OUTTA YR GF

  VISIBLE ITRZ
KTHXBYE

मेरी कैप्सलॉक कुंजी भागने के लिए बाध्य है, इसलिए मैंने शिफ्ट करते हुए यह पूरी बात लिखी है।

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

अगला क्रम


+1 का उपयोग करने के लिएPRAIME
Leaky Nun

3
आप एक प्रोग्रामर हैं, आप इसे लिख सकते हैं और फिर इसे पायथन स्क्रिप्ट के माध्यम से चला सकते हैं कि upper'd it.-
स्टीफन

5
@StepHen या सीधे शब्दों में कहें तो gggUGजहाँ मैंने इसे लिखा था, लेकिन मैं इतना चालाक नहीं हूँ
BlackCap

10

10. मैग्मा, 65 बाइट्स, A000019

f:=function(n);return NumberOfPrimitiveGroups(n+1);end function;

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

LOL बिलिन

अगला क्रम


@ETHproductions :) कोई बात नहीं, OEIS पेज को धन्यवाद दें, हालांकि cuz में इसका बिलकुल
बिल्ट

4
; _; मैंने A000064 को हल किया और आपने इसे बदल दिया। Downvoted।
लीक नन

मेरा
गश

मैंने पायथन ( TIO ) में ऐसा करने की कोशिश करते समय गलती से A007317 को हल कर दिया : P
ETHproductions

पुनः upvoted! \ o /
लीक नून


9

121. पिप , 525 बाइट्स, A000022

n:(a+1)//2
t:[[0]RL(3*a+3)PE1]
Fh,n{
  m:([0]RL(3*a+3))
  Fi,(a+1){
    Fj,(a+1){
      Fk,(a+1)m@(i+j+k)+:(t@h@i)*(t@h@j)*(t@h@k)
      m@(i+2*j)+:3*(t@h@i)*(t@h@j)
    }
    m@(3*i)+:2*(t@h@i)
  }
  t:(tAE(m//6PE1))
}
k:t@n
o:0
Fh,aFi,aFj,aI(h+i+j<a)o+:(k@h)*(k@i)*(k@j)*k@(a-1-h-i-j)
Fh,((a+1)//2){
  Fi,aI(2*h+i<a){o+:6*(k@h)*(k@i)*(k@(a-1-2*h-i))}
  I(a%2=1)o+:3*(k@h)*(k@((a-1-2*h)//2))
}
Fh,((a+2)//3)o+:8*(k@h)*(k@(a-1-3*h))
I(a%4=1)o+:6*k@(a//4)
o//:24
Ia(o+:t@n@a)
Fh,nFj,(a+1)o-:(t@(h+1)@j-t@h@j)*(t@(h+1)@(a-j))
o

ऑनलाइन डेमो

अगला क्रम

मजेदार तथ्य: जब चुनौती पहली बार पोस्ट की गई थी, तो मैंने छोटे गंदे अनुक्रम संख्याओं की एक सूची तैयार की, जिन्हें मैं सीजेएम के साथ करना चाहता था, और A000022 सूची में सबसे ऊपर था।

यह ईएम रेंस और एनजेए स्लोन, ऑन केली के एन्यूमरेशन ऑफ अल्कनेस (या 4-वैलेंटाइन ट्रीज) , जर्नल ऑफ इंटेगर सीक्वेंस, वॉल्यूम में वर्णित फ़ंक्शन को कार्यान्वित करता है । 2 (1999), वें गुणांक के लिए आवश्यक के रूप में कई शर्तों के लिए राशि ले रही है और फिर राशि के तीन चौथाई दूरबीन। विशेष रूप से, पहली छमाही को दूरबीन करने का मतलब है कि केवल उन सभी में से एक के बजाय चक्र सूचकांक को लागू किया जाना है।CknS4Th

कोड के रूप में टूट जाता है

; Calculate the relevant T_h
t:[[0]RL(3*a+3)PE1]
Fh,n{
  m:([0]RL(3*a+3))
  Fi,(a+1){
    Fj,(a+1){
      Fk,(a+1)m@(i+j+k)+:(t@h@i)*(t@h@j)*(t@h@k)
      m@(i+2*j)+:3*(t@h@i)*(t@h@j)
    }
    m@(3*i)+:2*(t@h@i)
  }
  t:(tAE(m//6PE1))
}

; Calculate the cycle index of S_4 applied to the last one
k:t@n
o:0
Fh,aFi,aFj,aI(h+i+j<a)o+:(k@h)*(k@i)*(k@j)*k@(a-1-h-i-j)
Fh,((a+1)//2){
  Fi,aI(2*h+i<a){o+:6*(k@h)*(k@i)*(k@(a-1-2*h-i))}
  I(a%2=1)o+:3*(k@h)*(k@((a-1-2*h)//2))
}
Fh,((a+2)//3)o+:8*(k@h)*(k@(a-1-3*h))
I(a%4=1)o+:6*k@(a//4)
o//:24

; Handle the remaining convolution,
; pulling out the special case which involves T_{-2}
Ia(o+:t@n@a)
Fh,nFj,(a+1)o-:(t@(h+1)@j-t@h@j)*(t@(h+1)@(a-j))

ध्यान दें कि यह मेरा पहला पिप कार्यक्रम है, इसलिए शायद बहुत मुहावरेदार नहीं है।


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

9

156. C # (मोनो), 2466 बाइट्स, A000083

नोट: स्कोर कोड के लिए 2439 बाइट्स और संकलक ध्वज के लिए 27 है -reference:System.Numerics

using Num = System.Numerics.BigInteger;
namespace PPCG
{
    class A000083
    {
        static void Main(string[] a)
        {
            int N = int.Parse(a[0]) + 1;

            var phi = new int[N + 1];
            for (int i = 1; i <= N; i++)
                phi[i] = 1;
            for (int p = 2; p <= N; p++)
            {
                if (phi[p] > 1) continue;
                for (int i = p; i <= N; i += p)
                    phi[i] *= p - 1;
                int pa = p * p;
                while (pa <= N)
                {
                    for (int i = pa; i <= N; i += pa)
                        phi[i] *= p;
                    pa *= p;
                }
            }

            var aik = new Num[N + 1, N + 1];
            var a035350 = new Num[N + 1];
            var a035349 = new Num[N + 1];
            aik[0, 0] = aik[1, 1] = a035350[0] = a035350[1] = a035349[0] = a035349[1] = 1;
            for (int n = 2; n <= N; n++)
            {
                // A000237 = EULER(A035350)
                Num nbn = 0;
                for (int k = 1; k < n; k++)
                    for (int d = 1; d <= k; d++)
                        if (k % d == 0) nbn += d * a035350[d] * aik[1, n - k];
                aik[1, n] = nbn / (n - 1);

                // Powers of A000237 are used a lot
                for (int k = 2; k <= N; k++)
                    for (int i = 0; i <= n; i++)
                        aik[k, n] += aik[k - 1, i] * aik[1, n - i];

                // A035350 = BIK(A000237)
                Num bn = 0;
                for (int k = 1; k <= n; k++)
                {
                    bn += aik[k, n];
                    if (k % 2 == 1)
                        for (int i = n & 1; i <= n; i += 2)
                            bn += aik[1, i] * aik[k / 2, (n - i) / 2];
                    else if (n % 2 == 0)
                        bn += aik[k / 2, n / 2];
                }
                a035350[n] = bn / 2;

                // A035349 = DIK(A000237)
                Num dn = 0;
                for (int k = 1; k <= n; k++)
                {
                    // DIK_k is Polyà enumeration with the cyclic group D_k
                    // The cycle index for D_k has two parts: C_k and what Bower calls CPAL_k
                    // C_k
                    Num cikk = 0;
                    for (int d = 1; d <= k; d++)
                        if (k % d == 0 && n % d == 0)
                            cikk += phi[d] * aik[k / d, n / d];
                    dn += cikk / k;

                    // CPAL_k
                    if (k % 2 == 1)
                        for (int i = 0; i <= n; i += 2)
                            dn += aik[1, n - i] * aik[k / 2, i / 2];
                    else
                    {
                        Num cpalk = 0;
                        for (int i = 0; i <= n; i += 2)
                            cpalk += aik[2, n - i] * aik[k / 2 - 1, i / 2];
                        if (n % 2 == 0)
                            cpalk += aik[k / 2, n / 2];
                        dn += cpalk / 2;
                    }
                }
                a035349[n] = dn / 2;
            }

            // A000083 = A000237 + A035350 - A000237 * A035349
            var a000083 = new Num[N + 1];
            for (int i = 0; i <= N; i++)
            {
                a000083[i] = aik[1, i] + a035349[i];
                for (int j = 0; j <= i; j++) a000083[i] -= aik[1, j] * a035350[i - j];
            }

            System.Console.WriteLine(a000083[N - 1]);
        }
    }
}

ऑनलाइन डेमो । यह एक पूर्ण कार्यक्रम है जो कमांड लाइन से इनपुट लेता है।

अगला क्रम

विच्छेदन

मैं OEIS में बोवेन की टिप्पणी का पालन करता हूं कि जेनरेटिंग फंक्शन A000083(x) = A000237(x) + A035349(x) - A000237(x) * A035350(x)जहां कंपोनेंट जेनरेटिंग फंक्शंस ट्रांसफॉर्म के रूप में संबंधित होते हैं

  • A000237(x) = x EULER(A035350(x))
  • A035350(x) = BIK(A000237(x))
  • A035349(x) = DIK(A000237(x))

मैं https://oeis.org/transforms2.html की BIKऔर DIKसे परिभाषाओं का उपयोग करता हूं, लेकिन सूत्रों के अनुसार कई प्रकार के टाइपो हैं। मैंने बहुत कठिनाई के बिना सही किया , और स्वतंत्र रूप से डायहड्राल समूह के चक्र सूचकांक में पोल्लिया गणना को लागू करने के लिए एक सूत्र प्राप्त किया । # 121 और # 156 के बीच मैं पोल्लिया गणना के बारे में बहुत कुछ सीख रहा हूं। मैंने कुछ इरेटा जमा किए हैं , जो अन्य लोगों के लिए उपयोगी साबित हो सकते हैं यदि ये परिवर्तन फिर से श्रृंखला में आते हैं।LPALDIK



8

13. VB.NET (.NET 4.5), 1246 बाइट्स, A000131

Public Class A000131
    Public Shared Function Catalan(n As Long) As Long
        Dim ans As Decimal = 1
        For k As Integer = 2 To n
            ans *= (n + k) / k
        Next
        Return ans
    End Function
    Shared Function Answer(n As Long) As Long

        n += 7

        Dim a As Long = Catalan(n - 2)

        Dim b As Long = Catalan(n / 2 - 1)
        If n Mod 2 = 0 Then
            b = Catalan(n / 2 - 1)
        Else
            b = 0
        End If

        Dim c As Long = Catalan(n \ 2 - 1) ' integer division (floor)

        Dim d As Long
        If n Mod 3 = 0 Then
            d = Catalan(n / 3 - 1)
        Else
            d = 0
        End If

        Dim e As Long = Catalan(n / 4 - 1)
        If n Mod 4 = 0 Then
            e = Catalan(n / 4 - 1)
        Else
            e = 0
        End If

        Dim f As Long = Catalan(n / 6 - 1)
        If n Mod 6 = 0 Then
            f = Catalan(n / 6 - 1)
        Else
            f = 0
        End If

        Return (
                    a -
                    (n / 2) * b -
                    n * c -
                    (n / 3) * d +
                    n * e +
                    n * f
                ) /
                (2 * n)
    End Function
End Class

A001246

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


8

91. पायथन 2 (PyPy) , 1733 बाइट्स, A000066

import itertools

girth = int(input()) + 3

v = 4

r = range

def p(v):
	a = [0 for i in r(v)]
	k = int((v * 2) ** .5)
	a[k - 1] = a[k - 2] = a[k - 3] = 1
	j = len(a) - 1
	for i in r(1, 3):
		a[j] = 1
		j -= i
	yield [x for x in a]
	while not all(a):
		for index in r(len(a) - 1, -1, -1):
			a[index] ^= 1
			if a[index]: break
		yield [x for x in a]

def wrap_(p, v):
	m = [[0 for j in r(v)] for i in r(v)]
	k = 0
	for i in r(0, v - 1):
		for j in r(i + 1, v):
			m[i][j] = m[j][i] = p[k]
			k += 1
	return m

def completes_cycle(edgelist):
	if not edgelist or not edgelist[1:]: return False
	start = edgelist[0]
	edge = edgelist[0]
	e = [x for x in edgelist]
	edgelist = edgelist[1:]
	while edgelist:
		_edges = [_edge for _edge in edgelist if _edge[0] in edge or _edge[1] in edge]
		if _edges:
			edgelist.remove(_edges[0])
			if _edges[0][1] in edge: _edges[0] = (_edges[0][1], _edges[0][0])
			edge = _edges[0]
		else:
			return False
	flat = sum(e, ())
	for i in flat:
		if flat.count(i) != 2: return False
	return edge[1] in start

def powerset(a):
	return sum([list(itertools.combinations(a, t)) for t in r(len(a))], [])

while True:
	ps = (v * (v - 1)) // 2
	skip = False
	for Q in p(ps):
		m = wrap_(Q, v)
		output = [row + [0] for row in m]
		output.append([0 for i in r(len(m[0]))])
		for i in r(len(m)):
			output[i][-1] = sum(m[i])
			output[-1][i] = sum(row[i] for row in m)
		if all(map(lambda x: x == 3, map(sum, m))):
			edges = []
			for i in r(v):
				for j in r(i, v):
					if m[i][j]: edges.append((i, j))
			for edgegroup in powerset(edges):
				if completes_cycle(list(edgegroup)):
					if len(edgegroup) == girth:
						print(v)
						exit(0)
					else:
						skip = True
						break
		if skip: break
	v += 1

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

मुझे उम्मीद है कि पायथन 2 PyPy एक और प्रमुख संस्करण के रूप में मायने रखता है। अगर कोई मुझे पायथन 0 इंटरप्रेटर पा सकता है, तो मैं उसका भी उपयोग कर सकता हूं, लेकिन मुझे उम्मीद है कि यह मान्य है।

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

नेक्स्ट सीक्वेंस <- इस गणित की बकवास से ब्रेक के रूप में एक आसान है: डी

EDIT : मैंने कुछ तेजी से बदलाव करने के लिए कुछ अनुकूलन जोड़े हैं (अभी भी TIO की 60 सेकंड की सीमा के भीतर तीसरे कार्यकाल की गणना नहीं कर सकते हैं) हालांकि बिना बाईटेकाउंट को बदले।


... और मैं गंभीरता से सोच रहा था कि श्रृंखला 90 जवाब के साथ समाप्त हो जाएगी
0

1
@ppperry :) मुझे कठिन चुनौतियां करना पसंद है क्योंकि ज्यादातर लोग इसका समाधान भी नहीं कर सकते हैं इसलिए मुझे आउटगोल्फ्ड होने के बारे में चिंता करने की ज़रूरत नहीं है :) (जैसे कार्बन श्रृंखला की नामुराद समस्या)
हाइपरयूट्रीनो

जब तक कोई आपका समाधान नहीं लेता है और इसे एक
कठिन

@ चापलूसी वह भी ओ_ओ: पी
हाइपरन्यूट्रीनो

1
@HyperNeutrino को हल करने के लिए बधाई! मैं चिंतित था कि मैंने श्रृंखला को तोड़ दिया था, और एक अलग अनुक्रम को इंगित करने के लिए बाइट गिनती को पैडिंग करने पर विचार कर रहा था। बहुत बढ़िया!
स्कॉट मिलनर

8

232. फंकी , 326 330 332 बाइट्स, A000938

function gcd (a, b) {
    while (b != 0) {
        c = a % b;
        a = b;
        b = c;
    };
    return a;
}

function A000938 (n) {
    n = n + 2;
    ans = 0;
    for (m = 2; m <= n; ++m) {
        for (k = 2; k <= n; ++k) {
            ans = ans + (((n - k) + 1) * ((n - m) + 1) * gcd(k - 1, m - 1));
        }
    }
    ans = (2 * ans) - (
        (n*n) *
        ((n*n)-1) / 6
    );
    return ans;
}

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

जावास्क्रिप्ट के साथ बहुभुज। इसे ऑनलाइन आज़माएं!

अगला अनुक्रम


O(n^2 log n)भोले के बजाय जटिलता के लिए OEIS पृष्ठ पर सूत्र का उपयोग करें O(n^6)

त्वरित स्पष्टीकरण:

  • यह कोड a[n_] := 2*Sum[(n - k + 1)*(n - m + 1)*GCD[k - 1, m - 1], {m, 2, n}, {k, 2, n}] - n^2*((n^2 - 1)/6)Mathematica कोड अनुभाग में वर्णित सूत्र का उपयोग करता है ।
  • सूत्र प्रमाण:

    • सूत्र के बराबर है इस

    • तीन बिंदुओं के बाउंडिंग बॉक्स का आकार दें m * k। 2 मामलों पर विचार करें:

      • k != 0और m != 0: तीन बिंदुओं ( \या /) के अभिविन्यास को चुनने के 2 तरीके gcd(k-1, m-1)-1हैं, बिंदु को चुनने के तरीके अन्य 2 बिंदुओं के बीच स्थित हैं, और (n - k) × (n - m)बाउंडिंग बॉक्स की स्थिति को चुनने के तरीके हैं।
      • k == 0या m == 0: ओरिएंटेशन ( |या -) चुनने के 2 तरीके nहैं, पंक्ति / कॉलम Binomial[n, 3] == (n*(n-1)*(n-2)) / 6को चुनने के तरीके और उस पंक्ति / कॉलम पर पॉइंट चुनने के तरीके।

कुछ बहुवचन नोट:

  • फंकी में वास्तव में कीवर्ड नहीं है return। हालाँकि, जैसा कि ATaco ने समझाया , [कायरता] सोचता returnहै कि एक चर है। तो यह उस अभिव्यक्ति को पार्स कर रहा है, जो आसानी से कुछ नहीं करता है, फिर अगली अभिव्यक्ति को पार्स करता है। और इसका उपयोग आउटपुट के रूप में किया जाता है।
  • जावास्क्रिप्ट के ^रूप में उपयोग करते हैं , जो कायरता के विपरीत जावास्क्रिप्ट बिट के ^रूप में उपयोग करते हैं । इसलिए जावास्क्रिप्ट अनुकूलता सुनिश्चित करने के n*nबजाय इसका उपयोग किया जाना चाहिए n^2
  • फंकी में, सभी ऑपरेटर ( +और -, *आदि) की समान पूर्वता और सही-सह-संबंध है, इसलिए अभिव्यक्तियों को उचित रूप से छोटा करना होगा।

1
+1 बहुवचन की अपेक्षा नहीं कर रहा था।
अताको 21:17

कोई पेंटागोनी नहीं है, लेकिन हेक्सागोनी अच्छी तरह से फिट बैठता है।
नीडेज़्जेकोब

यह बायटेकाउंट पहले से ही इस्तेमाल किया गया था ... लिंक
NieDzejkob

तो, बाईटेकाउंट की समस्या को ठीक करने के लिए, क्या आप कृपया इस उत्तर को 330 बाइट्स पर पैड कर सकते हैं? बाकी मैं संभाल लूंगा।
निएडजेककोब

[उत्तर बाइटकाउंट विवादित मुद्दों के कारण 332 बाइट्स पर जवाब दें, यह चैट संदेश देखें ]
user202729

8

11. परी / जीपी, 64 बाइट्स, A000065

{a(n) = if( n<0, 0, polcoeff ( 1 / eta(x + x*O(x^n) ), n) - 1)};

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

अगला क्रम


क्या वह वैध इनपुट है?
लीक नन

क्या दीया को 64 बाइट्स लेने हैं? : पी
बिलकुल अमानवीय

@totallyhuman हाँ:;_; I solved A000064 and you changed it. Downvoted.
स्टीफन

@totallyhuman ने समझौता किया lol। चैट देखें
हायपरनेट्रिनो


8

281. जावा 5, 11628 बाइट्स, A000947

// package oeis_challenge;

import java.util.*;
import java.lang.*;

class Main {

//  static void assert(boolean cond) {
//      if (!cond)
//          throw new Error("Assertion failed!");
//  }

    /* Use the formula a(n) = A000063(n + 2) - A000936(n).
    It's unfair that I use the formula of "number of free polyenoid with n
    nodes and symmetry point group C_{2v}" (formula listed in A000063)
    without understanding why it's true...
    */

    static int catalan(int x) {
        int ans = 1;
        for (int i = 1; i <= x; ++i)
            ans = ans * (2*x+1-i) / i;
        return ans / -~x;
    }

    static int A63(int n) {
        int ans = catalan(n/2 - 1);
        if (n%4 == 0) ans -= catalan(n/4 - 1);
        if (n%6 == 0) ans -= catalan(n/6 - 1);
        return ans;
    }

    static class Point implements Comparable<Point> {
        final int x, y;
        Point(int _x, int _y) {
            x = _x; y = _y;
        }

        /// @return true if this is a point, false otherwise (this is a vector)
        public boolean isPoint() {
            return (x + y) % 3 != 0;
        }

        /// Translate this point by a vector.
        public Point add(Point p) {
            assert(this.isPoint() && ! p.isPoint());
            return new Point(x + p.x, y + p.y);
        }

        /// Reflect this point along x-axis.
        public Point reflectX() {
            return new Point(x - y, -y);
        }

        /// Rotate this point 60 degrees counter-clockwise.
        public Point rot60() {
            return new Point(x - y, x);
        }

        @Override
        public boolean equals(Object o) {
            if (!(o instanceof Point)) return false;
            Point p = (Point) o;
            return x == p.x && y == p.y;
        }

        @Override
        public int hashCode() {
            return 21521 * (3491 + x) + y;
        }

        public String toString() {
            // return String.format("(%d, %d)", x, y);
            return String.format("setxy %d %d", x * 50 - y * 25, y * 40);
        }

        public int compareTo(Point p) {
            int a = Integer.valueOf(x).compareTo(p.x);
            if (a != 0) return a;
            return Integer.valueOf(y).compareTo(p.y);
        }

        /// Helper class.
        static interface Predicate {
            abstract boolean test(Point p);
        }

        static abstract class UnaryFunction {
            abstract Point apply(Point p);
        }

    }

    static class Edge implements Comparable<Edge> {
        final Point a, b; // guarantee a < b
        Edge(Point x, Point y) {
            assert x != y;
            if (x.compareTo(y) > 0) { // y < x
                a = y; b = x;
            } else {
                a = x; b = y;
            }
        }

        public int compareTo(Edge e) {
            int x = a.compareTo(e.a);
            if (x != 0) return x;
            return b.compareTo(e.b);
        }
    }

    /// A graph consists of multiple {@code Point}s.
    static class Graph {
        private HashMap<Point, Point> points;

        public Graph() {
            points = new HashMap<Point, Point>();
        }

        public Graph(Graph g) {
            points = new HashMap<Point, Point>(g.points);
        }

        public void add(Point p, Point root) {
            assert(p.isPoint());
            assert(root.isPoint());
            assert(p == root || points.containsKey(root));
            points.put(p, root);
        }

        public Graph map(Point.UnaryFunction fn) {
            Graph result = new Graph();
            for (Map.Entry<Point, Point> pq : points.entrySet()) {
                Point p = pq.getKey(), q = pq.getValue();
                assert(p.isPoint()) : p;
                assert(q.isPoint()) : q;
                p = fn.apply(p); assert(p.isPoint()) : p;
                q = fn.apply(q); assert(q.isPoint()) : q;
                result.points.put(p, q);
            }
            return result;
        }

        public Graph reflectX() {
            return this.map(new Point.UnaryFunction() {
                public Point apply(Point p) {
                    return p.reflectX();
                }
            });
        }

        public Graph rot60() {
            return this.map(new Point.UnaryFunction() {
                public Point apply(Point p) {
                    return p.rot60();
                }
            });
        }

        @Override
        public boolean equals(Object o) {
            if (o == null) return false;
            if (o.getClass() != getClass()) return false;
            Graph g = (Graph) o;
            return points.equals(g.points);
        }

        @Override
        public int hashCode() {
            return points.hashCode();
        }

        Graph[] expand(Point.Predicate fn) {
            List<Graph> result = new ArrayList<Graph>();

            for (Point p : points.keySet()) {
                int[] deltaX = new int[] { -1, 0, 1, 1,  0, -1};
                int[] deltaY = new int[] {  0, 1, 1, 0, -1, -1};
                for (int i = 6; i --> 0;) {
                    Point p1 = new Point(p.x + deltaX[i], p.y + deltaY[i]);
                    if (points.containsKey(p1) || !fn.test(p1)
                        || !p1.isPoint()) continue;

                    Graph g = new Graph(this);
                    g.add(p1, p);
                    result.add(g);
                }
            }

            return result.toArray(new Graph[0]);
        }

        public static Graph[] expand(Graph[] graphs, Point.Predicate fn) {
            Set<Graph> result = new HashSet<Graph>();

            for (Graph g0 : graphs) {
                Graph[] g = g0.expand(fn);
                for (Graph g1 : g) {
                    if (result.contains(g1)) continue;
                    result.add(g1);
                }
            }

            return result.toArray(new Graph[0]);
        }

        private Edge[] edges() {
            List<Edge> result = new ArrayList<Edge>();
            for (Map.Entry<Point, Point> pq : points.entrySet()) {
                Point p = pq.getKey(), q = pq.getValue();
                if (p.equals(q)) continue;
                result.add(new Edge(p, q));
            }
            return result.toArray(new Edge[0]);
        }

        /**
         * Check if two graphs are isomorphic... under translation.
         * @return {@code true} if {@code this} is isomorphic
         * under translation, {@code false} otherwise.
         */
        public boolean isomorphic(Graph g) {
            if (points.size() != g.points.size()) return false;
            Edge[] a = this.edges();
            Edge[] b = g.edges();
            Arrays.sort(a);
            Arrays.sort(b);

            // for (Edge e : b)
                // System.err.println(e.a + " - " + e.b);
            // System.err.println("------- >><< ");

            assert (a.length > 0);
            assert (a.length == b.length);
            int a_bx = a[0].a.x - b[0].a.x, a_by = a[0].a.y - b[0].a.y;
            for (int i = 0; i < a.length; ++i) {
                if (a_bx != a[i].a.x - b[i].a.x || 
                    a_by != a[i].a.y - b[i].a.y) return false;
                if (a_bx != a[i].b.x - b[i].b.x || 
                    a_by != a[i].b.y - b[i].b.y) return false;
            }

            return true;
        }

        // C_{2v}.
        public boolean correctSymmetry() {

            Graph[] graphs = new Graph[6];
            graphs[0] = this.reflectX();
            for (int i = 1; i < 6; ++i) graphs[i] = graphs[i-1].rot60();
            assert(graphs[5].rot60().isomorphic(graphs[0]));
            int count = 0;
            for (Graph g : graphs) {
                if (this.isomorphic(g)) ++count;
                // if (count >= 2) {
                    // return false;
                // }
            }
            // if (count > 1) System.err.format("too much: %d%n", count);
            assert(count > 0);
            return count == 1; // which is, basically, true
        }

        public void reflectSelfType2() {
            Graph g = this.map(new Point.UnaryFunction() {
                public Point apply(Point p) {
                    return new Point(p.y - p.x, p.y);
                }
            });

            Point p = new Point(1, 1);
            assert (p.equals(points.get(p)));

            points.putAll(g.points);

            assert (p.equals(points.get(p)));
            Point q = new Point(0, 1);
            assert (q.equals(points.get(q)));
            points.put(p, q);
        }

        public void reflectSelfX() {
            Graph g = this.reflectX();
            points.putAll(g.points); // duplicates doesn't matter
        }

    }

    static int A936(int n) {
        // if (true) return (new int[]{0, 0, 0, 1, 1, 2, 4, 4, 12, 10, 29, 27, 88, 76, 247, 217, 722, 638, 2134, 1901, 6413})[n];

        // some unreachable codes here for testing.
        int ans = 0;

        if (n % 2 == 0) { // reflection type 2. (through line 2x == y)
            Graph[] graphs = new Graph[1];
            graphs[0] = new Graph();

            Point p = new Point(1, 1);
            graphs[0].add(p, p);

            for (int i = n / 2 - 1; i --> 0;)
                graphs = Graph.expand(graphs, new Point.Predicate() {
                    public boolean test(Point p) {
                        return 2*p.x > p.y;
                    }
                });

            int count = 0;
            for (Graph g : graphs) {
                g.reflectSelfType2();
                if (g.correctSymmetry()) {
                    ++count;

                    // for (Edge e : g.edges())
                        // System.err.println(e.a + " - " + e.b);
                    // System.err.println("------*");

                    }
                // else System.err.println("Failed");
            }

            assert (count%2 == 0);

            // System.err.println("A936(" + n + ") count = " + count + " -> " + (count/2));

            ans += count / 2;

        }

        // Reflection type 1. (reflectX)

        Graph[] graphs = new Graph[1];
        graphs[0] = new Graph();

        Point p = new Point(1, 0);
        graphs[0].add(p, p);

        if (n % 2 == 0) graphs[0].add(new Point(2, 0), p);

        for (int i = (n-1) / 2; i --> 0;)
            graphs = Graph.expand(graphs, new Point.Predicate() {
                public boolean test(Point p) {
                    return p.y > 0;
                }
            });

        int count = 0;
        for (Graph g : graphs) {
            g.reflectSelfX();
            if (g.correctSymmetry()) {
                ++count;
                // for (Edge e : g.edges())

                    // System.err.printf(

                // "pu %s pd %s\n"
                // // "%s - %s%n"

                // , e.a, e.b);
                // System.err.println("-------/");

            }
            // else System.err.println("Failed");
        }

        if(n % 2 == 0) {
            assert(count % 2 == 0);
            count /= 2;
        }
        ans += count;

        // System.err.println("A936(" + n + ") = " + ans);

        return ans;
    }

    public static void main(String[] args) {

        // Probably
        if (! "1.5.0_22".equals(System.getProperty("java.version"))) {
            System.err.println("Warning: Java version is not 1.5.0_22");
        }

        // A936(6);

        for (int i = 0; i < 20; ++i)
            System.out.println(i + " | " + (A63(i+9) - A936(i+7)));
        //A936(i+2);
    }
}

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


पक्षीय लेख:

  1. जावा 5 के साथ स्थानीय रूप से परीक्षण किया गया (जैसे कि चेतावनी मुद्रित नहीं है - TIO डिबग टैब देखें)
  2. मत करो। कभी। उपयोग। जावा। 1. यह सामान्य रूप से जावा से अधिक क्रिया है।
  3. इससे चेन टूट सकती है।
  4. अंतराल (7 दिन और 48 मिनट) इस उत्तर द्वारा बनाई गई खाई से अधिक नहीं है , जो पिछले एक की तुलना में 7 दिन और 1 घंटे 25 मिनट बाद है ।
  5. बड़े bytecount पर नया रिकॉर्ड! क्योंकि मैं (गलती से?) टैब के बजाय रिक्त स्थान का उपयोग करता हूं, बाईटेकाउंट आवश्यकता से अधिक बड़ा है। मेरी मशीन पर यह 9550 बाइट्स है। (इस संशोधन को लिखते समय)
  6. अगला अनुक्रम
  7. कोड, अपने वर्तमान रूप में, केवल अनुक्रम के पहले 20 शब्दों को प्रिंट करता है। हालांकि यह इतना बदलने के लिए है कि यह पहली 1000 मदों प्रिंट होगा आसान है (परिवर्तन से 20में for (int i = 0; i < 20; ++i)करने के लिए 1000)

वाह! यह OEIS पृष्ठ पर सूचीबद्ध से अधिक शब्दों की गणना कर सकता है! (पहली बार, एक चुनौती के लिए मुझे जावा का उपयोग करने की आवश्यकता है) जब तक कि OEIS के पास कहीं और शर्तें न हों ...


त्वरित स्पष्टीकरण

अनुक्रम वर्णन की व्याख्या।

अनुक्रम सममिति समूह C 2v के साथ मुक्त नॉनप्लेनर पॉलीनेयॉइड की संख्या के लिए पूछता है , जहां:

  • पॉलेनॉइड: (पॉलीन हाइड्रोकार्बन के गणितीय मॉडल) पेड़ों (या पतित मामले में, एकल शीर्ष) के साथ हेक्सागोनल जाली में एम्बेड किया जा सकता है।

उदाहरण के लिए, पेड़ों पर विचार करें

      O                O           O      O       (3)
      |                 \         /        \
      |                  \       /          \
O --- O --- O             O --- O            O --- O
      |                                             \
      |                    (2)                       \
 (1)  O                                               O

पहले वाले को हेक्सागोनल जाली में एम्बेड नहीं किया जा सकता है, जबकि दूसरा एक कर सकता है। उस विशेष एम्बेडिंग को तीसरे पेड़ से अलग माना जाता है।

  • नॉनप्लेनर पॉलेनॉइड: पेड़ों की एम्बेडिंग जैसे कि दो अतिव्यापी वर्धमान होते हैं।

(2)और (3)ऊपर पेड़ हैं। यह एक, हालांकि, नॉनप्लेनर है:

   O---O O
  /       \
 /         \
O           O
 \         /
  \       /
   O --- O

(7 कोने और 6 किनारे हैं)

  • मुक्त पॉलीएनोइड: एक पॉलीएनॉइड के वेरिएंट, जो रोटेशन और प्रतिबिंब द्वारा प्राप्त किया जा सकता है, को एक के रूप में गिना जाता है।

  • सी 2 वी समूह: पॉलेनॉइड को केवल तब गिना जाता है जब उनके पास प्रतिबिंब के 2 लंबवत विमान होते हैं, और नहीं।

उदाहरण के लिए, 2 कोने के साथ एकमात्र पॉलेनॉइड

O --- O

प्रतिबिंब के 3 विमान हैं: क्षैतिज एक -, ऊर्ध्वाधर एक |और कंप्यूटर स्क्रीन के समानांतर एक । वह बहुत ज्यादा है।

दूसरी ओर, यह एक

O --- O
       \
        \
         O

प्रतिबिंब के 2 विमान हैं: /और


विधि की व्याख्या

और अब, वास्तव में संख्या की गणना करने के तरीके पर दृष्टिकोण।

सबसे पहले, मैं सूत्र a(n) = A000063(n + 2) - A000936(n)(OEIS पृष्ठ पर सूचीबद्ध) को प्रदान करता हूं । मैंने पेपर में स्पष्टीकरण नहीं पढ़ा।

[TODO इस हिस्से को ठीक करें]

बेशक, नॉनप्लेनर की गिनती की तुलना में प्लानर की गिनती करना आसान है। यही कागज भी करता है।

कंप्यूटर प्रोग्रामिंग द्वारा ज्यामितीय प्लेनर पॉलीनोइड्स (अतिव्यापी वर्टिकल के बिना) गणना की जाती हैं। इस प्रकार जियोमेट्रिकली नॉनप्लेनर पॉलीनोइड्स की संख्या सुलभ हो जाती है।

इसलिए ... कार्यक्रम में प्लानर पॉलेनॉइड की संख्या गिना जाता है, और इसे कुल से घटाता है।

क्योंकि पेड़ वैसे भी प्लेनर होता है, लेकिन जाहिर तौर पर इसमें प्रतिबिंब का तल होता है। तो हालत "2 डी प्रतिनिधित्व में प्रतिबिंब की धुरी के साथ पेड़ की संख्या की गिनती" तक उबलती है।

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

फ़ंक्शन public static Graph[] expand(Graph[] graphs, Point.Predicate fn)ग्राफ़ की एक सरणी लेता है, प्रत्येक में nनोड्स होते हैं, और ग्राफ़ की एक सरणी आउटपुट करते हैं, प्रत्येक में n+1नोड्स होते हैं, एक दूसरे के बराबर नहीं (अनुवाद के तहत) - जैसे कि जोड़ा नोड को विधेय को संतुष्ट करना होगा fn

प्रतिबिंब के 2 संभावित अक्षों पर विचार करें: एक जो एक शीर्ष के माध्यम से जाता है और किनारों ( x = 0) के साथ मेल खाता है , और एक जो एक किनारे के लंबवत द्विभाजक है ( 2x = y)। हम उनमें से केवल एक ही ले सकते हैं क्योंकि उत्पन्न रेखांकन आइसोमॉर्फिक हैं, वैसे भी।

तो, पहली धुरी के लिए x = 0, हम आधार ग्राफ से शुरू करते हैं जिसमें एक एकल नोड होता है (1, 0)(मामले nमें विषम है) या बीच के किनारे के साथ दो नोड्स (1, 0) - (2, 0)(यदि मामला समान nहै), और फिर नोड्स का विस्तार करें y > 0। यह कार्यक्रम के "परावर्तन प्रकार 1" अनुभाग द्वारा किया जाता है, और फिर प्रत्येक उत्पन्न ग्राफ के लिए, एक्स अक्ष x = 0( g.reflectSelfX()) के माध्यम से स्वयं को प्रतिबिंबित (दर्पण ), और फिर जांचें कि क्या यह सही समरूपता है।

हालांकि, ध्यान दें कि यदि n2 से विभाज्य है, तो इस तरह से हमने प्रत्येक ग्राफ को दो बार गिना है, क्योंकि हम अक्ष द्वारा इसकी दर्पण छवि भी बनाते हैं 2x = y + 3

(2 नारंगी वाले नोट करें)

अक्ष के समान 2x = y, यदि (और केवल अगर) nभी है, तो हम बिंदु से शुरू (1, 1)करते हैं, ऐसे ग्राफ़ बनाते हैं 2*x > y, और उनमें से प्रत्येक को 2x = yअक्ष पर प्रतिबिंबित करते हैं ( g.reflectSelfType2()), से कनेक्ट (1, 0)करें (1, 1), और जांचें कि क्या उनके पास सही समरूपता है। 2 से भाग करना भी याद रखें।


यह देखते हुए कि मैं सो रहा था जब यह (और दूसरा वाला) पोस्ट किया गया था, मैं आपको संदेह का लाभ दूंगा और अभी तक एक उत्तर स्वीकार नहीं करूंगा।
caird coinheringaahing

2
@cairdcoinheringaahing आप समय सीमा से 3 मिनट पहले ऑनलाइन थे ...
user202729

उह ओह, अगला सीक्वेंस हार्ड-कोडेड हो सकता है ... (हालांकि यह अनंत है) अगर मैं इसे सही ढंग से पढ़ूं। गणना ही है --- बहुत सुंदर --- बहुत आसान है, तो यह मत करो।
user202729

7

6. आर , 71 बाइट्स, A000072

function(n)length(unique((t<-outer(r<-(0:2^n)^2,r*4,"+"))[t<=2^n&t>0]))

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

अगला क्रम


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

क्या एक आसान अगला अनुक्रम एक रणनीतिक लाभ नहीं है?
ब्लैककप

@BlackCap वे एक पंक्ति में दो बार जवाब दे सकते हैं या अंतिम उत्तर देने के 1 घंटे से कम समय में।
निकोलग्राफ जूल

@EriktheOutgolferthe answer before the last posted (the one who didn't break the chain) will win
BlackCap

@BlackCap इस बिंदु पर जो होने वाला नहीं है
स्टीफन


7

26. टीआई-बेसिक, 274 बाइट्स , ए 000183

.5(1+√(5→θ
"int(.5+θ^X/√(5→Y₁
"2+Y₁(X-1)+Y₁(X+1→Y₂
{0,0,0,1,2,20→L₁
Prompt A
Lbl A
If A≤dim(L₁
Then
Disp L₁(A
Else
1+dim(L₁
(~1)^Ans(4Ans+Y₂(Ans))+(Ans/(Ans-1))((Ans+1))-(2Ans/(Ans-2))((Ans-3)L₁(Ans-2)+(~1)^AnsY₂(Ans-2))+(Ans/(Ans-3))((Ans-5)L₁(Ans-3)+2(~1)^(Ans-1)Y₂(Ans-3))+(Ans/(Ans-4))(L₁(Ans-4)+(~1)^(Ans-1)Y₂(Ans-4→L₁(Ans
Goto A
End

OEIS लिंक पर पाए गए पुनरावर्ती सूत्र का मूल्यांकन करता है।

अगला क्रम


जब मैं जानता था कि साइट नीचे चली गई है तो यह पता चलेगा कि यह एक पागल भीड़ होगी। बमुश्किल मुझे पीटा।
सिल्वियो मेयोलो

मुझे नहीं पता था कि साइट नीचे चली गई ...
स्कॉट मिलनर



7

49. सेजमैथ , 74 बाइट्स, A000003

lambda n: len(BinaryQF_reduced_representatives(-4*n, primitive_only=True))

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

अगला क्रम


और मैं सिर्फ जावास्क्रिप्ट का उपयोग करके इस क्रम को काम करने में एक घंटा लगा रहा हूं ... ओह ठीक है, मुझे बस अगले एक पर आगे बढ़ना होगा ...
ETHproductions

7

76. Pygmy , 4147 बाइट्स, A000036

globaln: 0                                                                                           

Pi:: 3.141592653589793                                                                               

floor:: (number) {                                                                                   
    floatPart: number % 1                                                                            
    number >= 0 =>                                                                                   
    number - floatPart                                                                               
    number - floatPart - 1                                                                           
}                                                                                                    

fsqrt:: (number) {                                                                                   
    floor| number ^ 0.5                                                                              
}                                                                                                    

summation:: (f i imax) {                                                                             
    i > imax => 0                                                                                    
    (f| i) + summation| f, i + 1, imax                                                               
}                                                                                                    

absoluteValue:: (number) {                                                                           
    number < 0 => -number                                                                            
    number                                                                                           
}                                                                                                    

A:: (number) {                                                                                       
    globaln~: number                                                                                 
    1 + 4 * (fsqrt| number)                                                                          
       + 4 * (fsqrt| number / 2) ^ 2                                                                 
       + 8 * summation| (j){ fsqrt| globaln - j * j }, (fsqrt| number / 2) + 1, (fsqrt| number)      
}                                                                                                    

V:: (number) {                                                                  
    Pi * number                                                                      
}                                                                                    

P:: (number) {                                             
    (A| number) - (V| number)                               
}                                                           

recordMax: 0                                           
findRecord:: (searchIndex record recordCount) {                                    
    x: absoluteValue| P| searchIndex                                               
    (x > record && recordCount = recordMax - 1) => searchIndex                     
    x > record => findRecord| searchIndex + 1, x, recordCount + 1                  
    findRecord| searchIndex + 1, record, recordCount                               
}                                                                                  

A000099:: (number) {                                                                 
    recordMax~: number                                                              
    findRecord| 1, 0, 0                                                              
}                                                                               

A000035:: (number) {                                                                       
    floor| (P| (A000099| number)) + 0.5                                         
}                                                                               

अगला क्रम

आप इस पेज पर कोड चला सकते हैं । उदाहरण के लिए, आप ऊपर दिए गए कोड को कॉपी करके और जोड़कर अनुक्रम में 10 वां नंबर प्राप्त कर सकते हैं:

alert| A000035| 10

4
... अगला क्रम असुविधाजनक है ...
HyperNeutrino

1
@ हाइपर न्यूट्रिनो मुझे पता है: PI ने इस उद्देश्य से किया था
पीटर ओल्सन

बुराई ...>। <लेकिन फिर भी, मैं अनुक्रम में 4 तत्वों को हार्डकोड करूंगा। पर्याप्त रूप से पर्याप्त एक्सडी ओपी इसे स्पष्ट रूप से (\ _ (_) _ /
Hyper
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.