আমার চক্রীয় উত্তরসূরিদের যোগফল দ্বারা আমাকে প্রতিস্থাপন করুন!


25

আপনার কাছে আমার কাছে এবার সহজ চ্যালেঞ্জ have ধনাত্মক পূর্ণসংখ্যা একটি অ্যারের দেওয়া একটি (বা আপনার ভাষায় সমতুল্য), প্রতিটি এন্ট্রি প্রতিস্থাপন একটি আমি পরবর্তী সমষ্টি সঙ্গে একটি আমি উপাদান একটি , শুরু থেকে ফিরে সাইকেল যদি পর্যাপ্ত আইটেম নয়।

যথারীতি, আপনি যে কোনও প্রোগ্রামিং ভাষায় প্রতিযোগিতা করতে পারেন এবং যে কোনও মানক পদ্ধতিতে এবং কোনও যুক্তিসঙ্গত ফর্ম্যাটে ইনপুট নিতে এবং আউটপুট সরবরাহ করতে পারেন , এবং এই লুফোলগুলি ডিফল্টরূপে নিষিদ্ধ রয়েছে তা খেয়াল করে। আপনি ইনপুট হিসাবে A চ্ছিকভাবে A এর আকারও নিতে পারেন । এটি , তাই প্রতিটি ভাষার জন্য সংক্ষিপ্ততম জমা (বাইটে) জিততে পারে।

উদাহরণ / পরীক্ষার কেস

প্রদত্ত [1,3,4,5]আপনার কোড আউটপুট উচিত [3,10,13,14], কারণ 1দ্বারা প্রতিস্থাপিত হয় 3, 3দ্বারা প্রতিস্থাপিত হয় 4+5+1=10(নোটিশ কিভাবে এটা শুরু থেকে ফিরে আবৃত), 4দ্বারা 5+1+3+4=13এবং 5দ্বারা 1+3+4+5+1=14

প্রদত্ত [3,2,1,9], আপনার প্রোগ্রাম উত্পাদন করা উচিত [12,10,9,33], কারণ আমরা প্রতিস্থাপন 3সঙ্গে 2+1+9=12, 2সঙ্গে 1+9=10, 1সঙ্গে 9এবং 9সঙ্গে 3+2+1+9+3+2+1+9+3=33(নোটিশ কিভাবে আমরা আরো সূচনা থেকে ফিরে একবারের আবৃত)।

আপনার চয়ন করার জন্য আরও কয়েকটি পরীক্ষার কেস:

[4,3,2,1]                       -> [10,7,5,4]
[3,2,1,9]                       -> [12,10,9,33]
[1,3,4,5]                       -> [3,10,13,14]
[4,4,3,2,2]                     -> [11,11,8,6,8]
[3,5,3,2,1]                     -> [10,14,6,4,3]
[3,2,4,3,2,1,1]                 -> [9,7,7,4,2,1,3]
[7,8,6,5,4,3,2,1,5]             -> [29,33,20,15,11,8,6,5,30]
[28,2,4,2,3,2,3,4,5,3]          -> [137,6,10,5,9,7,12,38,39,34]
[1,2,3,4,5,4,3,2,1,2,3,4,3,2,1] -> [2,7,13,14,12,8,5,3,2,7,9,7,4,2,1]

উত্তর:


8

এমএটিএল , 10 9 বাইট

"G@:X@+)s

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

	% implicit input
"	% for loop, iterate over the input array 
G	% push input x
@	% push for loop index, x[i]
:	% range, push [1,...,x[i]]
X@	% push for loop index, i
+	% sum, so stack holds [i+1,...,i+x[i]]
)	% index, modularly, so gets the cyclic successors
s	% sum cyclic successors, leaving the sum on the stack
	% implicit end of for loop
	% implicit output of stack

6

... আহ নিনজা'দ :(
জোনাথন অ্যালান

