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


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.