जड़ों को घुमाएं


11

पूर्णांक गुणांक और जड़ों के साथ एक गैर-अक्षीय बहुपद को देखते हुए जो काल्पनिक और वास्तविक रेखा पर हैं जैसे कि यदि aएक जड़ है तो ऐसा है -a, एक और बहुपद को 90 डिग्री तक घुमाए गए जड़ों के साथ वापस लौटाएं।

विवरण

बहुपद को किसी भी उचित प्रारूप में दिया जा सकता है, उदाहरण के लिए गुणांक की सूची के रूप में। समरूपता की स्थिति जो aएक जड़ है और यदि केवल -aएक जड़ है, तो वास्तविक पूर्णांक गुणांक के रूप में अच्छी तरह से घुमाए गए बहुपद को लागू करता है।

उदाहरण

निम्नलिखित में बहुपद को अवरोही डिग्री में मोनोमियल के गुणांक की सूची के रूप में दिया जाता है। (अर्थात स्थिर अंतिम आता है) बहुपद x^2-1की जड़ें होती हैं {1,-1}। उनके द्वारा घूमने का 90°मतलब i(काल्पनिक इकाई) से गुणा करना है , इसलिए आउटपुट बहुपद में जड़ें होनी चाहिए {i,-i}, जो है x^2 + 1

Input / Output
[1 0 10 0 -127 0 -460 0 576]  [1 0 -10 0 -127 0 460 0 576]
[1 0 -4 0] [1 0 4 0]
[1] [1]

क्या मैं बहुपद के साथ-साथ बहुपद की डिग्री में ले सकता हूं
रोहन झुनझुनवाला

हां मुझे लगता है कि स्वीकार्य है।
शाम

आपके सभी उदाहरण राक्षसी बहुपद का उपयोग करते हैं। क्या हम मान सकते हैं कि इनपुट बहुपद मोनोनिक होगा? उत्पादन बहुपद है करने के लिए है monic हो सकता है?
डेनिस

नहीं, इसमें 1 के अलावा अन्य प्रमुख गुणांक भी हो सकते हैं, और आउटपुट को केवल एक अभिन्न बहु तक परिभाषित किया जाता है।
flawr

ऐसा लगता है कि प्रारूप में गुणांक की सूची नहीं है। उचित प्रारूप कहाँ तक जाते हैं? क्या मेरा प्रारूप अनिश्चितकाल में एक स्ट्रिंग अभिव्यक्ति हो सकता है x, ताकि मेरा सबमिशन स्ट्रिंग-रिप्लेस xहो सके (i*x)? क्या मेरा प्रारूप एक फ़ंक्शन है जो बहुपद का मूल्यांकन करता है, ताकि मेरा प्रस्तुतिकरण इसे फ़ंक्शन के साथ रचना कर सके x -> i*x?
xnor

जवाबों:


12

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

शुद्ध कार्य जो ix में x और विकल्प का कार्य करता है।

#/.x->I*x&

केवल 7 बाइट्स के साथ वैकल्पिक लेकिन यह निश्चित नहीं है कि यह मायने रखता है। शुद्ध फ़ंक्शन जो शुद्ध फ़ंक्शन में लेता है और x का फ़ंक्शन देता है।

#[I*x]&

5
और आपको किसी भी निर्माण की आवश्यकता नहीं थी!
नील

मुझे पूरा यकीन है कि एक शुद्ध कार्य बहुपद एक "उचित प्रारूप" है (जैसे यह यहां था ) यह #चर के रूप में उपयोग करता है और &अंत में है।
जंगहवान मिन

मैं इसे दो बार बढ़ाऊंगा अगर मैं कर सकता था
ग्रेग मार्टिन

दूसरे उत्तर के बारे में मेरी एकमात्र चिंता इनपुट (एक शुद्ध फ़ंक्शन) और आउटपुट (x का एक फ़ंक्शन) के बीच बेमेल थी।
इयान मिलर

6

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

Jı*Ċ×

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

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

पहले तत्व को 1, तीसरे तत्व से -1, आदि से गुणा करते हैं ।

Jı*Ċ×  argument: z
J      [1,2,...,len(z)]
 ı     i (the imaginary unit)
  *    to the power of (each element)
   Ċ   imaginary part
    ×  multiply by input (vectorize)

एल्गोरिथ्म का प्रमाण

बहुपद को होने दो f(x)

चूँकि हम इस बात की गारंटी देते हैं कि यदि xजड़ है तो ऐसा ही है -x, इसलिए fइसका अर्थ यह होना चाहिए कि विषम शक्तियों के लिए इसका गुणांक होना चाहिए0