@ জোনাথান অ্যালান টিবিএফ, আপনি নিজের পোস্ট করার সময় আমি ইতিমধ্যে এক বা দুই মিনিটের জন্য এই মিথ্যা বলছিলাম (আমি ভেবেছিলাম পূর্ণসংখ্যাটি নিজেও পাশাপাশি অন্তর্ভুক্ত করা উচিত, সুতরাং +শেষে অতিরিক্ত হিসাবে )। এছাড়াও, এহ, সম্ভবত আপনি পরের বার আমাকে নিনজা হবে। :)
এরিক আউটগল্ফার

6

পাইথন , 55 বাইট

lambda a:[sum((-~v*a)[i:i+v])for i,v in enumerate(a,1)]

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


পাইথনের সাথে খুব বেশি পরিচিত না আপনি কী পরিমাণের পরে পেরেন্সের অংশটি ব্যাখ্যা করতে পারেন?
জোনাহ

2
প্রথমত ~অপারেটরটি সামান্য দিকের নয়, এটি কার্যকরভাবে সংক্ষিপ্তরূপে হয় -1-v, তাই -~vশর্টহ্যান্ড -(-1-v)যার জন্য ঠিক 1+v(তবে প্যারেন্টেসিসের মতো এড়ানো হয় (1+v)*a)। দ্বিতীয়ত পাইথন-এ কোনও ব্যক্তির তালিকা পুনরাবৃত্তি করতে কোনও পূর্ণসংখ্যার (যেমনটি ['a','b']*3হয় ['a','b','a','b','a','b']) দ্বারা গুণিত করতে পারে । -~v*aদ্বারা প্রতিস্থাপিত হতে পারে a+v*aএকই বাইট গণনা জন্য। অবশেষে এটি [i:i+v]হ'ল স্লাইস ইনডেক্সিং, উপাদানগুলিকে iকেবল i+v-1(0-ইনডেক্সড) রেখে ।
জোনাথন অ্যালান

6

জে, 33 বাইট

