একটি গাণিতিক ক্রম পুনর্গঠন


23

মাঝামাঝি থেকে সরানো কিছু শর্তাবলী সহ ধনাত্মক পূর্ণসংখ্যার একটি সীমাবদ্ধ গণিত ক্রম দেওয়া , পুরো ক্রমটি পুনর্গঠন করুন।

কাজটি

একটি গাণিতিক ক্রম বিবেচনা করুন: ইতিবাচক পূর্ণসংখ্যার একটি তালিকা যেখানে কোনও দুটি ধারাবাহিক উপাদানগুলির মধ্যে পার্থক্য একই is

2 5 8 11 14 17

এখন ধরুন এক বা একাধিক পূর্ণসংখ্যাটি নিম্নলিখিত সীমাবদ্ধতার সাপেক্ষে ক্রম থেকে সরানো হয়েছে:

  • পূর্ণ সংখ্যার ক্রমিক ক্রমাগত শর্তাদি হবে।
  • অনুক্রমের প্রথম এবং শেষের পূর্ণসংখ্যাগুলি সরানো হবে না।
  • কমপক্ষে তিনটি পূর্ণসংখ্যার ক্রমটি থাকবে।

উপরের ক্রমের জন্য, সম্ভাব্য অপসারণগুলির মধ্যে রয়েছে:

2 5 8 14 17  (removed 11)
2 5 17       (removed 8 11 14)
2 14 17      (removed 5 8 11)

আপনার টাস্ক: এর মধ্যে একটি আংশিক ক্রম দেওয়া, মূল সম্পূর্ণ অনুক্রমটি পুনর্গঠন করুন।

বিস্তারিত

আপনি ধরে নিতে পারেন ইনপুটটি বৈধ (কোনও সমাধান রয়েছে) এবং কমপক্ষে একটি শব্দ অনুপস্থিত। ক্রমের সমস্ত সংখ্যা ইতিবাচক (> 0) পূর্ণসংখ্যার হবে। ক্রমের শর্তাদির মধ্যে ইতিবাচক বা নেতিবাচক পার্থক্য থাকতে পারে (অর্থাত্ এটি বৃদ্ধি বা হ্রাস হতে পারে)। এটি একটি ধ্রুব ক্রম হবে না (যেমন 5 5 5)।

আপনার সমাধান একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন হতে পারে । কোনও ডিফল্ট ইনপুট এবং আউটপুট পদ্ধতি গ্রহণযোগ্য।

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

আপনার জমা দেওয়ার ক্ষেত্রে দয়া করে কোনও অস্বাভাবিক আই / ও পদ্ধতি / ফর্ম্যাট উল্লেখ করুন, যাতে অন্যরা আপনার কোডটি আরও সহজে পরীক্ষা করতে সক্ষম হয়।

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

In: 2 5 8 14 17
Out: 2 5 8 11 14 17
In: 2 5 17
Out: 2 5 8 11 14 17
In: 2 14 17
Out: 2 5 8 11 14 17
In: 21 9 6 3
Out: 21 18 15 12 9 6 3
In: 10 9 5
Out: 10 9 8 7 6 5
In: 1 10 91 100
Out: 1 10 19 28 37 46 55 64 73 82 91 100

এটি ; প্রতিটি ভাষায় সংক্ষিপ্ত উত্তর জিততে পারে।



ফর্মটি ইনপুটটি আকর্ষণীয় 2 5 ... 17
হত

উত্তর:


9

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

f(a:b:c)|s<-[a,b..last c],all(`elem`s)c=s
f a=r$f$r a
r=reverse

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

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

সম্পাদনা: একটি বাগ নির্দেশ করার জন্য এবং সমাধান সরবরাহ করার জন্য @ এক্সনোরকে ধন্যবাদ!


5
যদিও এটি সুন্দর তবে মনে হয় এটি সবসময় কার্যকর হয় না: [1,3,4,5]দেয় [1,3,5]
xnor

1
এবং আমি মনে করি all(`elem`s)cএটি একই বাইট গণনা দিয়ে ঠিক করা উচিত।
xnor

6

05 এ বি 1 ই , 9 8 বাইট

Ÿs¥¿Äô€н

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

