গুণক আনডেলটা


9

আসুন মানগুলির "গুণক ডেল্টাস" সংজ্ঞায়িত করি হিসাবে:[a0,aN,]

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

বিপরীত অপারেশন - যথা "গুণগত আন্ডেল্টা" - এমন মানগুলি প্রদান করে যা উপরের ক্রিয়াকলাপ প্রদত্ত মানগুলিতে ফল দেয়।

উদাহরণ

প্রদত্ত মানগুলি " গুণক আনডেল্টা " অপারেশনের একটি সাধারণ সমাধান হ'ল:[1,5,3,2]

[a0,একটি01একটি1,একটি15একটি2,একটি23একটি3,একটি32একটি4]

শূন্য ব্যতীত অন্য যে কোনও মানের জন্য সেট করে একটি নির্দিষ্ট সমাধান পাওয়া যায় , উদাহরণস্বরূপ, আমরা পাবেন:একটি0একটি0: =1

[1,1,5,15,30]

চ্যালেঞ্জ

এই চ্যালেঞ্জটির জন্য আপনার কাজটি উপরে বর্ণিত ক্রিয়াকলাপটি " গুণক Undelta " বাস্তবায়ন করা ।

বিধি

ইনপুটগুলি হ'ল:

  • একটি শূন্য-মানএকটি0
  • শূন্য নয় এমন একটি তালিকা / অ্যারে / ভেক্টর / ... শূন্য নয় " গুণক ডেল্টাস "

আউটপুট মানগুলির তালিকা / অ্যারে / ভেক্টর / ... যা প্রথম উপাদানটি এবং যার জন্য " গুণক " ইনপুট হয়।একটি0

দ্রষ্টব্য: আপনার ভাষাতে যদি negativeণাত্মক পূর্ণসংখ্যার সমর্থন না থাকে তবে আপনি ইতিবাচক দ্বারা শূন্য-র প্রতিস্থাপন করতে পারেন ।

পরীক্ষার মামলা

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 + ডেল্টাসের সংখ্যার একক তালিকা নিতে পারি, যেখানে প্রথম আইটেমটি এ?
Adám

@ অ্যাডাম: আমি এটিকে বলব না কারণ এটি বিদ্যমান উত্তরের জন্য জিনিসগুলিকে পরিবর্তন করবে।
ბიმო

উত্তর:


17

হাস্কেল, 8 বাইট

scanl(*)

এটি অনলাইন চেষ্টা করুন!


আমি এটি পরীক্ষা করে নিচ্ছিলাম যে কেউ এটি লিখেছিল কিনা, এবং আমার মনে হয়েছিল যে এটি কোনও লিখেছেন এবং আমি "শীতল, তারপরে আমি লিখব" এবং তারপরে পৃষ্ঠার নীচে আপনার উত্তরটি দেখেছি। upvoted।
উইন্ডমিল কুকিজ

9

এপিএল (ডায়ালগ), 3 বাইট

×\∊

এটি অনলাইন চেষ্টা করুন!

যদি আমাকে বাম দিকে এবং ডানদিকে অ্যারেটি নিতে হয়:

-2 @ এইচ.পি.উইজকে ধন্যবাদ

7 5 3 বাইট

×\,


2
⊣,⊢সবেমাত্র হতে পারে,
এইচ.পি.উইজ

@ এইচপিউইজ ধন্যবাদ, আমার স্বীকৃতি অত্যন্ত দুর্বল
কুইনটেক

আপনার প্যারেন্স দরকার নেই; ×\,একটি ফাংশন মূল্যায়ন।
ডেনিস

@ ডেনিস দুর্ভাগ্যক্রমে কাজ করছে বলে মনে হচ্ছে না
কুইনটেক

আপনার প্যারেনগুলি গণনা করার দরকার নেই, কারণ কিছু পরিস্থিতিতে তাদের প্রয়োজন নেই। f←×\উদাহরণস্বরূপ, কাজ করে। বিটিডব্লিউ, আপনার পারমালিঙ্কটি (-12 3 -17 1311)হওয়া উচিত (¯12 3 ¯17 1311)
ডেনিস

8

আর , 15 বাইট

cumprod(scan())

এটি অনলাইন চেষ্টা করুন!

পুরো প্রোগ্রাম। ফাংশনটি দীর্ঘতর (যদি না ইনপুটগুলিকে একসাথে "আঠালো" করার অনুমতি না দেওয়া হয়, যাতে বিল্ট-ইন cumprodপুরো উত্তর হিসাবে যথেষ্ট হয়):

আর , 28 বাইট

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

এটি অনলাইন চেষ্টা করুন!







2

ওল্ফ্রাম ভাষা (গণিত) , 14 বাইট matic

FoldList@Times

এটি অনলাইন চেষ্টা করুন!

FoldList[Times, a0, {x1, x2, ..., xn}]পছন্দসই আউটপুট উত্পাদন করে। FoldList[Times]এটি তরকারিযুক্ত ফর্ম যা এখনও খাঁটি ফাংশন উত্পাদন করে a0এবং এর জন্য অপেক্ষা করে {x1, x2, ..., xn}




2

জে , 6 5 বাইট

-1 বাইট বাবলার ধন্যবাদ

*/\@,

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

একটি ডায়াডিক ক্রিয়া, বাম আর্গুমেন্ট a0, দৃ the় এক - ভেক্টর

     @, - 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 কমান্ড-লাইন আর্গুমেন্ট হিসাবে STDIN এবং ডেল্টাসে।




1

05 এ বি 1 ই , 5 3 বাইট

šηP

-২ বাইট @ বিএমওকে ধন্যবাদ ।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

š      # 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অদলবদল হয়, এবং šতালিকার শুরুতে অগ্রিম হয়। যেভাবেই হোক, -২-কে ধন্যবাদ
কেভিন ক্রুইজসেন

1

পাইথ, 6 বাইট

*FR._s

এখানে একটি পরীক্ষা!

বিকল্পভাবে, 7 বাইট:

.u*NYEQ

এখানে পরীক্ষা!

প্রথমটি টিপল হিসাবে ইনপুট নেয়, দ্বিতীয়টি দুটি পৃথক লাইন হিসাবে ইনপুট নেয়।

@ সোককে ধন্যবাদ ম্যাপিং এবং 1 বাইট সংরক্ষণে আমাকে সহায়তা করার জন্য ধন্যবাদ।


1
দ্বিতীয় সমাধান হিসাবে মানচিত্রটি প্রয়োগ করে বাইট সংরক্ষণ করতে পারেন R, যেমন *FR._s- বিক্ষোভ
সোক

@ সুক ভালো লাগছে! আমি 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

আমি অন্তর্নিহিত ইনপুট দিয়ে `the এর হ্যান্ডলিংটিকে নতুন করে ডিজাইন করেছি। এটি এখনও স্ট্যাকের আইটেমগুলিকে একইভাবে পরিচালনা করে তবে এখন এটি কেবল একটির পরিবর্তে স্ট্যাকের উপর ইনপুট থেকে দুটি উপাদানকে পপ করে। আমি মনে করি এটি এই চ্যালেঞ্জের জন্য কার্যকর হতে পারে।
সর্বোচ্চ


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]

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.