[:({.+/@{.}.)"1 i.@#|."{($~>./*#)

ungolfed

[: ({. +/@{. }.)"1 i.@# |."0 _ ($~ (>./ * #))

ব্যাখ্যা

এখানে চিত্র বর্ণনা লিখুন

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


অভিনব ব্যাখ্যা: ও
কনার ও'ব্রায়ান

1
সেখানে দুর্দান্ত ছবি, তবে আমি ব্যাখ্যাটিও টেক্সট আকারে রাখার পরামর্শ দিচ্ছি, কারণ চিত্রগুলি চিরকাল স্থায়ী হয় না। ;)
এরিক দি আউটগলফার

7
এটি কোনও রোগুয়ালাইক গেমের মতো দেখাচ্ছে।
Aschapler

আপনি যদি আমার কে সমাধানটি জেতে আবার লিখেন তবে স্কোরটি কী ?
স্ট্রিস্টার

6

সি (জিসিসি) , 86 85 বাইট

  • করার জন্য একটি বাইট ধন্যবাদ সংরক্ষিত জ্যাকব
C(y,c,l,i,k)int*y;{for(l=~0;++l<c;printf("%d,",k))for(k=i=0;i++<y[l];k+=y[(l+i)%c]);}

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


-1 বাইট:for(k=i=0;i++<y[l];)k+=y[(l+i)%c];
Jakob

1
আমার upvote জন্য C(y,c,l,i,k)
জোনাস শোফার

6

হাস্কেল, 50 47 44 বাইট

zipWith((sum.).take)<*>scanr(:)[].tail.cycle

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

                    -- <*> in function context is Haskell's S combinator, i.e.
                    --     (zipWith ... <*> scanr ...) arg
                    -- resovles to
                    --     zipWith ... arg (scanr ... arg)
zipWith             -- so we zip
                    --   the input list and
 scanr(:)[]         --   the tails (tails of [1,2,3] are [[1,2,3],[2,3],[3],[]])
      tail          --   of the tail of
          cycle     --   and infinite cycle of the input list
                    -- with the function
 (sum.).take        --   take that many elements given by the element
                    --   of the input list from the list given by the inits
                    --   and sum it   

সুন্দর কাজ! প্রকৃতপক্ষে, স্ক্যানার (:) [] লেজ রয়েছে
ড্যামিয়েন

@ দামিয়ান: লেজ রাইট! ধন্যবাদ!
নিমি


4

কে 4 / কে (ওকে) , 20 19 বাইট

সমাধান:

+/'x#'1_(1+2##x)#x:

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

উদাহরণ:

q)k)+/'x#'1_(1+2##x)#x:1 3 4 5
3 10 13 14
q)k)+/'x#'1_(1+2##x)#x:4 3 2 1
10 7 5 4
q)k)+/'x#'1_(1+2##x)#x:3 2 4 3 2 1 1
9 7 7 4 2 1 3
q)k)+/'x#'1_(1+2##x)#x:1 2 3 4 5 4 3 2 1 2 3 4 3 2 1
2 7 13 14 12 8 5 3 2 7 9 7 4 2 1

ব্যাখ্যা:

পুনর্নির্মাণ ইনপুট, প্রথমে ড্রপ, প্রতিটি এক্স দৈর্ঘ্য নিন, যোগফল।

+/'x#'1_(1+2##x)#x: / the solution
                 x: / store input as x
                #   / reshape
        (      )    / do this together
             #x     / count x
           2#       / duplicate (2-take)
         1+         / add 1
      1_            / 1 drop (_), remove first element
   x#'              / x take each-both
+/'                 / sum (+/) each


3

সংযুক্তি , 26 বাইট

{Sum=>_[(_2+1:_)%#_]}#Iota

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

ব্যাখ্যা

এটি দুটি ফাংশনের একটি কাঁটাচামচ:

  • {Sum=>_[(_2+1:_)%#_]}
  • Iota

এর অর্থ কী, ডান টাইনটি Iotaআর্গুমেন্টে প্রয়োগ করা হয় xএবং সেন্টার টাইন (প্রথম ফাংশন) এর দ্বিতীয় আর্গুমেন্ট হিসাবে পাস করা হয়। সুতরাং এটি হয়ে যায়, ইনপুটটির জন্য x:

{Sum=>_[(_2+1:_)%#_]}[x, Iota[x]]

এর জন্য _এবং তাদের প্রতিস্থাপন _2:

Sum => x[(Iota[x] + 1:x) % #x]

Iota[x]এর সূচকগুলির একটি অ্যারে প্রদান করে x। এটা তোলে সমতুল্য 0...#x#xআকার বলার অপেক্ষা রাখে না অল্প উপায় x, অথবা Size[x]। সংক্ষেপে, এই ফাংশনটি Sumদ্বিতীয় প্রকাশের উপরে ফাংশনটি ম্যাপিং করছে :

x[(Iota[x] + 1:x) % #x]

বাইরের x[...]বিটের অর্থ এটি ...থেকে নির্বাচন করা সূচিগুলির একটি সিরিজ তৈরি করবে x। সূচকগুলি তৈরির সবচেয়ে গুরুত্বপূর্ণ অংশটি হ'ল:

Iota[x] + 1:x

এই প্রকাশটি কিছুটা ভেক্টরাইজেশন ব্যবহার করে। এটি কল্পনা করার জন্য, ধরা যাক ইনপুটটি x := [1, 3, 4, 5]। তারপরে, এই অভিব্যক্তিটি সমান:

Iota[[1, 3, 4, 5]] + 1:[1, 3, 4, 5]
[0, 1, 2, 3] + [1:1, 1:3, 1:4, 1:5]
[0, 1, 2, 3] + [[1], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5]]
[0 + [1], 1 + [1, 2, 3], 2 + [1, 2, 3, 4], 3 + [1, 2, 3, 4, 5]]
[[0 + 1], [1 + 1, 1 + 2, 1 + 3], [2 + 1, 2 + 2, 2 + 3, 2 + 4], [3 + 1, 3 + 2, 3 + 3, 3 + 4, 3 + 5]]
[[1], [2, 3, 4], [3, 4, 5, 6], [4, 5, 6, 7, 8]]

এটি সূচকগুলির একটি তালিকা যা সূচকগুলিকে মোডে পরবর্তী Nউপাদানগুলির প্রতিনিধিত্ব করে । তাদের পুনরুদ্ধারের জন্য নিরাপদ করতে, আমরা এই অ্যারে মোডটি গ্রহণ করি :x#x#x

(Iota[x] + 1:x) % #x

এটি আমাদের যথাযথ সূচকগুলি দেয় যা পরে প্রাপ্ত হয় xএবং প্রতিটি অ্যারে সংক্ষিপ্ত করে যথাযথ ফলাফল দেয়।

অন্যান্য প্রচেষ্টা

৩ by বাইট: {Sum@_&Get=>((_2+1.._2+_)%#_)}#Iota - আমি x[...]সম্পূর্ণ ভেক্টরাইজগুলি ভুলে গিয়েছিলাম , যাতে এটি হয়ে যায়:

30 বাইট: {Sum=>_[(_2+1.._2+_)%#_]}#Iota - তবে তখন আমি বুঝতে পারি _2+অভ্যন্তরীণ পরিসীমাটি ফ্যাক্টর করা যেতে পারে, যার অর্থ আমরা বর্তমান সংস্করণটি দিয়ে :তার পরিবর্তে ব্যবহার করে বন্ধনীগুলি সংরক্ষণ করতে পারি ..


3

আর , 89 64 বাইট

j=rep(x<-scan(),max(x));Map(function(u,v)sum(j[v+1:u]),x,seq(x))

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

ইনপুট ভেক্টর থেকে প্রয়োজনীয় উপাদানগুলি পেতে আপনি ব্যবহার করতে পারেন এমন দীর্ঘ-পর্যাপ্ত সাইক্লিং সূচক ভেক্টর তৈরি করার মূল ধারণা।

মূল সংস্করণ:

function(x,i=seq(x),j=rep(i,max(x))){for(k in i){T=c(T,sum(x[j[(k+1):(k+x[k])]]))};T[-1]}

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


যেহেতু এটি দৈর্ঘ্যটিকে অতিরিক্ত যুক্তি হিসাবে গ্রহণ করার অনুমতি দেওয়া হয়েছে ... 75
জেসি

1
69 মজার আমি অনুরূপ কিছু শুরু করেছিলাম তবে cumsum ব্যবহার করে এবং প্রক্রিয়াটিতে হারিয়ে গিয়েছিলাম ... চমৎকার সমাধান!
জয়সি

66 (MAP ব্যবহার তাই Tio লিংক উন তালিকা এটা আমি একটি পুরো প্রোগ্রাম এমনকি খাটো হবে আউটপুট একটি বিট কুশ্রী হয়।।!
JayCe



3

আর , 62 58 বাইট

function(a,l)diag(diffinv(matrix(a,max(a)*l+1,l))[a+2,])-a

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

অন্যান্য আর সমাধানের বিকল্প । মন্তব্যে জাইসি একটি উল্লেখ করেছিলেনcumsum যা আমার মস্তিস্কে কিছু ব্যবহার করার জন্য ট্রিগার করেছিল diffinvএবং পরিবর্তে ম্যাট্রিক্স পুনর্ব্যবহারযোগ্য rep

ব্যাখ্যা:

ইনপুট অ্যারে দেওয়া হয়েছে a, M=max(a)এবং l=length(a)

মান্য যে M+lসর্বাধিক সম্ভাব্য সূচক অ্যাক্সেস প্রয়োজন চাই, এবং যে হয় M+l<=M*l+1, যেহেতু যদি M,l>1, M+l<=M*l(সমতা সঙ্গে শুধুমাত্র যখন M=l=2) এবং যদি l==1বা M==1, তারপর M+l==M*l+1

উদাহরণস্বরূপ, যাক a=c(4,3,2,1)। তারপরে M=l=4

আমরা M*l+1 x lআর-তে ম্যাট্রিক্সটি নির্মাণ করি matrix(a,max(a)*l+1,l)। আর aকলাম-মেজর ক্রমে পুনর্ব্যবহার করার কারণে, আমরা ম্যাট্রিক্সের উপাদানগুলির পুনরাবৃত্তি করে শেষ করি a:

      [,1] [,2] [,3] [,4]
 [1,]    4    3    2    1
 [2,]    3    2    1    4
 [3,]    2    1    4    3
 [4,]    1    4    3    2
 [5,]    4    3    2    1
 [6,]    3    2    1    4
 [7,]    2    1    4    3
 [8,]    1    4    3    2
 [9,]    4    3    2    1
[10,]    3    2    1    4
[11,]    2    1    4    3
[12,]    1    4    3    2
[13,]    4    3    2    1
[14,]    3    2    1    4
[15,]    2    1    4    3
[16,]    1    4    3    2
[17,]    4    3    2    1

প্রতিটি কলাম প্রতিটি উপাদান আবর্তনশীল উত্তরাধিকারী হয় a, সঙ্গে aপ্রথম সারি জুড়ে; এটি যেভাবে আর ম্যাট্রিক্সে তার যুক্তি পুনর্বার করে to

এরপরে, আমরা ম্যাট্রিক্স উত্পন্ন করে প্রথম সারিতে diffinvঅতিরিক্ত 0হিসাবে প্রতিটি কলামের যোগফল যোগফল সহ বিপরীত "ডেরাইভেটিভ" নিয়ে থাকি

      [,1] [,2] [,3] [,4]
 [1,]    0    0    0    0
 [2,]    4    3    2    1
 [3,]    7    5    3    5
 [4,]    9    6    7    8
 [5,]   10   10   10   10
 [6,]   14   13   12   11
 [7,]   17   15   13   15
 [8,]   19   16   17   18
 [9,]   20   20   20   20
[10,]   24   23   22   21
[11,]   27   25   23   25
[12,]   29   26   27   28
[13,]   30   30   30   30
[14,]   34   33   32   31
[15,]   37   35   33   35
[16,]   39   36   37   38
[17,]   40   40   40   40
[18,]   44   43   42   41

প্রথম কলামে, এন্ট্রি 6=4+2সমান 14=4 + (3+2+1+4), যা চক্রীয় উত্তরসূরি যোগফল (সিএসএস) প্লাস একটি শীর্ষস্থানীয় 4। একইভাবে, দ্বিতীয় কলামে, এন্ট্রি 5=3+2সমান 10=3 + (4+1+2), এবং আরও

সুতরাং কলামে i, a[i]+2এনডি এন্ট্রি সমান CSS(i)+a[i]। সুতরাং, আমরা a+2বর্গক্ষেত্রের ম্যাট্রিক্স উপার্জন করে সারিগুলি সূচিত করে নিই :

     [,1] [,2] [,3] [,4]
[1,]   14   13   12   11
[2,]   10   10   10   10
[3,]    9    6    7    8
[4,]    7    5    3    5

তির্যক বরাবর এন্ট্রিগুলি চক্রীয় উত্তরাধিকারের যোগফলের সমান a, তাই আমরা তির্যকটি এবং বিয়োগফলকে বের করি, ফলটিকে aচক্রীয় উত্তরসূরি হিসাবে যোগ করে returning


ব্যাখ্যাটির জন্য অপেক্ষা করতে পারি না!
জয়সি

@ জয়সি যোগ করা হয়েছে! যেমনটি প্রায়শই ঘটে থাকে, ব্যাখ্যা করে এটি অন্য গল্ফের দিকে পরিচালিত করে; আমি সর্বদা একটি ব্যাখ্যা যুক্ত করার পরামর্শ দিচ্ছি যাতে আপনি বা পিছনে অনুসরণকারীরা অন্য একটি পদ্ধতির সন্ধান করতে পারেন, যদিও আমার কাছে এটি করার সবসময়ই সময় নেই, হাহা।
জিউসেপ

1
উভয় সমাধানের সাধারণ উপাদান হ'ল সূচক বা তাদের নিজস্ব উপাদানগুলির একটি দীর্ঘ-পর্যাপ্ত পুনর্ব্যবহারযোগ্য দক্ষ জেনারেশন, যেহেতু 1-সূচিযুক্ত ভাষাগুলি বিন্যাসের শুরুতে ফিরে অ্যারের জন্য মডুলার গাণিতিক ব্যবহার করতে পারে না।
এনজিএম

@ এনএমএম হ্যাঁ, অবশ্যই আমি আপনার ব্যবহারটি পছন্দ করি Mapএবং মূলত এটি 68 বাইটের মতো ছিলাম আমি আবিষ্কার করার আগে আমি lকোনও ইনপুট হিসাবে নিতে পারি !
জিউসেপ


2

কাঠকয়লা , 12 বাইট

IEθΣEι§θ⊕⁺κλ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

  θ             Input array
 E              Map over elements
     ι          Current element
    E           Map over implicit range
           λ    Inner index
          κ     Outer index
         ⁺      Sum
        ⊕       Increment
       θ        Input array
      §         Cyclically index
   Σ            Sum
I               Cast to string
                Implicitly print on separate lines

2

জাভাস্ক্রিপ্ট ES6, 65 বাইট

a=>a.map((x,y)=>{for(s=0,i=y;i<y+x;)s+=a[++i%a.length];return s})

সোজা সমাধান। Ungolfed:

a => a.map((x,y) => {
    var s = 0;
    for (i = y; i < y + x; i++) {
        s += a[i % a.length];
    }
    return s;
});

জাভাস্ক্রিপ্টের map()কাজটি কাজের জন্য উপযুক্ত, এটি প্রতিটি উপাদানটির বিপরীতে প্রদত্ত কলব্যাক চালায় এবং কলব্যাকের ফলাফলের দ্বারা এটি প্রতিস্থাপন করে। কলব্যাক দুটি প্যারামিটার গ্রহণ করে, প্রথমটির xমান এবং দ্বিতীয়টি yসূচক। মডিউলাস গ্রহণ করে i % a.lengthআমরা সহজেই অ্যারের উপরে লুপ করতে পারি, প্রয়োজনে একাধিকবার।

পরীক্ষার স্নিপেট

(ইনপুটটিকে JSON স্বরলিপি হিসাবে রাখুন)


2

জাভা 8, 87 বাইট

একটি তালিকাবদ্ধ int[]এবং intদৈর্ঘ্য গ্রহণকারী একটি ত্রিযুক্ত শূন্য লাম্বদা ।

l->s->{for(int i=-1,j,t;++i<s;System.out.println(t))for(j=t=0;j++<l[i];)t+=l[(i+j)%s];}

এটি অনলাইন চেষ্টা করুন । নোট করুন যে আমি System.outপ্রিন্টিয়র প্রিন্টিংয়ের ফলাফলগুলি অর্জন করার জন্য এই প্রোগ্রামটির ছায়া ফেলেছি ।


2

জুলিয়া 0.6 , 63 55 53 বাইট

A->[sum(repmat(A,v+1)[i+1:i+v])for(i,v)=enumerate(A)]

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


পুরানো সমাধান:

জুলিয়া 0.6 , 65 বাইট

A->(l=length(A);[sum(A[mod1(j,l)]for ji+1:i+A[i])for i1:l])

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


আরেকটি সমাধান। বাইটকাউন্ট দ্বারা দুর্দান্ত নয়, তবে আমি এটি পছন্দ করি এবং এটি সম্ভবত অন্য দুটি তুলনায় আরও দক্ষ, বিশেষত যদি ইনপুটটিতে বড় সংখ্যা থাকে।

জুলিয়া 0.6 , 69 বাইট

A->(l=length(A);[sum([A;A][i+1:i+A[i]%l])+A[il*sum(A)for i1:l])

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



1

কিউবাসিক 1.1 , 115 বাইট

INPUT L
DIM A(L)
FOR I=0TO L-1
INPUT C
A(I)=C
NEXT
FOR I=0TO L-1
S=0
FOR C=I+1TO I+A(I)
S=S+A(C MOD L)
NEXT
?S
NEXT

প্রথম ইনপুট হ'ল দৈর্ঘ্য এল , তারপরে এল পরবর্তী ইনপুটগুলি ক্রমের উপাদান are এল আউটপুটগুলি ফলস্বরূপ অ্যারে উপস্থাপন করে যাতে তারা উপস্থাপন করা হয় এমন উপাদানগুলির সাথে।



1

এপিএল + উইন, 37 বাইট

ইনপুট জন্য অনুরোধ:

+/¨v↑¨⊂[2](⍳⍴v)⌽((⍴v),⍴n)⍴n←(+/v)⍴v←⎕

এটি অনলাইন চেষ্টা করুন! সৌজন্যে ডায়ালগ ক্লাসিক

ব্যাখ্যা:

n←(+/v)⍴v←⎕ prompts for input and creates a repeating vector of length max v

((⍴v),⍴n)⍴n converts n to a matrix of length v x length n

(⍳⍴v)⌽ rotates each row of n by the size of each element of v

⊂[2] converts each row of m to an element in a nested vector

+/¨v↑¨ selects the number of elements from each element of the nested vector according to v and sums


1

জাভাস্ক্রিপ্ট, 65 বাইট 3̶0̶0̶ ̶b̶y̶t̶e̶s̶

golfed

n=>n.map((z,x)=>{for(s=0,i=x;i<z+x;)s+=n[++i%n.length];return s})

ungolfed

     f = n=>n.map((z,x)=>{
            for(s=0,i=x;i<z+x;)s+=n[++i%n.length];
            return s
            }
        );
console.log(f(process.argv[2].slice(1, -1).split(", ").map(x=>+x)))

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

(উপরে বর্ণহীন সংস্করণ) আমি এই কোডগল্ফ জিনিসটিতে নতুন!


* আপডেট! মন্তব্যে প্রদত্ত দরকারী লিঙ্কগুলির জন্য ধন্যবাদ, আমি আকারটি 65 বাইটে হ্রাস করতে পেরেছি!


সাইটে স্বাগতম। এটি উন্নত করার কয়েকটি উপায় রয়েছে। আপনি একক বর্ণের পরিবর্তনশীল নামগুলি ব্যবহার করতে পারেন এবং আপনি অতিরিক্ত-সাদা স্থান সরাতে পারেন। (অপারেটরদের ফাঁকা জায়গাগুলি ঘেরাও করার দরকার নেই))
গম উইজার্ড

ক্যাট উইজার্ডের টিপস ছাড়াই আমাদের কাছে জাভাস্ক্রিপ্টে গল্ফ করার টিপসের সংকলন রয়েছে । আপনি যেমন বলছেন যে আপনি গল্ফিংয়ের ক্ষেত্রে নতুন, আপনি <সমস্ত ভাষা>> তেও গল্ফ করার জন্য জেনেরিক টিপস আকর্ষণীয় খুঁজে পেতে পারেন ।
manatwork

আপনি ungolfed এক আগে golfed সংস্করণ যোগ করা উচিত
Sefa

আপনি ধরে নিচ্ছেন যে অ্যারেটি পূর্বনির্ধারিত ভেরিয়েবল ( n) নির্ধারিত হয়েছে , যা আমরা অনুমতি দিই না। পিপিসিজিতে স্বাগতম, যদিও :)
শেগি

এখানে একটি 59 বাইট সংস্করণ
শেগি




0

পিপ -rn , 14 বাইট

$+g@(_+\,B)MEg

স্টিডিনের ধারাবাহিক লাইনে ইনপুট নম্বর নেয়; স্টাডাউটের ধারাবাহিক লাইনে আউটপুট নম্বর দেয়।এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

             g  List of lines of stdin (from -r flag)
           ME   Enumerate and map this function to the (index, value) pairs:
       \,B       One-based range(value)
     _+          To each element, add the index of that value
  g@(     )      Use the resulting range to slice into the original list g
                 (cyclical indexing is built in)
$+               Sum the numbers in the slice
                Output the list of results one per line (from -n flag)

বা, একটি কাজের উদাহরণ ব্যবহার করে:

             g  [1 3 4 5]
           ME   
       \,B      [(1,2) (1,4) (1,5) (1,6)]
     _+         [(1,2) (2,5) (3,7) (4,9)]
  g@(     )     [[3] [4 5 1] [5 1 3 4] [1 3 4 5 1]]
$+              [3 10 13 14]


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