ব্যাখ্যা

  • [প্রথম, ..., শেষ] +/- 1 এর পার্থক্য সহ সীমাটি তৈরি করুন
  • ইনপুটটির ডেল্টাস গণনা করুন
  • ডেল্টাসের জিসিডির পরম মান পান
  • সেই আকারের অংশগুলিতে সম্পূর্ণ পরিসরটি বিভক্ত করুন
  • প্রতিটি খণ্ডের প্রথম উপাদান পান

এর gcd of deltasপরিবর্তে 1 বাইট ব্যবহার করে সংরক্ষণ করা হয়েছে, ব্যবহারকারীর min deltaদ্বারা অনুপ্রাণিত 202729


5

ব্র্যাচল্যাগ ভি 2, 9 বাইট

⊆.s₂ᵇ-ᵐ=∧

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

এটি একটি ফাংশন জমা। ব্র্যাচল্যাগ দোভাষীকে কোনও ফাংশনকে মূল্যায়ন করার জন্য এটি Zকমান্ড লাইন আর্গুমেন্ট হিসাবে প্রদানের মাধ্যমে একটি সম্পূর্ণ প্রোগ্রাম হিসাবে তৈরি করা যেতে পারে ; এই ক্ষেত্রে, ইনপুটটি যেমন ফর্ম্যাটটিতে নির্দিষ্ট করা হয় [1, 2, 4]এবং আউটপুটটি একই ধরণের বিন্যাসে ফিরে আসে, যেমন Z = [1, 2, 3, 4]। (অবশ্যই, কোনও ফাংশন জমা দেওয়ার জন্য, ইনপুট এবং আউটপুট মোটেও কোনও ফর্ম্যাটে নেই; সেগুলি কেবল তালিকা।

এটি ওপি যেমনটি চেয়েছিল তার চেয়ে কঠিন সমস্যাটি সমাধান করে: এটি মুছে ফেলা ধারাবাহিক কিনা তা নির্বিশেষে নির্দিষ্ট ক্রমে নির্দিষ্ট মানগুলির সংখ্যার সংক্ষিপ্ততম গাণিতিক ক্রমটি কার্যকর করে। কারণ এটি ব্রুট ফোর্স ব্যবহার করে, অনেক মান মুছে ফেলা হলে এটি খুব ধীর হতে পারে।

ব্যাখ্যা

প্রোগ্রামটির তিনটি প্রধান অংশ রয়েছে।

ইনপুটটির একটি অতিপ্রাকৃতত্ব (যেমন একটি অনুক্রম যা ইনপুটটি একটি উপসর্গ হিসাবে রয়েছে) সন্ধান করে। যখন একটি ব্র্যাচল্যাগ প্রোগ্রাম থেকে একাধিক সম্ভাব্য আউটপুট থাকে, তখন নির্বাচিত আউটপুটটি টাইব্রেক ক্রমের প্রথম আউটপুট হয় এবং টাইব্রেক ক্রমটি প্রোগ্রামটির প্রথম কমান্ড দ্বারা নির্ধারিত হয় যা সম্পর্কে একটি মতামত রয়েছে; এই ক্ষেত্রে, একটি আদেশ নির্দিষ্ট করে যা দীর্ঘগুলিতে সংক্ষিপ্ত আউটপুটগুলির পক্ষে হয়। সুতরাং আমরা যে আউটপুটটি পাব তা হ'ল ইনপুটটির সংক্ষিপ্ততর উত্সাহ যা প্রোগ্রামের বাকী অংশের বিধিনিষেধ মেনে চলে।

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

অবশেষে, আমাদের আছে s₂ᵇ-ᵐ =, অর্থাৎ "ক্রমের সমস্ত বদ্বীপ সমান", আমরা আউটপুটটিতে যে শর্তটি প্রয়োগ করছি। (এই থেকে ফেরত মান বরং supersequence নিজেই, যা কেন আমরা প্রয়োজন চেয়ে বদ্বীপ একটি তালিকা রয়েছে .... তা নিশ্চিত করার জন্য ডান জিনিস আউটপুট।)

ডেল্টাসের গণনা পরিচালনা করতে পারে এমন কোনও বিল্টিন না রেখে, কোনও তালিকা থেকে ওভারল্যাপিং জোড়গুলিতে কোনও অপারেশন প্রয়োগ করে বা ব্র্যাচল্যাগ এখানে আবার অনুষ্ঠিত হয় log পরিবর্তে, আমরা আমাদের স্পষ্টভাবে যা বলতে চাইছি তা বলতে s₂ᵇহবে : দৈর্ঘ্য 2 ( s) এর সমস্ত ( ) সাবস্ট্রিংগুলি ( ) সন্ধান করে ( সাবস্ট্রিংগুলিতে এবং অলৌকিক ক্ষেত্রে অজানাগুলির মধ্যে একটি লিঙ্ক রাখার জন্য প্রয়োজনীয় ব্যবহারের প্রয়োজন; আরও সাধারণভাবে ব্যবহৃত এটি ভেঙে দেবে লিঙ্ক)। তারপরে -ᵐএকটি ব-দ্বীপ তৈরির জন্য এই জোড়গুলির প্রতিটিতে বিয়োগফল হয়। s₂ᵇ-ᵐবেশিরভাগ আধুনিক গল্ফিং ভাষাগুলির জন্য একটি অন্তর্নির্মিত বিষয়টির জন্য পাঁচটি বাইট রচনা করা বিরক্তিকর , তবে কোডগল্ফ মাঝে মাঝে এমনভাবে চলে যায় বলে আমার ধারণা।


4

পাইথন 2, 104 97 89 83 71 67 60 বাইট

4 বাইট সংরক্ষণের জন্য চাস ব্রাউনকে ধন্যবাদ । 7 বাইট সংরক্ষণের
জন্য ওভিএসকে ধন্যবাদ ।

যুক্তি দিয়ে তালিকাটি ইনপুট করুন।

lambda a,b,*c:range(a,c[-1],min(b-a,c[0]-b,key=abs))+[c[-1]]

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

ব্যাখ্যা:

যেহেতু সরানোগুলি ক্রমাগত হয়, তাই পর পর দুটি জোড় উপাদানগুলির মধ্যে পার্থক্য যাচাই করা যথেষ্ট।


আপনি প্রতিস্থাপন 3 বাইট সংরক্ষণ করতে পারবেন b if b%c else cসঙ্গে [c,b][b%c>0]
চ্যাস ব্রাউন

@ চ্যাসব্রাউন ধন্যবাদ, যদিও আমি শীঘ্রই আরও ভাল পদ্ধতির সাথে উপস্থিত হয়েছি।
কলেরা সু

1
ভাল লাগছে key=abs! মনে হয় এটি কাছাকাছি, লোকেরা প্রায়শই f=অংশটি বাদ দেয় যদি না পুনরাবৃত্তি ফাংশন ব্যবহার করা হয়; সুতরাং আপনি সেইভাবে 2 বাইট সংরক্ষণ করতে পারেন।
চ্যাস ব্রাউন

1
এছাড়াও, প্রতিস্থাপন a[-1]-a[-2]সঙ্গে a[2]-a[1]- যুক্তিবিজ্ঞান একই, এবং আপনার যাতে অন্য কোনো 2 বাইট পেতে।
চ্যাস ব্রাউন


4

পাইথ , 11 বাইট

%hS.+SQ}hQe

