मेरे पास कितने विभाजन हैं?


16

एक सकारात्मक पूर्णांक की विभाजन संख्या को उन तरीकों की संख्या के रूप में परिभाषित किया जाता है जिन्हें सकारात्मक पूर्णांक के योग के रूप में व्यक्त किया जा सकता है। दूसरे शब्दों में, इसके पूर्णांक विभाजन की संख्या है। उदाहरण के लिए, संख्या 4में निम्नलिखित भाग हैं:

[[१, १, १, १], [१, १, २], [१, ३], [२, २], [४]]

इसलिए, इसमें 5विभाजन हैं। यह OEIS A000041 है


कार्य

एक सकारात्मक पूर्णांक एन को देखते हुए इसकी विभाजन संख्या निर्धारित करते हैं।

  • सभी मानक नियम लागू होते हैं।

  • इनपुट और आउटपुट को किसी भी उचित माध्यम से नियंत्रित किया जा सकता है।

  • यह , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।


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

इनपुट | उत्पादन

1 | 1
2 | 2
3 | 3
4 | 5
5 | 7
6 | 1 1
7 | 15
8 | 22
9 | 30
10 | 42

1
मैं लगभग सकारात्मक हूँ यह एक डुप्लिकेट है ...
DJMcMayhem

@DJMcMayhem उम्म, ठीक है। अगर आपको डुप्लिकेट मिल जाए तो मुझे बताएं। क्षमा करें, मैं यह सब करने के लिए नया हूँ!

1
@DJMcMayhem शायद यह सवाल आपने पूछा है क्योंकि यह "जनरेटिंग" से लेकर "काउंटिंग" तक का एक छोटा कदम है, लेकिन आपको इन्हें गिनने के लिए सभी पार्टिशन जेनरेट करने की आवश्यकता नहीं है ...
Giuseppe

1
यह एक डुबकी है, EXCEPT जो एक पॉपकॉन (?) है और बहुत व्यापक के रूप में बंद है। IMHO यह WAY बेहतर लिखा गया है और इसे खुला रखना चाहिए, जबकि पुराना होना चाहिए (फिर से खोलना) और डुबकी के रूप में बंद होना चाहिए
Rod

2
@ ठीक है, यह एक बुरा पॉप-कॉन है, लेकिन डुबकी के करीबी कारण को बदलना एक सुधार नहीं होगा। प्रदर्शन की आवश्यकता कुछ जवाबों को पोर्ट करने के लिए एक बाधा होगी (कोई भी किसी के कुछ मिनटों में 1000 के 24061467864032622473692149727991 विभाजन उत्पन्न करने के लिए नहीं जा रहा है ); और हार्डी-रामानुजन-रेडमीचर कार्यान्वयन बिल्कुल गोल्फ नहीं है ... हालांकि, यह इस सवाल और उस एक के साथ क्या करना है के बारे में मेटा में एक चर्चा खोलने के लायक हो सकता है।
पीटर टेलर

जवाबों:


13

अजगर , 3 बाइट्स

l./

यहाँ यह कोशिश करो! या एक परीक्षण सूट की कोशिश करो।

उत्तर को कोड लिखने की तुलना में प्रारूपित करने में अधिक समय लगा: P।


कैसे?

Pyth काम का सही उपकरण है।

एल / अंतर्निहित इनपुट के साथ पूरा कार्यक्रम।

 ।/ पूर्णांक विभाजन। इनपुट में जोड़ने वाले सकारात्मक पूर्णांक की सभी क्रमबद्ध सूची लौटाएं।
एल लंबाई।
      परिणाम को लागू करें।

34

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

PartitionsP

व्याख्या

¯\_(ツ)_/¯

8

पायथन 2 , 85 83 बाइट्स

-2 बाइट्स @ नॉटजगन को धन्यवाद

lambda n:n<1or sum(sum(i*((n-k)%i<1)for i in range(1,n+1))*p(k)for k in range(n))/n

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

OEIS A000041 से पुनरावर्ती सूत्र का उपयोग करना ।



84 बाइट्स । इस मामले में ==0बराबर है <1संपादित करें: नॉटजागन के दृष्टिकोण का उपयोग करें
श्री एक्सकोडर

@ Mr.Xcoder मूल कोड वास्तव में <1इसके बजाय था ==0, लेकिन TIO कोड नहीं था।
notjagan


8