अब, जड़ों को घुमाना 90°अनिवार्य है f(ix)

फिर गुणांक की तुलना करना विस्तार करना एल्गोरिथम साबित होता है।


इसलिए, हमें 2,4, 6, 8 वां आदि को छूने की आवश्यकता नहीं है?
रोहन झुनझुनवाला

2
वे वैसे भी शून्य हैं।
शाम

आपकी चाल ı*Ċबहुत अच्छी है, आपको इसे समझाना चाहिए :)
सिंह

@ यह अनिवार्य रूप से एक सीधा कार्यान्वयन है, हालांकि ...
लीक नून

यहाँ तर्क बिल्कुल सही नहीं है, क्योंकि आप इसके बजाय सभी गुणांक के लिए हो सकते हैं शक्तियों के भी हो सकते हैं 0.
janrrr जोहानसन

5

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

a=>a.map((e,i)=>i%4?-e:e)

मूल बहुपद में उस रूप के समाधान होते हैं x = ±aजहां वास्तविक या काल्पनिक रेखा पर झूठ होता है। सिवाय इसके कि कब a = 0(किस मामले xमें बहुपद का एक कारक है), इसका मतलब है कि x² - a²बहुपद का एक कारक है (जिसका अर्थ है वैकल्पिक शब्द हमेशा शून्य होते हैं)। अब जब हम जड़ों को घुमाते हैं, तो कारक बदल जाता है x² + a²। चूंकि सभी कारक एक ही समय में बदलते हैं, बहुपद का तीसरा शब्द, जो सभी -a²शब्दों का योग है , परिवर्तन का संकेत, पाँचवाँ शब्द, जो कि -a²शब्दों के जोड़े के उत्पादों का योग है, एक ही संकेत रखता है, आदि। बारी-बारी से हर दूसरे शब्द।


4

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

@(x)round(poly(roots(x)*j))

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

यह सीधे परिभाषा को लागू करता है: जड़ों की गणना करें, गुणा करें j, जड़ों से बहुपद में वापस बदलें। फ्लोटिंग-पॉइंट संख्यात्मक त्रुटियों के कारण एक अंतिम गोलाई आवश्यक है।



1

एसआईओएस , 71 66 बाइट्स

readIO
b=i
lbla
readIO
d=c
d&2
i=i*(1-d)
printInt i
b-1
c+1
if b a

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

मुझे इस बात का कोई मलाल नहीं है कि @Leaky Nun ने यहां 5 बाइट्स बचाने के लिए क्या किया।

मुझे पता लगाने के लिए एक सेकंड लिया, लेकिन सी का दूसरा बिट वैकल्पिक होगा जैसा हम चाहते हैं। इसलिए @Leaky नन ने बिट्स को बचाने के लिए इसका दोहन किया।



0

टीआई-बेसिक, 20 बाइट्स

seq(real(i^X/i)Ans(X),X,1,dim(Ans

यदि इसमें संग्रहीत किया जाता है prgmA, तो साथ चलाएं:

{1, 0, 3, 0, 1}:prgmA

seq(सिर्फ एक * कमांड होना चाहिए जो जटिल संख्याओं का समर्थन नहीं करता है। :)

*: अतिशयोक्ति


0

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

n|x=𝑖x

फ़ंक्शन, इयान मिलर के गणितज्ञ दृष्टिकोण का उपयोग कर। Math2 कीबोर्ड से काल्पनिक be का उपयोग करने की आवश्यकता है (2 बाइट्स, चार कोड 769 के रूप में गिना जाता है), और बहुपद को समीकरण के समीकरण के रूप में दर्ज किया जाना चाहिएx

कोड के लिए 7 बाइट्स, nएक पैरामीटर के रूप में निर्दिष्ट करने के लिए 1 बाइट ।

स्पष्टीकरण : समीकरण लेता है n, तो बस के xसाथ सभी उदाहरणों को बदलता है 𝑖x



0

स्टैक्स , 5 बाइट्स

Æ[]▐↨

भागो और डिबग ऑनलाइन!

पोर्ट ऑफ जेली उत्तर।

समझाने के लिए ASCII प्रतिनिधित्व का उपयोग करता है:

mih|1*
m         Map each element with rest of program, print mapped results on individual lines
 i        Current 0-based loop index
  h       Floor(i/2)
   |1     (-1)^(i/2)
     *    Multiply with current element

यदि अग्रणी शून्य हो सकते हैं, तो उन्हें पहले ट्रिम किया जाना चाहिए और यह एक अन्य बाइट की कीमत पर किया जा सकता है।

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