এখানে চেষ্টা করুন!

বাইট বাঁচানোর জন্য স্টিভেন এইচকে ধন্যবাদ !

পাইথ , 12 বাইট

%.aiF.+Q}hQe

এখানে চেষ্টা করুন!

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

% .aiF। + Q} hQe ~ সম্পূর্ণ প্রোগ্রাম।

     । + প্রশ্ন ~ ডেল্টাস পান।
   iF G GCD দ্বারা হ্রাস করুন।
 .a ~ সম্পূর্ণ মান।
% ~ মডুলার। এর প্রতিটি নবম উপাদান পান ...
        ~ Between এর মধ্যে অন্তর্ভুক্তিক সংখ্যার ব্যাপ্তি ...
         এইচকিউ ~ প্রথম উপাদান, এবং ...
           e ~ সর্বশেষ উপাদান।

Presort Qআপনি বাছাই এবং প্রথম উপাদান নেওয়া পরিবর্তে করতে পারেন যাতে abs(GCD(Q))হিসাবে %hS.+SQ}hQe11 বাইট জন্য। টেস্ট স্যুট
স্টিভেন এইচ।

3

জেলি , 8 বাইট

ṂrṀmIg/$

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

নোট:

  • কেবল জেলির কিছু পুরানো সংস্করণে কাজ করুন। ( উদাহরণস্বরূপ এই প্রতিশ্রুতিবদ্ধ ) (যেখানে gব্যবহার fractions.gcd, ফলাফলের সাইন ইনপুট চিহ্ন হিসাবে একই, পরিবর্তে math.gcd, যা সর্বদা ইতিবাচক মান দেয়)।

  • উপরের টিআইও লিঙ্কটি পাইথন 3 টিআইও লিঙ্ক, পাইথন কোডটি উপরে উল্লিখিত প্রতিশ্রুতি থেকে জেলি উত্স কোড নিয়ে গঠিত, একই ফাইলটিতে প্যাক করা সমস্ত কিছু (3 ফাইল) ব্যতীত (টিআইও চালানোর জন্য) এবং dictionary.pyএতে কমিয়ে আনা হয়েছে কিছু লাইন। তবুও dictionary.pyএই উত্তরের সাথে সম্পর্কিত নয়, কারণ এটি সংকীর্ণ স্ট্রিং ব্যবহার করে না। ( “...»নির্মাণ)

