बहुपद ज्ञात कीजिए


20

हम जानते हैं कि f गैर-ऋणात्मक पूर्णांक गुणांक वाला एक बहुपद है।

यह देखते हुए च (1) और च (1 + एफ (1)) वापसी । आप गुणांक की एक सूची के रूप में एफ उत्पादन कर सकते हैं , एक ASCII स्वरूपित बहुपद, या समान।

उदाहरण:

f(1)  f(1+f(1))  f
0     0          0
1     1          1
5     75         2x^2 + 3
30    3904800    4x^4 + 7x^3 + 2x^2 + 8x + 9
1     1073741824 x^30

1
रैंडम प्रश्न: मैं भी साबित / अब यह अधिकार खंडन करने की कोशिश करने के लिए थक गया हूँ, लेकिन यह गारंटी है कि हम हमेशा से एक जवाब प्राप्त करने में सक्षम हो जाएगा f(1)और f(1+f(1))?
हाइपरएनुट्रीनो

4
@ हैपरनेट्रिनो मैंने इस चुनौती को अन्यथा नहीं बनाया है।
orlp

सही, यह एक अच्छी बात है। हम्म। दिलचस्प है, मैं कल को साबित करने पर ध्यान दूंगा क्योंकि यह बहुत दिलचस्प है। दिलचस्प चुनौती के लिए धन्यवाद!
हाइपरएन्यूट्रीनो

1
आधार-रूपांतरण टैग एक संकेत माना जाता है?
थुंडा

9
जितना यह एक प्यारा पहेली है, मुझे लगता है कि कोड मूल रूप से आधार रूपांतरण है। संभवतः धोखा?
xnor

जवाबों:


27

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

‘b@

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

गुणांक की सूची के रूप में बहुपद लौटाता है।

चूंकि हम जानते हैं कि बहुपद में गैर-ऋणात्मक पूर्णांक गुणांक होते हैं, इसलिए f (b) को आधार की परिभाषा द्वारा " बहुपद के गुणांक, आधार b अंक के रूप में लिया गया" के रूप में व्याख्या किया जा सकता है । यह इस शर्त के अधीन है कि कोई भी गुणांक अधिक नहीं है या b के बराबर है , लेकिन हम जानते हैं कि, क्योंकि b गुणांक के योग (जो f (1) ) से अधिक है।

कार्यक्रम केवल 1 + f (1) प्राप्त करने के लिए पहले तर्क ( ) को बढ़ाता है , फिर आधार के रूप में आधार तर्क के साथ परमाणु रूपांतरण ( ) को आधार और दूसरे तर्क को संख्या के रूप में कहता है ( तर्कों के क्रम को स्वैप करने के लिए,) चूंकि आमतौर पर संख्या पहले और आधार दूसरी होती है)।b@b

यह काफी चतुर चुनौती थी; धन्यवाद orlp!


13
दुनिया में यह कैसे संभव है
थुंडा

मुझे जेली सीखने की ज़रूरत है ...
sagiksp

डेनिस को यह सुनिश्चित करने के लिए देखना होगा।
को एर्गेल्फ़र

6

गणितज्ञ, २ ९ २ 29 बाइट्स

1 बाइट बचाने के लिए JungHwan Min को धन्यवाद! (विडंबना यह है कि Max)

#2~IntegerDigits~Max[#+1,2]&

दो nonnegative पूर्णांक लेने और (nonnegative पूर्णांक) गुणांक की एक सूची वापस लेने का शुद्ध कार्य। Doorknob के जेली जवाब#2~IntegerDigits~(#+1) में के रूप में एक ही एल्गोरिथ्म होगा ; दुर्भाग्य से, जब आधार 1 के बराबर होता है , तो गणितज्ञ के चुटकुले, इसलिए अतिरिक्त बाइट्स की आवश्यकता होती है ।IntegerDigitsMax[...,2]


2
हाहा, अच्छा लगा।
जुंगवान मिन


3

VBA, 75 बाइट्स

Sub f(b,n)
b=b+1
Do While n>0
s=n Mod b &" " &s
n=n\b
Loop
Debug.?s
End Sub

जब यह स्वचालित रूप से प्रारूपित होता है, तो यह इस तरह दिखता है:

Sub f(b, n)
    b = b + 1
    Do While n > 0
        s = n Mod b & " " & s
        n = n \ b
    Loop
    Debug.Print s
End Sub

\ऑपरेटर एक मंजिल विभाजित है


1

एएचके , 63 बाइट्स

a=%1%
b=%2%
a+=1
While b>0
{s:=Mod(b,a) " "s
b:=b//a
}
Send,%s%

AutoHotkey आने वाले मापदंडों के लिए चर नामों के रूप में संख्या 1-n प्रदान करता है। जब आप उन कार्यों का उपयोग करने का प्रयास करते हैं, तो यह कुछ समस्याएँ पैदा करता है क्योंकि यह आपको लगता है कि आप 1 नाम के चर के बजाय शाब्दिक संख्या 1 का मतलब है। मुझे जो सबसे अच्छा समाधान मिल सकता है वह है उन्हें अलग-अलग चर में असाइन करना।


1

जावा, 53 बाइट्स

a->b->{while(b>0){System.out.println(b%-~a);b/=a+1;}}

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

अभिव्यक्ति को Function<Integer, IntConsumer>पहले दिया जाना चाहिए और applyफिर फंक्शन को आईएनजी द्वारा बुलाया जाएगा , फिर acceptआईएनजी को दिया जाएगा int। जावा 9 के साथ किसी भी आयात की आवश्यकता नहीं है jshell:

C:\Users\daico>jshell
|  Welcome to JShell -- Version 9-ea
|  For an introduction type: /help intro

jshell> Function<Integer, IntConsumer> golf =
        a->b->{while(b>0){System.out.println(b%-~a);b/=a+1;}}
golf ==> $Lambda$14/13326370@4b9e13df

jshell> golf.apply(30).accept(3904800)
9
8
2
7
4

1

आम लिस्प, 87 बाइट्स

(defun p(x y)(multiple-value-bind(q m)(floor y (1+ x))(if(= 0 q)`(,m)`(,m ,@(p x q)))))

Ungolfed:

(defun find-polynomial (f<1> f<1+f<1>>)
  (multiple-value-bind (q m)
      (floor f<1+f<1>> (1+ f<1>))
    (if (zerop q) `(,m)
      (cons m (find-polynomial f<1> q)))))

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