इमोजीकोड 0.5, 204 201 बाइट्स

🐋🚂🍇🐖🅰️➡🚂🍇🍊⬅🐕1🍇🍎1🍉🍮s 0🔂k⏩0🐕🍇🍦t➖🐕k🍮r t🔂i⏩1 t🍇🍊😛🚮t i 0🍇🍮➕r i🍉🍉🍮➕s✖r🅰️k🍉🍎➗s🐕🍉🍉

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

-3 बाइट्स "2 से कम" के बजाय "1 से कम या इसके बराबर" का उपयोग करके, क्योंकि "इमोजी" से कम में काफी लंबा UTF-8 एन्कोडिंग है। tबाइट काउंट को प्रभावित किए बिना एक चेतावनी को चुप करने के लिए एक जमे हुए बनाया ।

🅰️ (पूर्णांक) वर्ग का विस्तार 🅰️ नामक विधि से करता है। आप एक साधारण प्रोग्राम लिख सकते हैं जो इनपुट से एक नंबर लेता है, नंबर पर program कॉल करता है और इस तरह से परिणाम प्रिंट करता है:

🏁🍇
 🍦str🔷🔡😯🔤Please enter a number🔤
 🍊🍦num🚂str 10🍇
  😀🔡🅰️num 10
 🍉🍓🍇
  😀🔤Learn what a number is, you moron!🔤
 🍉
🍉

इस हिस्से को संदेशों और त्रुटि से निपटने में चूक कर बहुत कुछ हासिल किया जा सकता है, लेकिन यह स्कोर में शामिल नहीं है, इसलिए मैं रास्ते में पठनीयता में सुधार करते हुए इमोजीकोड की अधिक विशेषताओं को दिखाना पसंद करता हूं।

Ungolfed

🐋🚂🍇
 🐖🅰️➡🚂🍇
  🍊◀️🐕2🍇
   🍎1
  🍉
  🍮sum 0
  🔂k⏩0🐕🍇
   🍦nmk➖🐕k
   🍮sig nmk
   🔂i⏩1 nmk🍇
    🍊😛🚮nmk i 0🍇
     🍮➕sig i
    🍉
   🍉
   🍮➕sum✖sig🅰️k
  🍉
  🍎➗sum🐕
 🍉
🍉

व्याख्या

नोट: इमोजी पसंद का बहुत कुछ इमोजीकोड 0.5 में ज्यादा मायने नहीं रखता है। यह 0.x है, सब के बाद। 0.6 इसे ठीक कर देगा।

इमोजीकोड एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज है जिसमें जेनरिक, प्रोटोकॉल, ऑप्शंस और क्लोजर शामिल हैं, लेकिन यह प्रोग्राम बिना क्लोजर का उपयोग करता है और सभी जेनरिक और प्रोटोकॉल को अंतर्निहित माना जा सकता है, जबकि I / O स्टब में एकमात्र वैकल्पिक दिखाई देता है।

कार्यक्रम केवल कुछ प्रकारों पर संचालित होता है: ger पूर्णांक प्रकार है, type स्ट्रिंग प्रकार है और a श्रेणी प्रकार है। कुछ बूलियन (👌) भी दिखाई देते हैं, लेकिन उनका उपयोग केवल स्थितियों में किया जाता है। बूलियन क्रमशः 👍 या a का मान ले सकते हैं, जो क्रमशः सही और गलत के अनुरूप हैं।

वर्तमान में Emojicode में कोई ऑपरेटर नहीं हैं, इसलिए इसके अलावा, संकलन और अन्य संचालन जो सामान्य रूप से ऑपरेटर हैं, कार्यों के रूप में कार्यान्वित किए जाते हैं, प्रभावी ढंग से अभिव्यक्तियों को उपसर्ग संकेतन का उपयोग करते हैं । ऑपरेटरों को भी 0.6 में योजना बनाई गई है।

आइए पहले परीक्षण कार्यक्रम से निपटें।

🏁

यह 🏁 ब्लॉक है, जिसकी तुलना अन्य भाषाओं से मुख्य से की जा सकती है।

🍇 ... 🍉

अंगूर और तरबूज इमोजीकोड में कोड ब्लॉक घोषित करते हैं।

🍦str🔷🔡😯🔤Please enter a number🔤