ব্যাখ্যা:

প্রথমত, যেহেতু একটি অবিচ্ছিন্ন বিভাগটি মুছে ফেলা হয়েছে এবং কমপক্ষে 3 টি উপাদান রয়ে গেছে, পুরাতন তালিকায় টানা দুটি সংখ্যা রয়েছে এবং ডেল্টাসগুলি সমস্ত পদক্ষেপের বহুগুণ হবে। সুতরাং gcdপার্থক্যের ( I, বৃদ্ধি) তালিকার পদক্ষেপের পরম মান হবে।

ভাগ্যক্রমে gcdস্বাক্ষরিত (উপরে নোট দেখুন)

সুতরাং প্রোগ্রামটি করে:

ṂrṀ

সর্বনিম্ন থেকে অ্যাক্সিমাম পর্যন্ত একটি বর্ধমান পূর্ণসংখ্যার ব্যাপ্তি

m

মডিউলার, প্রতিটি n'th উপাদান চয়ন করুন।

Ig/$

মোনাডিক ( $) চেইন একত্রিত I(ইনক্রিমেন্ট, পার্থক্য) এবং g/( gcdতালিকার উপাদানগুলির তুলনায় হ্রাস )। যদি বৃদ্ধিগুলি ইতিবাচক হয় তবে gcdতা ইতিবাচক হবে এবং প্রত্যাবর্তনের তালিকাটি বাম থেকে ডান (বর্ধমান), এবং বিপরীত হবে।


হ্যাঁ! 05AB1E উত্তরটি 1 বাইট দ্বারা বিট করুন!
ব্যবহারকারী 202729

ব্যবহার gcdপরিবর্তে minতৈরি আমাদের গিঁট। খুব খারাপ আমি সাইন দিয়ে একটি জিসিডি পেয়েছি, নইলে আমি at
শতাংশে থাকি

3

এমএটিএল , 13 বাইট

1)0GdYkG0)3$:

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

ব্যাখ্যা:

Consider the example input [2 14 17]:
           # implicit input, STACK: [[2 14 17]]
1)         # push 1, index, STACK: [2]
0G         # push 0, duplicate input, STACK: [2, 0, [2 14 17]]
d          # take differences, STACK: [2, 0, [12, 3]]
Yk         # get value in [12, 3] nearest to 0, STACK: [2, 3]
G0)        # get last element in input, STACK: [2, 3, 17]
3$:        # 3-input :, computes 2:3:17, the range from 2 to 17 by 3
           # STACK: [[2 5 8 11 14 17]], implicit output.


3

জাভাস্ক্রিপ্ট (ES6), 92 90

2 বাইট সম্পাদনা করুন thx আর্নৌল্ড

