गुणक undelta


9

आइए हम मानों के "गुणात्मक डेल्टा" को परिभाषित करें[a0,aN,] जैसा:

[a1/a0,,ai+1/ai,,aN/aN1]

रिवर्स ऑपरेशन - अर्थात् "गुणात्मक undelta" - मानों को ऐसे लौटाता है कि ऊपर दिए गए ऑपरेशन के परिणाम दिए गए मान हैं।

उदाहरण

मान दिया [1,5,3,2]" गुणक undelta " ऑपरेशन के लिए एक सामान्य समाधान है:

[a0,a01a1,a15a2,a23a3,a32a4]

सेटिंग द्वारा एक विशेष समाधान प्राप्त किया जा सकता है a0 शून्य के अलावा किसी भी मूल्य के लिए, उदाहरण के लिए सेटिंग द्वारा a0:=1 हमें मिलेगा:

[1,1,5,15,30]

चुनौती

इस चुनौती के लिए आपका काम ऑपरेशन " गुणात्मक undelta " को लागू करना है जैसा कि ऊपर बताया गया है।

नियम

इनपुट हैं:

  • एक शून्य-शून्य मान a0
  • एक गैर-रिक्त सूची / सरणी / वेक्टर / ... गैर-शून्य " गुणक डेल्टा "

आउटपुट एक सूची / सरणी / वेक्टर / ... मान है जैसे कि पहला तत्व है a0और जिसके लिए " गुणक डेल्टा " इनपुट हैं।

नोट: यदि आपकी भाषा में नकारात्मक पूर्णांक का समर्थन नहीं है, तो आप गैर-शून्य को सकारात्मक द्वारा प्रतिस्थापित कर सकते हैं ।

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

2 [21] -> [2,42]
1 [1,5,3,2] -> [1,1,5,15,30]
-1 [1,5,3,2] -> [-1,-1,-5,-15,-30]
7 [1,-5,3,2] -> [7,7,-35,-105,-210]
2 [-12,3,-17,1311] -> [2,-24,-72,1224,1604664]
-12 [7,-1,-12,4] -> [-12,-84,84,-1008,-4032]
1 [2,2,2,2,2,2,2,2] -> [1,2,4,8,16,32,64,128,256]

क्या हम डेल्टास की लंबाई 1 + संख्या की एक सूची ले सकते हैं, जहां पहला आइटम a list है?
अड्म

@ Adám: मैं नहीं कह रहा हूँ क्योंकि यह मौजूदा उत्तरों के लिए चीजों को बदल देगा।
ბიმო

जवाबों:


17

हास्केल, 8 बाइट्स

scanl(*)

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


मैं जाँच कर रहा था कि क्या किसी ने यह लिखा है, और मुझे लगा कि किसी ने इसे नहीं लिखा है और मैंने कहा "अच्छा है, तो मैं लिखूंगा" और फिर पृष्ठ के निचले भाग में आपका उत्तर देखा। upvoted।
विंडमिल कुकीज

9

एपीएल (डायलॉग), 3 बाइट्स

×\∊

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

अगर मुझे बाईं ओर संख्या और दाईं ओर सरणी लेना है:

-2 @ H.PWiz को धन्यवाद

7 5 3 बाइट्स

×\,


2
⊣,⊢बस हो सकता है,
H.PWiz

@ H.PWiz धन्यवाद, मेरा टैटिट बहुत कमजोर है
क्विंटेक

आपको परनों की आवश्यकता नहीं है; ×\,एक फ़ंक्शन का मूल्यांकन करता है।
डेनिस

@ डेनिस दुर्भाग्य से काम नहीं कर रहे हैं
क्विंटेक

आपको Parens की गिनती करने की आवश्यकता नहीं है, क्योंकि उन्हें कुछ स्थितियों में ज़रूरत नहीं है। f←×\उदाहरण के लिए, काम करता है। Btw, (-12 3 -17 1311)आपके permalink में होना चाहिए (¯12 3 ¯17 1311)
डेनिस

8

आर , 15 बाइट्स

cumprod(scan())

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

पूरा कार्यक्रम। फ़ंक्शन लंबा है (जब तक हमें इनपुट को "गोंद" करने की अनुमति नहीं दी गई थी, ताकि बिल्ट-इन cumprodएक पूर्ण उत्तर के रूप में पर्याप्त हो):

आर , 28 बाइट्स

function(i,x)cumprod(c(i,x))

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







2

वोल्फ्राम भाषा (गणितज्ञ) , 14 बाइट्स

FoldList@Times

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

FoldList[Times, a0, {x1, x2, ..., xn}]वांछित उत्पादन करता है। FoldList[Times]curried रूप है कि एक शुद्ध समारोह अभी भी के लिए इंतज़ार कर अपनी उत्पादन होता है a0और {x1, x2, ..., xn}




2

जे , 6 5 बाइट्स

-1 बटलर थैंक्स टू बटलर

*/\@,

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

स्पष्टीकरण:

एक तिर्यक क्रिया, बाएं तर्क, कठोर a0एक - सदिश है

     @, - append the vector to a0 and 
  */\   - find the running product