यह एक "जमे हुए" नाम की घोषणा करता है strऔर इनिशियलाइज़र (कंस्ट्रक्टर) initial का उपयोग करके बनाए गए एक नए स्ट्रिंग के लिए इसका मूल्य निर्धारित करता है, जो एक स्ट्रिंग के रूप में संकेत देता है और फिर उपयोगकर्ता से एक लाइन इनपुट करता है। एक चर के बजाय एक जमे हुए का उपयोग क्यों करें? यह नहीं बदलेगा, इसलिए एक चर चेतावनी का उत्सर्जन करेगा।

🍊🍦num🚂str 10

चलो इसे तोड़ दो। तर्क के साथ जमे हुए 🚂str 10पर strBy विधि को कॉल करता है। 10. सम्मेलन द्वारा, एक प्रकार के नाम के साथ विधियों को ऑब्जेक्ट को उस प्रकार में परिवर्तित किया जाता है। 10 पूर्णांक रूपांतरण के लिए उपयोग करने के लिए आधार है। इस विधि एक वैकल्पिक देता है, 🍬🚂। वैकल्पिक में आधार प्रकार या शून्य का मान हो सकता है, a। जब स्ट्रिंग में कोई संख्या नहीं होती है, तो a लौटा दिया जाता है। मान का उपयोग करने के लिए, किसी को 🍺 का उपयोग करके वैकल्पिक को खोलना है, जो मान होने पर रनटाइम त्रुटि उठाता है। इसलिए, अल्टरनेटिव होने से पहले कुछ भी नहीं देखने के लिए यह अच्छा अभ्यास है। यह बहुत आम है, वास्तव में, कि Emojicode के लिए एक आशुलिपि है। आम तौर पर, 🍊एक "अगर" है।🍊🍦 variable expressionका अर्थ है: अभिव्यक्ति का मूल्यांकन करें। यदि वैकल्पिक में कुछ भी नहीं है, तो स्थिति false (गलत) का मूल्यांकन करती है। अन्यथा, एक जमे हुए नाम गयाvariableवैकल्पिक के अपरिवर्तित मूल्य के साथ बनाया गया है, और स्थिति (, (सत्य) का मूल्यांकन करती है। इसलिए, सामान्य उपयोग में, 🍇 ... 🍉सशर्त का पालन करने वाले ब्लॉक में प्रवेश किया जाता है।

😀🔡🅰️num 10

Adds वह विधि है जिसमें मुख्य कोड 🐋 का उपयोग करके the को जोड़ा जाता है जो विभाजन की संख्या की गणना करता है। यह numसशर्त में घोषित फ्रोजन पर the कॉल करता है और परिणाम को 🅰️ विधि द्वारा बेस 10 का उपयोग करके स्ट्रिंग में परिवर्तित करता है। फिर, ts परिणाम प्रिंट करता है।

🍓🍇 ... 🍉

🍓 का अर्थ "और" है, इसलिए जब उपयोगकर्ता किसी संख्या को सही ढंग से दर्ज नहीं करता है तो यह ब्लॉक दर्ज किया जाता है।

😀🔤Learn what a number is, you moron!🔤

स्ट्रिंग शाब्दिक प्रिंट।

अब, मुख्य कार्यक्रम को देखें। मैं ungolfed संस्करण की व्याख्या करूँगा; गोल्फ संस्करण सिर्फ व्हाट्सएप हटा दिया गया था और चर एकल अक्षर नामों में बदल दिया गया था।

🐋🚂🍇 ... 🍉

End वर्ग बढ़ाएँ। यह एक ऐसी विशेषता है जो आमतौर पर प्रोग्रामिंग भाषाओं में नहीं पाई जाती है। सुपरक्लास के रूप में 🚂 के साथ एक नया वर्ग बनाने के बजाय, ifies सीधे class को संशोधित करता है।

🐖🅰️➡🚂🍇 ... 🍉

Es नामक एक नई विधि बनाता है जो named लौटाता है। यह सूत्र का उपयोग करके गणना किए गए विभाजन की संख्या देता हैa(n) = (1/n) * Sum_{k=0..n-1} sigma(n-k)*a(k)

🍊⬅🐕1🍇
 🍎1
🍉

Languages अन्य भाषाओं से thisया के समान है selfऔर उस ऑब्जेक्ट को संदर्भित करता है जिस पर विधि को बुलाया गया था। यह कार्यान्वयन पुनरावर्ती है, इसलिए यह समाप्ति की स्थिति है: यदि संख्या जिस पद्धति पर कॉल की गई थी वह 1 से कम या बराबर है, वापसी 1।

🍮sum 0

एक नया चर बनाएं sumऔर इसे 0 पर सेट करें।

🔂k⏩0🐕

That किसी भी चीज़ पर निर्भर करता है जो 🔂 प्रोटोकॉल को लागू करता है, जबकि a एक श्रेणी शाब्दिक है जो 🔂🐚🚂 को लागू करने के लिए होता है। एक श्रेणी में एक स्टार्ट वैल्यू, एक स्टॉप वैल्यू और एक स्टेप वैल्यू है, जिसे 1 मान लिया गया है start < stop, या -1 अन्यथा। श्रेणी शाब्दिक बनाने के लिए also का उपयोग करके चरण मान भी निर्दिष्ट कर सकते हैं। स्टार्ट वैल्यू समावेशी है, जबकि स्टॉप वैल्यू अनन्य है, इसलिए यह सूत्र में for k in range(n)या इसके बराबर Sum_{k=0..n-1}है।

🍦nmk➖🐕k

हमें सिग्मा (n - k), या n - kदूसरे शब्दों में विभाजकों के योग की गणना करने की आवश्यकता है , और तर्क को कुछ समय की आवश्यकता है, इसलिए यह कुछ बाइट्स को बचाने के n - kलिए चर में संग्रहीत करता है nmk

🍮sig nmk
🔂i⏩1 nmk

यह sigचर को सिग्मा के तर्क पर सेट करता है और 1 से लेकर सभी संख्याओं पर पुनरावृत्त करता है nmk - 1। मैं वेरिएबल को 0 से इनिशियलाइज़ कर सकता था और 1..kk से अधिक का इतरेट कर सकता था लेकिन इसे इस तरह से करना कम है।

🍊😛🚮nmk i 0

🚮 शेष, या मापांक की गणना करता है और, समानता के लिए जाँच करता है, इसलिए स्थिति 👍 होगी यदि iका एक विभक्त है nmk

🍮➕sig i

यह कॉल के द्वारा एक असाइनमेंट है, += -= >>=कुछ अवर, इमोजी-मुक्त भाषाओं में ऑपरेटर परिवार के समान । इस लाइन को भी लिखा जा सकता है 🍮 sig ➕ sig i। इसलिए, आंतरिक लूप के खत्म होने के बाद , या sigके विभाजकों का योग होगाn - ksigma(n - k)

🍮➕sum✖sig🅰️k

कॉल द्वारा एक और असाइनमेंट, तो यह sigma(n - k) * A(k)कुल में जोड़ता है, जैसे कि सूत्र में।

🍎➗sum🐕

अंत में, योग को n से विभाजित किया जाता है और भागफल लौटाया जाता है। यह स्पष्टीकरण शायद तीन बार ही लिया गया था जितना कोड लिखने में ...



3

ऑक्टेव, 18 बाइट्स

partcnt(input(''))

अंतर्निहित फ़ंक्शन partcnt का उपयोग करता है।

@ का उपयोग करके अनाम फ़ंक्शन का उपयोग करके इसे ठीक से प्राप्त नहीं किया जा सकता है, कुछ मदद की सराहना की जाएगी।


3

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

.+
$*
+%1`\B
;$'¶$`,
,

%O`1+
@`.+

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

व्याख्या

.+
$*

इनपुट को unary में बदलें।

+%1`\B
;$'¶$`,

यह एक अंक सूची के सभी 2 n-1 विभाजन की गणना करता है । हम ऐसा बार-बार करते हैं ( +पहले 1) ( ) गैर-शब्द सीमा ( \Bयानी, दो 1एस के बीच की स्थिति ) प्रत्येक पंक्ति में ( %) और इसके साथ प्रतिस्थापित करने पर ;, इसके बाद सब कुछ ( $'), एक लाइनफीड ( ), सब कुछ सामने। यह ( $`) और ,। उदाहरण:

1;1,111

हो जाता है

      vv
1;1,1;11
1;1,1,11
^^^^^

जहां vपर रिजल्ट के निशान $'और ^अंक दिए गए हैं $`। यह एक ही समय में दो अलग-अलग प्रतिस्थापनों का परिणाम प्राप्त करने के लिए एक सामान्य मुहावरा है (हम मूल रूप से ;और ,प्रतिस्थापन दोनों को सम्मिलित करते हैं , साथ ही दो पूर्ण प्रतिस्थापन को पूरा करने के लिए स्ट्रिंग के लापता "पड़ाव")।

हम ;वास्तविक विभाजन के रूप में और ,प्लेसहोल्डर्स के रूप में व्यवहार करेंगे जो बाद में \Bवहां मिलान करने से रोकते हैं । तो आगे…

,

... हम उन अल्पविराम को हटा देते हैं। जो हमें सभी विभाजन प्रदान करता है। उदाहरण के लिए इनपुट 4हमें मिलता है:

1;1;1;1
1;1;11
1;11;1
1;111
11;1;1
11;11
111;1
1111

हम आदेश के बारे में परवाह नहीं करते हैं:

%O`1+

यह 1प्रत्येक पंक्ति में s के रनों को क्रमबद्ध करता है ताकि हमें अव्यवस्थित विभाजन मिले।

@`.+

अंत में, हमने कितने विशिष्ट रेखाओं / विभाजनों के अनूठे ( @) मिलानों की गणना की है .+। मैंने इस @विकल्प को युगों पहले जोड़ा था, फिर इसके बारे में पूरी तरह से भूल गया और केवल हाल ही में इसे फिर से खोज लिया। इस मामले में, यह पहली बार कटौती के साथ लाइनों पर एक बाइट बचाता है D`


3

पायथन 2 , 54 53 बाइट्स

f=lambda n,k=1:1+sum(f(n-j,j)for j in range(k,n/2+1))

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

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

N के प्रत्येक विभाजन को एक सूची x = [x 1 , x, x m ] के रूप में दर्शाया जा सकता है जैसे कि x 1 + = + x m = n । यह प्रतिनिधित्व अद्वितीय हो जाता है अगर हमें उस x 1 we । X m की आवश्यकता होती है ।

हम एक सहायक फ़ंक्शन f (n, k) को परिभाषित करते हैं जो कम बाउंड k , यानी, लिस्ट x जैसे कि x 1 + x + x m = n और k 1 x 1m x m के साथ विभाजनों को गिनता है । इनपुट n के लिए , चुनौती इस प्रकार f (n, 1) के आउटपुट के लिए पूछती है ।

सकारात्मक पूर्णांकों के लिए n और k जैसे कि k there n , कम बाउंड k के साथ कम से कम एक विभाजन है : सिंगलटन सूची [n] । यदि n = k (विशेष रूप से, यदि n = 1 ), तो यह एकमात्र योग्य विभाजन है। दूसरी ओर, यदि k> n , तो कोई समाधान नहीं हैं।

यदि k <n , तो हम शेष बचे हुए विभाजनों को निम्न प्रकार से बाईं ओर से बनाकर पुन: गिन सकते हैं। प्रत्येक j के लिए जैसे कि ≤ j j n / 2 , हम विभाजन बना सकते हैं [x 1 , k, x m ] = [j, y 1 , ⋯, y m-1 ] । हमारे पास है कि x 1 + m + x m = n अगर और केवल अगर y 1 + x + y m-1 = n - j । इसके अलावा, x 1 ⋯ ≤ m x m if और only if j ≤ y 1 ⋯ ≤ 1 y m-1

इसलिए, विभाजन x का n के साथ शुरू जे के रूप में गणना की जा सकती (- j, जे एन) च , जो वैध विभाजन में गिना जाता है y । उस j / n / 2 की आवश्यकता होने से , हम आश्वासन देते हैं कि j j n - j , इसलिए कम से कम एक y है । इस प्रकार हम यह भरोसा कर सकते हैं सब के विभाजन n संक्षेप द्वारा 1 (के लिए [n] और) - (जे, जे एन) च के सभी मान्य मान के लिए जे

कोड गणितीय फ़ंक्शन f का एक सीधा कार्यान्वयन है । इसके अलावा, यह k को 1 के लिए डिफ़ॉल्ट बनाता है , इसलिए इनपुट n के लिए f (n, 1)f(n) के मान की गणना करता है ।


अरे वाह, यह अविश्वसनीय है! क्या आप इस बात पर स्पष्टीकरण जोड़ सकते हैं कि यह कैसे काम करता है?

मैंने अपना उत्तर संपादित कर दिया है। अगर कुछ स्पष्ट नहीं है तो कृपया मुझे बताएं।
डेनिस

3

जे , 37 35 बाइट्स

0{]1&((#.]*>:@#.~/.~&.q:@#\%#),])1:

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

व्याख्या

0{]1&((#.]*>:@#.~/.~&.q:@#\%#),])1:  Input: n
                                 1:  Constant 1
  ]                                  Get n
   1&(                          )    Repeat n times on x = [1]
                          \            For each prefix
                         #               Length
                      q:@                Prime factors
                 /.~&                    Group equal factors
              #.~                        Compute p+p^2+...+p^k for each group
           >:@                           Increment
                    &.q:                 Product
                           %           Divide
                            #          Length
         ]                             Get x
          *                            Times
   1   #.                              Sum
                              ,        Joim
                               ]       Get x
                                       Set this as next value of x
0{                                   Select value at index 0

मैं गूंगा हूं और गूंगा हूं, मन एक स्पष्टीकरण पोस्ट कर रहा है?
कोल

1
@cole यह एक पुनरावृत्त दृष्टिकोण है जो पी (0) = 1 के समाधान के साथ शुरू होता है, और सूत्र का उपयोग करके अगला बनाता है p(n) = sum(sigma(n-k) * p(k) for k = 0 to n-1) / n। मैं बाद में कोड की एक व्याख्या जोड़ूंगा जब मुझे विश्वास होगा कि इसे काफी छोटा नहीं किया जा सकता है।
मील

2

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

n=>(z=(a,b)=>[...Array(a)].map(b))(++n**n,(_,a)=>z[F=z(n,_=>a%(a/=n,n)|0).sort().join`+`]=b+=eval(F)==n-1&!z[F],b=0)|b||1

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

चेतावनी: समय और अंतरिक्ष जटिलता घातीय है। बड़ी संख्या के लिए बहुत धीमी गति से काम करता है।


2

पायथन 2 , 89 बाइट्स

-9 बाइट्स by Mr.Xcoder -1 byte by notjagan

lambda n:len(p(n))
p=lambda n,I=1:{(n,)}|{y+(x,)for x in range(I,n/2+1)for y in p(n-x,x)}

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



@ Mr.Xcoder को यह भी पता नहीं है, कि मैंने लैम्बडा डी का उपयोग क्यों नहीं किया:
डेड पोसुम

Hehe, ¯\_(ツ)_/¯- BTW, यदि आप इसे एक पूर्ण कार्य रखना चाहते हैं, तो आपको चर की जरूरत नहीं होगी, 94 बाइट्स
श्री Xcoder

@ Mr.Xcoder हाँ .. मैं कुछ समय बाद कोडगॉल्फ से दूर होने के कारण कठोर महसूस कर रहा हूँ: c
डेड



0

जावा 8 (229 बाइट्स)

import java.util.function.*;class A{static int j=0;static BiConsumer<Integer,Integer>f=(n,m)->{if(n==0)j++;else for(int i=Math.min(m,n);i>=1;i--)A.f.accept(n-i,i);};static Function<Integer,Integer>g=n->{f.accept(n,n);return j;};}

Ungolfed:

import java.util.function.*;

class A {
    static int j = 0;
    static BiConsumer<Integer, Integer> f = (n, m) -> {
        if (n == 0)
            j++;
        else
            for (int i = Math.min(m, n); i >= 1; i--)
                A.f.accept(n - i, i);
    };
    static Function<Integer, Integer> g = n -> {
        f.accept(n, n);
        return j;
    };
}

0

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

Œṗपरमाणु हाल ही में जोड़ा गया है, और इसका मतलब है "पूर्णांक विभाजन"।

ŒṗL

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

ŒṗL - पूर्ण कार्यक्रम।

Part - पूर्णांक विभाजन।
  एल - लंबाई।
      - आउटपुट निहितार्थ।


0

जावास्क्रिप्ट ईएस 7, 69 बाइट्स

n=>(f=(i,s)=>i?[for(c of Array(1+n))f(i-1,s,s-=i)]:c+=!s)(n,n,c=0)&&c

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

n=>(f=(i,s)=>i?[...Array(1+n)].map(_=>f(i-1,s,s-=i)):c+=!s)(n,n,c=0)&&c

समय जटिलता O (n ^ n), इसलिए सावधान रहें (मेरे कंप्यूटर पर एक स्पष्ट देरी दिखाई देती है F(6))

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