সহজ, প্রথম এবং শেষ দুটিয়ের মধ্যে পার্থক্য যাচাইয়ের জন্য এটি যথেষ্ট। তবে এখনও অবিশ্বাস্যভাবে দীর্ঘ।

s=>(e=(z=s.pop(a=s[0]))-s.pop(d=s[1]-a),[...Array((z-(a-=d=e*e>d*d?d:e))/d)].map(_=>a+=d))

কম গল্ফড

s=>{
  a =s[0]
  b =s[1]
  z = s.pop()
  y = s.pop()
  d = b-a
  e = z-y
  d = e*e>d*d?d:e  
  n = (z-a)/d+1
  return [...Array(n)].map((_,i) => a + i*d)
}

পরীক্ষা

var F=
s=>(e=(z=s.pop(a=s[0]))-s.pop(d=s[1]-a),[...Array((z-(a-=d=e*e>d*d?d:e))/d)].map(_=>a+=d))

var test=`In: 2 5 8 14 17 Out: 2 5 8 11 14 17
In: 2 5 17 Out: 2 5 8 11 14 17
In: 2 14 17 Out: 2 5 8 11 14 17
In: 21 9 6 3 Out: 21 18 15 12 9 6 3
In: 10 9 5 Out: 10 9 8 7 6 5
In: 1 10 91 100 Out: 1 10 19 28 37 46 55 64 73 82 91 100`.split`\n`
.map(r=>r.split`Out`.map(x=>x.match(/\d+/g)))

test.forEach(([i,k])=>{
  var o=F(i.slice(0))
  var ok = o+''==k
  console.log(ok?'OK':'KO',i+' => '+o)
})


a-=d=e*e>d*d?d:e2 বাইট কাজ এবং সংরক্ষণ করা উচিত।
আর্নল্ড

@ আরনাউল্ড এটি সত্যিই ধন্যবাদ কাজ করে
edc65

2

একটি "সংখ্যার তালিকায়" স্বতন্ত্র যুক্তি হিসাবে সংখ্যা থাকা কি অন্তর্ভুক্ত? যদি তা হয় তবে দেখে মনে হচ্ছে আপনি বেশ কয়েকটি বাইট সংরক্ষণ করতে পারেন।
নম্বরমানিয়াক

@ সংখ্যামারাক আমার মনে হয় না, যেহেতু কোনও
বিল্টিন নেই

আহা ... সত্য। ভুলে গেছি।
নম্বরমানিয়াক