@ बब्बर हां, बिल्कुल! धन्यवाद!
गैलेन इवानोव

1

बैच, 69 बाइट्स

@set/pa=
@echo %a%
@for %%d in (%*) do @set/aa*=%%d&call echo %%a%%

का इनपुट लेता है 0 एसटीडीआईएन और डेल्टा पर कमांड-लाइन तर्क के रूप में।




1

05AB1E , 5 3 बाइट्स

šηP

-2 बाइट्स @ बीएमओ को धन्यवाद ।

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

š      # Prepend the (implicit) input-integer at the start of the (implicit) input-list
       #  i.e. -12 and [7,-1,-12,4] → ["-12",7,-1,-12,4]
 η     # Prefixes of this new list
       #  i.e. ["-12",7,-1,-12,4]
       #   → [["-12"],["-12",7],["-12",7,-1],["-12",7,-1,-12],["-12",7,-1,-12,4]]
  P    # Take the product of each inner list (and output implicitly)
       #  i.e. [["-12"],["-12",7],["-12",7,-1],["-12",7,-1,-12],["-12",7,-1,-12,4]]
       #   → [-12,-84,84,-1008,-4032]

1
नहीं, sअन्य इनपुट प्राप्त करने के लिए वहाँ था। :) sस्वैप है, और šसूची की शुरुआत में प्रीपेड है। किसी भी तरह, -2 के लिए धन्यवाद
केविन क्रूज़सेन

1

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

*FR._s

परीक्षण है कि यहाँ एक!

वैकल्पिक रूप से, 7 बाइट्स:

.u*NYEQ

इसे यहाँ टेस्ट करें!

पहला इनपुट को टुपल के रूप में लेता है, दूसरा इनपुट को दो अलग-अलग लाइनों के रूप में लेता है।

मैपिंग में अच्छी मदद करने और 1 बाइट बचाने के लिए @Sok का धन्यवाद।


1
आप नक्शे को दूसरे समाधान में लागू करके एक बाइट को बचा सकते हैं R, जैसे कि *FR._s- प्रदर्शन
सोक

@Sok अच्छा पकड़! मैंने Mयह मानकर काम करने की कोशिश की थी , तब चीनी की पार्स विफलता मिली - ज्यादातर क्योंकि मुझे याद नहीं था कि कैसे F <pf2>काम करने के लिए पार्सिंग किया गया था।
स्टीवन एच।

मैं ईमानदार हो जाएगा, मैं सच में समझ में नहीं आता कि कैसे नेस्ट M, F, L, और Rकाम करते हैं, मैं तो बस एक गुच्छा की कोशिश की जब तक एक काम किया: ओ)
सोक


1

पॉवरशेल , 29 बाइट्स

param($a,$b)$a;$b|%{($a*=$_)}

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

यह मान लिया गया है कि मानों का उत्पादन ठीक है।

> .\scratch.ps1 1 (1,5,3,2)
1
1
5
15
30

अगर यह ठीक नहीं है, तो यह वास्तव में सूची बनाता है और फिर उसे आगे बढ़ाता है जो उसी तरह प्रिंट करता है।

param($a,$b)$c=,$a;$b|%{$c+=$_*$c[-1]};$c #41 bytes

नियम हैं: Output is a list/array/vector/। तो, पहले ठीक है।
mazzy

1

मठगोल्फ , 6 5 बाइट्स

\{\o*

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

मुझे लगता है कि यह 5 बाइट्स हो सकता है ( \{\o*) लेकिन \इनपुट के साथ काम करते समय निर्देश थोड़ा हटकर लगता है। यह अब नवीनतम संस्करण में तय हो गया है।

स्पष्टीकरण:

\       Swap arguments, pushing both to stack
 {      Foreach loop over second argument
  \o    Output counter with newline
    *   Multiply counter by current element
        Implicitly output the last element

मैंने अंतर्निहित इनपुट के साथ `` की हैंडलिंग को फिर से डिजाइन किया है। यह अभी भी उसी तरह से स्टैक पर आइटम को संभालता है, लेकिन अब यह केवल एक के बजाय स्टैक पर इनपुट से दो तत्वों को पॉप करता है। मुझे लगता है कि यह इस चुनौती के लिए उपयोगी हो सकता है।
अधिकतम


0

चारकोल , 12 बाइट्स

IE⁺⟦N⟧AΠ⊞Oυι

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

    N           Input a₀
   ⟦ ⟧          Wrap in a list
      A         Input deltas as a list
  ⁺              Concatenate lists
 E              Map over elements
           ι    Current element
          υ     Predefined empty list variable
        ⊞O      Push and return updated list
       Π        Product
I               Cast to string
                Implicitly print each value on its own line

0

के (ओके) , 9 बाइट्स

{(*\)x,y}

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

एक सूची के रूप में दूसरे इनपुट में पहले नंबर से जुड़ता है, और फिर गुणन के क्रमिक परिणाम देता है

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

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

{(*\)x,y}[1;1 5 3 2]

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