একটি অ্যারেতে একটি তরঙ্গ প্রয়োগ করুন


24

আপনার কাজটি আজ সংখ্যার অ্যারেটিতে একটি তরঙ্গ প্রয়োগ করা। একটি তরঙ্গ দেখতে দেখতে: [1, 0, -1, 0, 1, 0, -1, 0, 1...]প্রদত্ত অ্যারেটিতে এটি প্রয়োগ করার অর্থ প্রথম উপাদানগুলি, দ্বিতীয় উপাদানগুলি ইত্যাদি একত্রিত করা means

আরো স্পষ্ট করে:

আপনার প্রোগ্রাম বা ফাংশন পূর্ণসংখ্যার একটি অ্যারে পাবেন। এটি অবশ্যই 1মূল অ্যারের 1 ম, 5 তম, 9 তম ইত্যাদির সাথে সমান আকারের অ্যারেটি প্রিন্ট করতে হবে বা ফেরত পাঠাতে হবে, মূল অ্যারের -13 7th, 7 তম, 11 তম ইত্যাদি যুক্ত করা উচিত এবং বাকী উপাদানগুলি বাছাই করা উচিত।

ইনপুট অ্যারে কমপক্ষে একটি উপাদান থাকার গ্যারান্টিযুক্ত।

পরীক্ষার কেস:

Input                               | Output
[0]                                 | [1]
[-1]                                | [0]
[-4, 3, 0, 1, 7, 9, 8, -2, 11, -88] | [-3, 3, -1, 1, 8, 9, 7, -2, 12, -88]
[0, 0, 0, 0, 0]                     | [1 ,0 ,-1 ,0 ,1]
[1, 1]                              | [2, 1]

এটি , সংক্ষিপ্ততম কোডের জয়!


কিছুটা নির্বিঘ্নে, অনেকগুলি সমাধান কল্পিত সংখ্যা জাদু ব্যবহার করছে ...
পাভেল

2
এটি কল্পিত সংখ্যাগুলি কেন কার্যকর হবে তা বোধগম্যতার একটি ভাল চুক্তি করে, এটি একটি তরঙ্গ সমস্যা এবং কাল্পনিক সংখ্যাগুলিতে পোলার বৈশিষ্ট্যের একটি নথিভুক্ত ইতিহাস রয়েছে। খালি সংখ্যাগুলি বিশেষত এই ধরণের পূর্ণসংখ্যার ত্রৈমাসিক ঘূর্ণনের জন্য সাইন এবং কোজিনগুলি গণনা করার চমত্কার গোলাপী উপায় হতে পারে। ম্যাথ দুর্দান্ত ...
গম উইজার্ড

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

উত্তর:


8

জেলি , 5 বাইট

Jı*Ċ+

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

কিভাবে এটা কাজ করে

Jı*Ċ+  Main link. Argument: A (array)

J      Indices; yield [1, ..., len(A)].
 ı*    Elevate the imaginary unit to the power 1, ..., len(A), yielding
       [0+1i, -1+0i, 0-1i, 1+0i, ...].
   Ċ   Take the imaginary part of each result.
    +  Add the results to the corresponding elements of A.

লিকি নুন যা পেয়েছিল তেমনই
পাভেল

1
কোন ব্যাখ্যা?
পিওরফেরেট

1
কাল্পনিক সংখ্যা ধারাবাহিক ক্ষমতা কাল্পনিক অংশ @Pureferret আমি প্রতিটি উপাদান যোগ করা হয়
Coeur

@ সিউর 1, 2, 3 ...নাকি 1, 0, -1, 0 ...?
পিউরিফেরেট

1
@ শুফফেরেট এমএটিএল বা ম্যাথ.জেএস বা ম্যাথমেটিকা বা আর বা ... এর উত্তর হিসাবে একই ব্যাখ্যা
Cœur

14

লোগো , 18 বাইট