আপনি ব্যবহার করতে পারেন {##}এবং Last@{##}তবে আমি যেটি পেয়েছিলাম সেরা তা 51 বাইট ছিল।
নম্বরমানিয়াক

2

রুবি , 65 62 55 54 বাইট

->l{a,*,b,c=l;[*a.step(c,[l[1]-a,c-b].min_by(&:abs))]}

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

-1 বাইট ধন্যবাদ জাস্টিন মেরিনারকে


আপনি সরিয়ে একটি বাইট সংরক্ষণ করতে পারবেন hসঙ্গে আপনি যাব a,*,b,cএটি অনলাইন চেষ্টা করুন!
জাস্টিন মেরিনার

1

হাস্কেল , 73 69 বাইট

f(h:t)=do(#)<-[(-),(+)];[h,h#minimum(abs<$>zipWith(-)t(h:t))..last t]

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


1
আমি একটি 63 বাইট সমাধান পেয়েছি তবে এটি আপনার থেকে বেশ আলাদা। আমার কি আলাদা পোস্ট করা উচিত?
ব্যবহারকারী 1472751

@ user1472751 আমি লাইকনি নই, তবে এই সাইটটি প্রতিযোগিতা, পাশাপাশি সহযোগিতার জন্যই। সুতরাং আমি এটি পোস্ট হবে।
এইচ.পি.উইজ

@ user1472751 চমৎকার পন্থা! দয়া করে এগিয়ে যান এবং এটি আপনার নিজের উত্তর হিসাবে পোস্ট করুন।
লাইকনি

1

জে , 49, 47 46 বাইট

(0-[:<./2|@-/\]){.@[&]\({.<.{:)+[:i.{:(+*)@-{.

এমিগানার সমাধান দ্বারা অনুপ্রাণিত।

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

 (0-[:<./2|@-/\]){.@[&]\({.<.{:)+[:i.{:(+*)@-{. - fork of 3 verbs

                        ({.<.{:)+[:i.{:(+*)@-{. - generates a list in the entire range of values
                                     {:     -{. - last minus first element  
                                       (+*)@    - adds the signum of the difference
                                 [:i.           - makes a list 
                       ({.<.{:)                 - the smallest of first and last elements                                     
                               +                - adds the offset to the list (translates all elements according to the first one)

 (0-[:<./2|@-/\])                               - finds the step
         2|@-/\]                                - the absolute differences between all consecutive elements
    [:<./                                       - the smallest one
  0-                                            - negate (for splitting)

                 {.@[&]\                        - splits the list from the right verb into left verb's result sublists and takes their first elements

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


1

কাস্তে , 9 বাইট

m←C▼Ẋ≠⁰…⁰

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

বাইট গণনা অর্ধেক করার জন্য এইচ.পি.উইজকে অনেক ধন্যবাদ , একটি তালিকায় প্রয়োগ করা এটি দীর্ঘায়িত হয় ইঙ্গিত করে! ...


@ এইচপি.উইজ এক্স_এক্স আমি জানতাম না হুস্ক এর মতো রেঞ্জের তালিকা তৈরি করে ... আপনি কি নিশ্চিত যে আপনি এটি নিজের আলাদা উত্তর হিসাবে পোস্ট করতে চান না?
মিঃ এক্সকোডার

@ এইচপি.উইজ ধন্যবাদ লুট !
মিঃ এক্সকডার

এছাড়াও, F⌋দ্বারা প্রতিস্থাপন করা যাবে ?
এইচ.পি.উইজ

@ এইচপিউইজ @ _ @ কেন এটি এমনকি কাজ করে?
মিঃ এক্সকডার

সবচেয়ে ছোট (পরম) পার্থক্য আসল পার্থক্য হবে। gcdনেতিবাচক
বদ্বীপগুলি

1

সি # (.নেট কোর) , 167 + 13 = 180 145 + 13 = 158 বাইট

a=>{int x=a[1]-a[0],y=a[2]-a[1],d=x*x<y*y?x:y,s=Math.Abs((a[a.Length-1]-a[0])/d),i=0,j=a[0];var r=new int[s+1];for(;i<=s;j+=d)r[i++]=j;return r;}

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

+13 এর জন্য using System;

আশ্চর্যজনকভাবে, এই চ্যালেঞ্জটির আরও সূক্ষ্মতা ছিল যা আমি প্রাথমিকভাবে প্রত্যাশা করেছি।

প্রাপ্তি স্বীকার

@DLosc থেকে কিছু ঝরঝরে সরলকরণের কারণে -22 বাইট সংরক্ষণ করা হয়েছে।

DeGolfed

a=>{
    int x = a[1]-a[0],        // difference between first and second numbers
        y = a[2]-a[1],        // difference between second to last and last numbers
        d = x*x < y*y? x : y, // smallest absolute value difference
        s = Math.Abs((a[a.Length-1] - a[0]) / d), // number of steps in the reconstructed sequence (not the number of elements)
        i = 0,                // step position
        j = a[0];             // next number in reconstructed sequence

    var r = new int[s+1];

    // reconstruct the sequence
    for(; i <= s; j+=d)
        r[i++]=j;

    return r;
}





0

জাপট , 12 বাইট

ÌõUg Uäa ñ g

চেষ্টা করে দেখুন


ব্যাখ্যা

õইনপুট অ্যারের ( Ì) এর শেষ উপাদান থেকে প্রথম ( ) পর্যন্ত পূর্ণসংখ্যার অ্যারে তৈরি করুন Ug। ইনপুট থেকে সমস্ত দুটি উপাদান জোড়া পেয়ে এবং পরম পার্থক্য ( Uäa) তারপরে ñসেই অ্যারে বাছাই করে এবং প্রথম উপাদানটি ( g) গ্রহণ করে উপাদানগুলির মধ্যে ধাপ গণনা করুন ।

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