[map[?+sin 90*#]?]

এখানে "এটি চেষ্টা করে দেখুন!" লিঙ্ক করুন কারণ সমস্ত অনলাইন লোগো ইন্টারপ্রেটার টেম্পলেট-তালিকা সমর্থন করে না।

এটি একটি টেম্পলেট-তালিকা (অন্যান্য ভাষায় ল্যাম্বদা ফাংশনের সমতুল্য)।

ব্যবহার:

pr invoke [map[?+sin 90*#]?] [-4 3 0 1 7 9 8 -2 11 -88]

( invokeফাংশন কল, prফলাফল মুদ্রণ)

কপি করে প্রিন্ট [-3 3 -1 1 8 9 7 -2 12 -88]

ব্যাখ্যা (ইতিমধ্যে বেশ বোঝা যায়):

 map[?+sin 90*#]?       map a function over all the items of the input
              #         the 1-based index of the element in the input
       sin 90*#         equal to the required wave
     ?                  looping variable
     ?+sin 90*#         add the wave to the input

হাহ, আমি জানতাম যে কেউ সাইন ভিত্তিক উত্তর নিয়ে আসবে।
ইটিএইচ প্রোডাকশনস

2
ম্যাথমেটিকাতে @ETH প্রোডাকশনগুলির প্রথম উত্তরটি সাইন উপর ভিত্তি করে ছিল যতক্ষণ না এটি গলিয়ে ফেলা হয়েছিল। আরে দ্বিতীয় উত্তরটি হ'ল সাইন ব্যবহার করে স্টিল।
পাভেল

1
@ ফিনিক্স আমি অবাক হয়েছি যে আমি খেয়াল করি নি ...
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশন এবং .... সাইনকেও আর এর উত্তর থেকে সরিয়ে দেওয়া হয়েছে। আমি মনে করি এটি গণিতের উত্তর হিসাবে একই জিনিস করছে the
পাভেল


9

জাভাস্ক্রিপ্ট (ES6), 28 বাইট

a=>a.map((x,i)=>x-(i%4-1)%2)

গণনাটি এরকম হয়:

i%4  -1  %2
0    -1  -1
1     0   0
2     1   1
3     2   0

সত্য যে জাতীয়, যখন নিয়ন্ত্রিত একটি ঋণাত্মক সংখ্যা (অর্থাত তার নেতিবাচক চিহ্ন ধরে রাখতে হবে শেষ প্রান্তে গ্রহণ সুবিধা -5 % 3 -> -2পরিবর্তে 1যেমন পাইথন হতে হবে)।


9

গণিত, 26 23 22 বাইট

Im[I^Range@Tr[1^#]]+#&

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

দ্রষ্টব্য: টিআইও লিঙ্কটি 23-বাইট সংস্করণের জন্য, 22-বাইট সংস্করণটি ম্যাথিক্সের সাথে সামঞ্জস্যপূর্ণ নয়।


নীচে একটি 19 বাইট ম্যাথমেটিকা ​​সমাধান রয়েছে (আরম্ভের 4 টি বাইট সহ)
ব্যবহারকারী 202729


8

এমএটিএল , 11 8 বাইট

Jyn:^Yj+

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

ব্যাখ্যা

J     % Push 1j (imaginary unit)
      % STACK; 1j
y     % Implicit input. Duplicate from below
      % STACK: [-4 3 0 1 7 9 8 -2 11 -88], 1j, [-4 3 0 1 7 9 8 -2 11 -88]
n     % Number of elements
      % STACK: [-4 3 0 1 7 9 8 -2 11 -88], 1j, 10
:     % Range
      % STACK: [-4 3 0 1 7 9 8 -2 11 -88], 1j, [1 2 3 4 5 6 7 8 9 10]
^     % Power, element-wise
      % STACK: [-4 3 0 1 7 9 8 -2 11 -88], [1j -1 -1j 1 1j -1 -1j 1 1j -1]
Yj    % Imaginary part
      % STACK: [-4 3 0 1 7 9 8 -2 11 -88], [1 0 -1 0 1 0 -1 0 1 0]
+     % Add, element-wise. Implicit display
      % STACK: [-3 3 -1 1 8 9 7 -2 12 -88]

উম, আপনি +ব্যাখ্যায় যুক্ত করতে ভুলে গেছেন
জুলাইকে শৃঙ্খলাবদ্ধ coinheringaahing

@ কায়ারডকোইনরিঙ্গিংহিং ধন্যবাদ, সম্পাদিত
লুইস মেন্ডো

3

জেলি , 16 বাইট

-1Jm2$$¦+2Jm4$$¦

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

হ্যাঁ আমি নিশ্চিত যে এটি অনেক দীর্ঘ

সম্পাদন করা

আমি জানি একটি 5 বাইট সমাধান সম্ভব তবে আমার ওয়াইফাই মনে হচ্ছে আমাকে কাটতে শুরু করবে তাই আমি আগামীকাল এই গল্ফ করব। আমি যদি এটি গল্ফ করার আগে কেউ শর্ট জেলি সমাধান পোস্ট করে তবে তা আমার পক্ষে ঠিক আছে; আমি ঠিক এখানে রেফারেন্সের জন্য এখানে রাখব আমি জেলি লোল এটিকে করার অন্য কোনও পদ্ধতিতে কতটা খারাপ । মানে, আমি মন্তব্যগুলিতে পোস্ট করা ফিনিক্সের লিঙ্কটি কেবল দেখতে পাচ্ছিলাম , তবে যেহেতু আমি এখনও শিখছি, আমি নিজের সমাধান না করে সমাধানটি দেখতে চাই না। এটি আমার খ্যাতি ব্যয় করতে পারে তবে শেখার জন্য আমি এখানে আছি :)))


LeakyNun চ্যাটে 5 তা: মজা
পাভেল




3

পাইথন 2 , 50 42 বাইট

@ সিসিফাসের জন্য 8 টি বাইট সংরক্ষণ করা হয়েছে!

lambda l:map(sum,zip(l,[1,0,-1,0]*len(l)))

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

53 বাইট

lambda l:[int(x+(1j**i).real)for i,x in enumerate(l)]

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


lambda l:map(sum,zip(l,[1,0,-1,0]*len(l)))পাইথন 2
সিসিফাস

চমৎকার, যে পাইথন 3 এ 5 বাইট সাশ্রয় করে এবং তারপরে পাইথনে আরও 3 টি। ধন্যবাদ!
musicman523

3

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

@ মেগো আমাকে এই সমাধানে মারধর করেছেন

zipWith(+)$cycle[1,0,-1,0]

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

হাস্কেল এটাই দুর্দান্ত। এটি একটি পয়েন্ট-মুক্ত ফাংশন ঘোষণা করে যা একটি অসীম তালিকার সাথে ইনপুটটি জিপ করে।

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

জটিল সংখ্যা ব্যবহার করে এমন একটি সমাধান এখানে। আমদানির কারণে খুব প্রতিযোগিতামূলক নয় তবে কখনই কম সুন্দর নয়।

import Data.Complex
zipWith((+).realPart.((0:+1)^))[0..]

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


2
ওহো! আপনি আমাকে 20 সেকেন্ডের মধ্যে নিনজা করতেন!
মেগো

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

3

গণিত, 19 বাইট

i=1;#+Im[i*=I]&/@#&

ব্যাখ্যা

i=1;#+Im[i*=I]&/@#&
i=1;                 (* set variable i to 1 *)
               /@#   (* iterate through the input: *)
    #+Im[i   ]&      (* add the imaginary component of i... *)
          *=I        (* multiplying i by the imaginary unit each iteration *)

দ্রষ্টব্য: i=1ফাংশনের বাইরে উপস্থিত রয়েছে, যা এই মেটা sensকমত্যের জন্য ঠিক আছে ।


তবে তারপরে ফাংশনটি অগত্যা পুনরায় ব্যবহারযোগ্য নয় (যদি ফাংশনের এক কল পরে i1 এর মান আলাদা হয়)
ব্যবহারকারী 202729

@ ব্যবহারকারী 202729 মেটা sensকমত্যের সাথে আমি যুক্ত করেছি বিশেষভাবে এই সমস্যাটির সাথে চুক্তি করে। কোনও ফাংশনের বাইরে গ্লোবাল ভেরিয়েবল ঘোষণা করা ঠিক আছে।
জংহওয়ান মিন

3

জে, 12 বাইট

+1 0 _1 0$~#

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

যেহেতু জে এর শেপ অপারেটরটি $চক্রাকারে পূরণ করে, যখন আমরা এটিকে ইনপুটটির দৈর্ঘ্যের #সাথে আকার দেই , আমরা যা চাই তা ঠিক তা করে এবং আমরা কেবল এটি ইনপুটটিতে যুক্ত করতে পারি]


আপনি প্রথমটি ফেলে রেখে একটি বাইট সংরক্ষণ করতে পারেন] (অর্থাত্ হুক ব্যবহার করুন)
টিক্কানজ

পছন্দ করেছেন আমি পোস্ট আপডেট করেছি।
জোনা

3

সি ++, 93 85 83 63 বাইট

auto w=[](auto&i){for(int j=0;j<i.size();j+=2)i[j]+=j%4?-1:1;};

-8 বাইটস, এই উত্তরের জন্য ধন্যবাদ , আমি আবিষ্কার করেছি যে ল্যাম্বদা প্যারামিটারগুলি হতে পারে autoএবং আপনি সঠিক পরামিতি দিয়ে যেতে পারেন, এটি কার্যকর হবে

-2 বাইট নেভাকে ধন্যবাদ

-২ বাইট জ্যাকারিকে ধন্যবাদ ý

আমি vectorঅন্তর্ভুক্ত অপসারণ । নিম্নলিখিত শর্তগুলির সম্মান করে ডাব্লু কনটেইনারটি যুক্তি হিসাবে আপনাকে পাস করতে হবে:

  • sizeকোনও যুক্তি ছাড়াই ডাকা একটি পদ্ধতি আছে
  • সাবস্ক্রিপ্ট অপারেটরটি ওভারলোড করেছে

STL পাত্রে নিম্নলিখিত শর্তাবলী সম্মান হয় array, vector, string, map, unordered_map, এবং হয়ত অন্যদের

যদি আর্গুমেন্টগুলি আর্গুমেন্টগুলি সংশোধন করে আউটপুট দেওয়ার অনুমতি না দেওয়া হয়, তবে:

সি ++, 112 110 বাইট

#include<vector>
std::vector<int>w(std::vector<int>i){for(int j=0;j<i.size();j+=2)i[j]+=(j%4)?-1:1;return i;}

1
আপনার প্রথম এক হয় বৈধ I / O।
পাভেল

1
আপনি j%42 বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন ।
নেভায়ে

1
আমার মনে হয় না আপনার চারপাশে পেরেন দরকার j%4
জাকারি



2

পার্ল 6 , 28 বাইট

{((1+0i,*×i...*)Z+$_)».re}

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

1+0i, * × i ... *1, i, -1, -iএকটি চক্র পুনরাবৃত্তি সংখ্যা একটি অসীম তালিকা উত্পাদন করে । এই সংখ্যাগুলি Z+ইনপুট তালিকা ( $_) এর সাথে সংযোজন ( ) দিয়ে জিপ করা হয় এবং তারপরে ফলাফলযুক্ত জটিল সংখ্যার আসল উপাদানগুলি বের করা হয় ( ».re)।



2

জাপট , 11 10 বাইট

জ্যাপের সূচক মোড়কের সুবিধা নেয়।

Ë+[1TJT]gE

এটা পরীক্ষা করো


ব্যাখ্যা

অ্যারের অন্তর্নিহিত ইনপুট U

Ë

অ্যারের উপরে মানচিত্র।

+

বর্তমান উপাদান যোগ করুন ...

gE

বর্তমান সূচকের উপাদানসমূহ ( E) ...

[1TJT]

অ্যারেতে [1,0,-1,0]



1

একই বাইট গণনা সহ আরও একটি সমাধান নিয়ে এসেছেন:.e+b@[1Z_1Z
তালি দাও

প্রতিস্থাপন ssসঙ্গে eজন্য -1।
এরিক দ্য আউটগল্ফার

ওইটা কি কাজ করে? .e+be^.j)kআমি চেষ্টা করার পরে কাজ করে বলে মনে হয় নি।
deltaepsilon3


1

ম্যাথ.জেএস , 34 বাইট

f(k)=k.map(j(x,y,z)=x+im(i^y[1]))

ব্যাখ্যা

f(k)=k.map(j(x,y,z)=x+im(i^y[1]))
f(k)=                               # Define a function f, which takes argument k.
     k.map(                     )   # Map k to a function
           j(x,y,z)=                # Function j. Takes arguments x, y, and z. Where x is the item, y is the index in the form [i], and z is the original list.
                      im(      )    # The imaginary component of...
                         i^y[1]     # i to the power of the index.
                    x+              # x +, which gives our wave.

অনলাইনে চেষ্টা করে দেখুন!


1

8 ম , 96 63 বাইট

কোড

a:new swap ( swap 90 * deg>rad n:cos int + a:push ) a:each drop

এই কোডটি TOS এ ফলাফলের অ্যারে ছেড়ে দেয় leaves

ব্যবহার এবং উদাহরণ

ok> [0,0,0,0,0] a:new swap ( swap 90 n:* deg>rad n:cos n:int n:+ a:push ) a:each drop .
[1,0,-1,0,1]

ok> [-4,3,0,1,7,9,8,-2,11,-88] a:new swap ( swap 90 * deg>rad n:cos int + a:push ) a:each drop .
[-3,3,-1,1,8,9,7,-2,12,-88]

ব্যাখ্যা

সঠিক ক্রম [1,0, -1,0] পেতে আমরা কোস (এক্স) ব্যবহার করি। প্রতিটি অ্যারে এলিমেন্টের সূচকটি 90 ডিগ্রি দ্বারা গুণিত হয় এবং তারপরে সংশ্লিষ্ট আইটেমটিতে কাঙ্ক্ষিত "ওয়েভ ফ্যাক্টর" যুক্ত করতে এটি কোস () ফাংশনে পাস করা হয়।

: f \ a -- a
  a:new    \ create output array
  swap     \ put input array on TOS
  \ array element's index is passed to cos in order to compute
  \ the "wave factor" to add to each item
  ( swap 90 n:* deg>rad n:cos n:int n:+ 
  a:push ) \ push new item into output array 
  a:each
  drop     \ get rid of input array and leave ouput array on TOS
;



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