স্থানীয় চূড়ান্ত সন্ধান করা


14

একটি ফাংশন বা প্রোগ্রাম লিখুন যা একটি তালিকা গ্রহণ করে এবং স্থানীয় চূড়ান্ততার একটি তালিকা তৈরি করে।

একটি তালিকায় [x_0, x_1, x_2...]একটি স্থানীয় চরম একটি হল x_iযেমন যে x_(i-1) < x_iএবং x_(i+1) < x_iবা x_(i-1) > x_iএবং x_(i+1) > x_i। লক্ষ করুন যে তালিকার প্রথম এবং শেষ উপাদানগুলি কখনই স্থানীয় চরম হতে পারে না।

তাই কিছু উদাহরণের জন্য

local_extremes([1, 2, 1]) = [2]
local_extremes([0, 1, 0, 1, 0]) = [1, 0, 1]
local_extremems([]) = []

এটি কোড গল্ফ তাই সংক্ষিপ্ততম কোড জিতে!


আমি সঠিকভাবে বুঝতে পেরেছি তা নিশ্চিত করার জন্য: উভয় পক্ষের সংখ্যার চেয়ে বেশি নম্বর?
আন্ডারগ্রাউন্ডোমোনাইল

পছন্দ করুন সুতরাং এটি হয় স্থানীয় ন্যূনতম হতে হবে, যেখানে প্রতিবেশী উভয়ই বৃহত্তর বা সর্বাধিক যেখানে তারা উভয়ই ছোট
ড্যানিয়েল গ্রেটজার

আচ্ছা বুঝলাম. আমি এটি ভুলভাবে লিখেছি
আন্ডারগ্রাউন্ডোমোনরাইল

2
এবং ক্রম সম্পর্কে কি 1 2 2 1তাদের 2খুব চূড়ান্ত হিসাবে বিবেচনা করা উচিত নয় ? - আমি জানি, এটি সমাধানটিকে আরও জটিল করে তুলবে ...
ভিএক্স

উত্তর:


5

গণিত 66 58 51

বর্তমান সমাধান

কলের একটি অবদানের জন্য সংক্ষিপ্ত ধন্যবাদ

Cases[Partition[#,3,1],{a_,b_,c_}/;(a-b) (b-c)<0⧴b]&

Partition[#,3,1] ট্রিপল খুঁজে।

(a-b) (b-c)<0সত্য যদি এবং কেবল যদি হয় bনিচে a, cঅথবা উপরে a, c। এবং দেখায় পার্থক্য লক্ষণ। স্থানীয় চূড়ান্ত হয় ফিরে আসবে {-1,1}বা হয় {1,-1}


উদাহরণ

Cases[Partition[#, 3, 1], {a_, b_, c_} /; (a - b) (b - c) < 0 :> b] &[{1, 2, 1}]
Cases[Partition[#, 3, 1], {a_, b_, c_} /; (a - b) (b - c) < 0 :> b] &[{0, 1, 0, 1, 0}]
Cases[Partition[#, 3, 1], {a_, b_, c_} /; (a - b) (b - c) < 0 :> b] &[{}]
Cases[Partition[#, 3, 1], {a_, b_, c_} /; (a - b) (b - c) < 0 :> b] &[{9, 10, 7, 6, 9, 0, 3, 3, 1, 10}]

{2}
{1, 0, 1}
{}
{10, 6, 9, 0, 1


আগের সমাধান

এটি সমস্ত ত্রি (উদাহরণস্বরূপ Partition) উত্পাদিত উদাহরণগুলি দেখায় এবং নির্ধারণ করে যে মধ্যবর্তী উপাদান উভয় চরমের চেয়ে কম বা চরমের চেয়ে বেশি।

Cases[Partition[#,3,1],{a_,b_,c_}/;(b<ab<c)∨(b>ab>c)⧴b]& ;

প্রথম সমাধান

এটি ত্রিগুণগুলি সন্ধান করে এবং এগুলির মধ্যে পার্থক্যগুলির লক্ষণগুলি দেখায়। স্থানীয় চূড়ান্ত হয় ফিরে আসবে {-1,1}বা হয় {1,-1}

Cases[Partition[#,3,1],x_/;Sort@Sign@Differences@x=={-1,1}⧴x[[2]]]&

উদাহরণ

Cases[Partition[#,3,1],x_/;Sort@Sign@Differences@x=={-1,1}:>x[[2]]]&[{9, 10, 7, 6, 9, 0, 3, 3, 1, 10}]

{10, 6, 9, 0, 1


বিশ্লেষণ :

Partition[{9, 10, 7, 6, 9, 0, 3, 3, 1, 10}]

{{9, 10, 7}, {10, 7, 6}, {7, 6, 9}, {6, 9, 0}, {9, 0, 3}, {0, 3, 3}, { 3, 3, 1}, {3, 1, 10}

% সম্পর্কিত পূর্ববর্তী লাইন থেকে ফলাফল বোঝায়।

Differences/@ %

{{1, -3}, {-3, -1}, {-1, 3}, {3, -9}, {-9, 3}, {3, 0}, {0, -2}, {-2, 9}

Sort@Sign@Differences@x=={-1,1}trip {9, 10, 7}, {10, 7, 6 from, {7, 6, 9}, {6, 9, 0}, {9, 0, 3}, {0, 3, থেকে ট্রিপল চিহ্নিত করে 3}, {3, 3, 1}, {3, 1, 10}} যেমন পার্থক্যের চিহ্ন (-, 0, +) a -1এবং a নিয়ে গঠিত 1। বর্তমান ক্ষেত্রে সেগুলি হ'ল:

{{9, 10, 7}, {7, 6, 9}, {6, 9, 0}, {9, 0, 3}, {3, 1, 10}

এই ক্ষেত্রে প্রতিটি, এক্স, x[[2]]দ্বিতীয় পদ বোঝায়। এগুলি সমস্ত স্থানীয় ম্যাক্সিমা এবং মিনিমা হবে।

{10, 6, 9, 0, 1


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


মাইকেল স্টারন, আমি সন্দেহ করি যে ওল্ফ্রাম ভাষা কেবলমাত্র সংস্করণ 10 এ অফিসিয়াল হয়ে উঠবে, যার কিছু রূপ ইতিমধ্যে রাস্পবেরি পাইতে উপলব্ধ।
ডেভিডসি

বিটিডাব্লু, কেউ কোডের একটি লাইন প্রবেশ করিয়েছেন যা ম্যাথ এমএলকে গ্রাফিকগুলিতে রূপান্তর করে। আমি নিশ্চিত না কেন।
ডেভিডসি

আমি নিশ্চিত নই কেন তিনি এটি করেছিলেন। আমি "সংশোধিত" কোডে কোনও পার্থক্য দেখতে পাচ্ছি না
ডাঃ বেলিসারিয়াস

6

জে - 19 চর

এটি সাহায্য করতে পারেনি;)

(}:#~0,0>2*/\2-/\])

ব্যাখ্যা নিম্নলিখিত:

  • 2-/\] - আর্গুমেন্টে প্রতিটি জুড়ি উপাদানগুলিতে (প্রতিটি 2-আইটেম দীর্ঘ ইনফিক্স), পার্থক্যটি গ্রহণ করুন।
  • 2*/\ - এখন নতুন তালিকার প্রতিটি জুটির উপরে পণ্যটি নিন।
  • 0> - প্রতিটি ফলাফল 0 এর চেয়ে কম কিনা পরীক্ষা করুন এটি কেবল তখনই ঘটবে যখন গুণগুলিতে বিকল্প চিহ্ন রয়েছে, অর্থাত্ যদি তাদের একই চিহ্ন থাকে বা হয় শূন্য হয় তবে এটি ঘটে না।
  • 0, - ঘোষণা করুন যে প্রথম উপাদানটি চরম উপাদান নয়।
  • }: - শেষ উপাদানটি কেটে দিন, কারণ এটি সম্ভবত চূড়ান্তও হতে পারে না।
  • #~ - বাম পাশের তালিকা থেকে আইটেমগুলি বাছতে ডানদিকে সঠিক মানগুলি ব্যবহার করুন।

ব্যবহার:

   (}:#~0,0>2*/\2-/\]) 1 2 1
2
   (}:#~0,0>2*/\2-/\]) 0 1 0 1 0
1 0 1
   (}:#~0,0>2*/\2-/\]) i.0   NB. i.0 is the empty list (empty result also)

   (}:#~0,0>2*/\2-/\]) 3 4 4 4 2 5
2

উম্ম, ইনপুটটি যদি কাজ করে না, তবে এটি কাজ করতে পারে না, বলুন, 3, 4, 4, 4, 4, 5, অর্থাৎ 0তে 0 যুক্ত করা হলে আপনি "0 =" পদক্ষেপে একটি শূন্য পেতে পারেন
লর্ড সোথ

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

ভাল ধরা, এবং হ্যাঁ, এটি দুটি অক্ষর সংরক্ষণ করে। আপডেট করা হচ্ছে।
অ্যালগরিদমশর্ক

5

জাভাস্ক্রিপ্ট - 62 45 অক্ষর

f=a=>a.filter((x,i)=>i&&i<a.length-1&&(a[i-1]-x)*(a[i+1]-x)>0)

সম্পাদন করা

f=a=>a.filter((x,i)=>(a[i-1]-x)*(a[i+1]-x)>0)

4

রুবি, 83 70 60 55 49 টি অক্ষর

f=->a{a.each_cons(3){|x,y,z|p y if(x-y)*(z-y)>0}}

সমস্ত স্থানীয় চরমগুলি STDOUT এ মুদ্রণ করে।

<=>"স্পেসশিপ" অপারেটর ব্যবহার করুন , যা আমি সত্যিই পছন্দ করি। (প্রথম জিনিসটি যদি দ্বিতীয়টির চেয়ে বড় হয় তবে এটি 1, কম হলে -1 এবং সমান হলে 0 প্রদান করে Therefore

@ দানিরো যেহেতু ইঙ্গিত করেছেন যে "সুস্পষ্ট" উপায়টি আসলে খাটো!

আবারও বদলে গেছে! এখন এটি এমটি 0 এর উত্তরে পাওয়া দুর্দান্ত অ্যালগরিদম ব্যবহার করে (তার কাছে +1!)।

এছাড়াও, আমি পছন্দ করি each_consযা nকোন অ্যারেতে ধারাবাহিক উপাদানগুলির প্রতিটি গ্রুপ নির্বাচন করে । এবং পিছনে পিছনে ifআকর্ষণীয়।

সামগ্রিকভাবে, আমি এটি দেখতে দেখতে বেশ মার্জিত দেখতে পছন্দ করি।

কিছু নমুনা চালায়:

irb(main):044:0> f[[1,2,1]]
2
=> nil
irb(main):045:0> f[[1,0,1,0,1]]
0
1
0
=> nil
irb(main):046:0> f[[]]
=> nil
irb(main):047:0> f[[1,2,3,4,5,4,3,2,1]]
5
=> nil
irb(main):048:0> f[[1,1,1,1,1]]
=> nil
irb(main):049:0> f[[10,0,999,-45,3,4]]
0
999
-45
=> nil

f=->a{a.each_cons(3){|x,y,z|p y if((x<=>y)+(z<=>y)).abs==2}}
এক্সকে

@ দানিরো ধন্যবাদ; আমি জানতাম না যে আপনি এটি করতে পারবেন! সম্পাদিত
ডুরকনব

সত্যি ? : ডি বিটিডব্লিউ, এখন প্রতিটি শব্দটি তিনটি চরিত্রের চেয়ে ছোট, এটি করা সামগ্রিকভাবে সস্তা x>y&&y<z||x<y&&y>z(এমনকি স্পেসশিপ অপারেটরটি খুব সুন্দর);)
ড্যানিয়েরো

এছাড়াও ... !((x..z)===y)এমনকি চতুর হিসাবে না হলেও খাটো
চার্লস

@ চার্লস যা ব্যর্থ হয় x < z
ডুরকনব

3

সি ++ - 208 টি অক্ষর

দীর্ঘতম সমাধান:

#include<iostream>
#include<deque>
using namespace std;
int main(){deque<int>v;int i;while(cin){cin>>i;v.push_back(i);}for(i=0;i<v.size()-2;)if(v[++i]>v[i-1]&v[i]>v[i+1]|v[i]<v[i-1]&v[i]<v[i+1])cout<<v[i]<<' ';}

ব্যবহার করতে, আপনার পূর্ণসংখ্যা লিখুন, তারপরে যে কোনও অক্ষর যা ইনপুট স্ট্রিমটি ক্র্যাশ করবে - কোনও অ-সংখ্যাযুক্ত অক্ষরকে কাজ করা উচিত।

ইনপুট: 0 1 0 x

আউটপুট: 1


আপনি 2 টি অক্ষর অর্জনের জন্য a এর dequeপরিবর্তে একটি ব্যবহার করতে পারেন vector
মরউভেন

এছাড়াও, ব্যবহার করার পরিবর্তে iএবং jআপনি int i;সংগ্রহের ঠিক পরে ঘোষণা করতে পারেন এবং দুটি ভেরিয়েবল ঘোষণার পরিবর্তে দুটি লুপ ব্যবহার করতে পারেন।
মরউভেন

অবশেষে, আপনি সম্ভবত i++আপনার লুপের জন্য বৃদ্ধি থেকে মুক্তি পেতে পারেন এবং if(v[++i]>[i-1]...আবার একটি চরিত্র অর্জনের জন্য নিজের অবস্থার শুরু করতে পারেন।
মরউভেন


2

পাইথন 2.7 - 73 বাইট

e=lambda l:[l[i]for i in range(1,len(l)-1)if(l[i]-l[i-1])*(l[i]-l[i+1])]

খুব চিত্তাকর্ষক নয় (তালিকার প্রতিটি উপাদানকে প্রথম এবং শেষ ব্যতীত দেখুন, দেখুন এটি এর প্রতিবেশীদের চেয়ে বড় বা ছোট)। আমি বেশিরভাগই কেবল এটি পোস্ট করি কারণ সবাই জানেন না আপনি কী করতে পারেনx<y>z এবং এটি কাজ । আমি মনে করি এটি একরকম ঝরঝরে।

হ্যাঁ, x<y>zঅজগরটির একটি দুর্দান্ত বৈশিষ্ট্য, তবে এটি আসলে এই ক্ষেত্রে অনুকূল নয়। গুণ গুণের জন্য ভিএক্সকে ধন্যবাদ, যা আমার কাছে মোটেই ঘটে নি। Wrzlprmft আমাকে মনে করিয়ে দিয়েছে যে একটি বেনামি ফাংশন ঘোষণা করা কী-স্ট্রোকের চেয়ে কম def x(y):


if(l[i]-l[i-1])*(l[i]-l[i+1])>0কোডটি 11 টি অক্ষর দ্বারা হ্রাস করবে ...
ভিএক্স

@ আরজ আহ, আপনি ঠিক বলেছেন আমি def e(l):\n ঠিক একই সংখ্যক চরিত্রের দ্বারা ছুঁড়ে e=lambda l:ফেলেছি তবে আমি ভুলে গিয়েছিলাম যে আপনার returnকীওয়ার্ডটি ব্যবহার করার দরকার নেই । ধন্যবাদ!
আন্ডারগ্রাউন্ডোমোনাইল

@vx ওহ, আমি এটি অনেক পছন্দ করি। আপনাকে ধন্যবাদ :) সম্পাদনা: আসলে আপনি এর চেয়ে আরও বেশি কিছু সঞ্চয় করতে পারেন! যেহেতু (l[i]-l[i-1])*(l[i]-l[i+1])হয় 1যদি l[i]একটি স্থানীয় চরম এবং 0অন্যথায়, আমি ব্যবহার করার প্রয়োজন হবে না >0। আমি কেবল পাইথনকে এটি একটি বুল হিসাবে ব্যাখ্যা করতে পারি। :)
আন্ডারগ্রাউন্ডোমোনাইল

@wrz আমি ইতিমধ্যে সম্পাদিত একটি মন্তব্য কীভাবে সম্পাদনা করব তা বুঝতে পারি না (পেন্সিল আইকনটি সম্পাদনা বোতামটি প্রতিস্থাপন করবে বলে মনে হচ্ছে। এটি কি ডিজাইনের মাধ্যমে?)) আমি কেবল এটি যুক্ত করতে চেয়েছিলাম, আমি যদি স্মার্ট হয়ে থাকি তবে বুঝতে পেরেছিলাম যে আমার এক-লাইন ফাংশনটির \n ঘোষণাপত্রে কোনও প্রয়োজন নেই ! এটি দুটি চরিত্রকে বাঁচাতে পারত, তবে returnএখনও অন্তর্ভুক্তি এটির পক্ষে উপযুক্ত নয়।
আন্ডারগ্রাউন্ডোমোনাইল

2

হাসেল 50

f a=[x|(p,x,n)<-zip3 a(tail a)(drop 2 a),x>p&&x>n]

1
এটি শুধুমাত্র স্থানীয় সর্বাধিক পরীক্ষা করে নিন, মিনমমের জন্য যোগ করতে হবে || x <মিনিট পিএন
কারকফা

x>p&&x>nx>max p n:-)
yatima2975

স্থান পরে ,প্রয়োজন হয় না।
করাকফা

1
পরিবর্তন x>p&&x>nকরার জন্য (x>p)==(x>n)স্থানীয় নূন্যতম জন্য খুব, 4 আরো অক্ষর যোগ করা হয়েছে।
করাকফা

2

জেলি , 8 বাইট

IṠIỊ¬T‘ị

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

ব্যাখ্যা

IṠIỊ¬T‘ị
I          Differences between adjacent elements {of the input}
 Ṡ         Take the sign of each difference
  I        Differences between adjacent difference signs
   Ị       Mark the elements that are     in the range -1..1 inclusive
    ¬                                 not
     T     Take the indexes of the marked elements
      ‘      with an offset of 1
       ị   Index back into the original list

একটি উপাদান কেবলমাত্র স্থানীয় চরম হয় যদি তার বাম প্রতিবেশীর সাথে তার পার্থক্যটির ডান প্রতিবেশীর সাথে তার পার্থক্যের বিপরীত চিহ্ন থাকে, অর্থাৎ পার্থক্যের চিহ্নগুলি 2 বা -2 দ্বারা পৃথক হয়। জেলির "নির্দিষ্ট বৈশিষ্ট্যগুলির সাথে উপাদানগুলি সন্ধান করুন" (বিশেষত আমরা একটি তালিকার মধ্যে নির্দিষ্ট বৈশিষ্ট্যযুক্ত উপাদানগুলি খুঁজে পেতে পারি এবং ভিন্ন তালিকা থেকে উপাদানগুলি বের করতে এটি ব্যবহার করতে পারি), এর অর্থ যে আমরা আবার অনুবাদ করতে পারি তার জন্য বেশ কয়েকটি দরকারী আদিম রয়েছে has মূল তালিকাটি কমবেশি সরাসরি (আমাদের কেবল 1 দিয়ে অফসেট করতে হবে কারণ মূল তালিকার প্রথম এবং শেষ উপাদানগুলি পার্থক্য গ্রহণে হারিয়ে গেছে)।


1

নম্পির সাথে পাইথন - 81 74 67 বাইট ( লাইন ছাড়াই 61 54 import)

import numpy
e=lambda a:a[1:-1][(a[2:]-a[1:-1])*(a[1:-1]-a[:-2])<0]

ইনপুটটি একটি নম্পি অ্যারে হওয়া দরকার।


1

সি, 83

x,y,z;main(){y=z=0;while(scanf("%d",&x)){(y-z)*(y-x)>0?printf("%d ",y):1;z=y,y=x;}}

1

awk - 32 টি অক্ষর

{c=b;b=a;a=$0;$0=b}(b-c)*(a-b)<0

ব্রেভিটিতে জে বা এপিএলের মতো কোনও ভাষা মারার কোনও আশা নেই, তবে আমি ভেবেছিলাম যে যাই হোক আমি আমার টুপিটি রিংয়ের মধ্যে ফেলে দেব। ব্যাখ্যা:

  • কোনো সময়ে, a, b, এবং cহোল্ড x_i, x_(i-1)এবংx_(i-2)
  • b-c এবং a-b অনুমানের আগে এবং পরে অনুমানx_(i-1)
  • যদি তাদের পণ্যটি নেতিবাচক হয় তবে তার একটি নেতিবাচক এবং অন্যটি ইতিবাচক, থ্রোফর x_(i-1)স্থানীয় চরম, তাই মুদ্রণ করুন

1

ব্র্যাচল্যাগ , 17 বাইট

s₃{b≠h.&k≠&{⌉|⌋}}

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

ইনপুট ভেরিয়েবলের মাধ্যমে ইনপুট নেয় এবং আউটপুট ভেরিয়েবলের মাধ্যমে আউটপুট উত্পন্ন করে।

s₃{             }    For a length-3 substring of the input:
  {b                 its last two elements
    ≠                are distinct,
     h               and the first of those elements is
      .              the output variable;
       &k            its first two elements
         ≠           are also distinct;
          &{⌉| }     either its largest element
          &{ |⌋}     or its smallest element
                }    is also the output variable.

যদি মানগুলির রানগুলি অনুপস্থিত থাকার গ্যারান্টিযুক্ত হতে পারে তবে s₃{{⌉|⌋}.&bh}চারটি বাইট সংরক্ষণ করতে পারে।




1

05 এ বি 1 ই , 11 10 বাইট

¥.±¥Ä2Q0šÏ

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

ব্যাখ্যা:

¥           # Get the forward differences (deltas) of the (implicit) input-list
            #  i.e. [9,10,7,6,9,0,3,3,1,10] → [1,-3,-1,3,-9,3,0,-2,9]
          # Get the signum of each delta (-1 if neg.; 0 if 0; 1 if pos.)
            #  → [1,-1,-1,1,-1,1,0,-1,1]
   ¥        # Get the forward differences of that list again
            #  → [-2,0,2,-2,2,-1,-1,2]
    Ä       # Convert each integer to its absolute value
            #  → [2,0,2,2,2,1,1,2]
     2Q     # And now check which ones are equal to 2 (1 if truthy; 0 if falsey)
            #  → [1,0,1,1,1,0,0,1]
       0š   # Prepend a 0
            #  → [0,1,0,1,1,1,0,0,1]
         Ï  # And only leave the values in the (implicit) input-list at the truthy indices
            #  → [10,6,9,0,1]
            # (after which the result is output implicitly)

0

পিএইচপি, 116 114 113

function _($a){for(;$a[++$i+1];)if(($b=$a[$i])<($c=$a[$i-1])&$b<($d=$a[$i+1])or$b>$c&$b>$d)$r[]=$a[$i];return$r;}

ব্যবহারের উদাহরণ:

print_r(_(array(2, 1, 2, 3, 4, 3, 2, 3, 4)));

Array
(
    [0] => 1
    [1] => 4
    [2] => 2
)

0

হাস্কেল, 70 সি

গল্ফ সংস্করণ

e(a:b:c:r)
 |a<b&&b>c||a>b&&b<c=b:s
 |True=s
 where s=e(b:c:r)
e _=[]

উদার সংস্করণ

-- if it's possible to get three elements from the list, take this one
extrema (a:b:c:rest)
    | a<b && b>c = b:rec
    | a>b && b<c = b:rec
    | otherwise = rec
    where rec = extrema (b:c:rest)
-- if there are fewer than three elements in the list, there are no extrema
extrema _ = []


0

এপিএল, 19 বাইট

{⍵/⍨0,⍨0,0>2×/2-/⍵}

আমি 20 চর জে সংস্করণকে এপিএলে রূপান্তর করেছি। তবে আমি প্রথম এবং শেষ সংখ্যাটি সরিয়ে না দিয়ে শুরু এবং শেষের দিকে একটি শূন্য যুক্ত করব। অন্যথায় এটি জে সংস্করণটির মতোই কাজ করে।

- ফর্মাল প্যারামিটার ওমেগা। এটি ফাংশনের ইনপুট।


আমরা যখন এটিতে থাকবেন, আমি একটি কে সংস্করণ, খুব 22 অক্ষর আছে: {x@1+&0>2_*':-':0 0,x}। এর মধ্যে 6 টি অক্ষর ( 2_এবং 0 0,) দৈর্ঘ্যের ত্রুটির বিরুদ্ধে সুরক্ষায় ব্যয় করা হয় যদি তর্ক দুটি আইটেমের চেয়ে কম হয়, সুতরাং যদি সেই সমস্যার জন্য না হয় তবে এটি 16 হবে ... ক্রিয়াটিও কিছুটা আলাদা - আমাদেরকে পাল্টাতে হবে বুলিয়ান তালিকা সূচকগুলির সাথে তালিকার সাথে তালিকার সাথে আবার 1+&সেই সূচকে ব্যবহার করুন x- তবে এটি খাটো এবং এটিও খুব কে-ইশ জিনিস।
অ্যালগরিদমশর্ক

আপনার কে সংস্করণটি তখন আমার এপিএল সংস্করণটিকে হারাবে। আমার কোডে কমপক্ষে দুটি সংখ্যা দরকার।
ব্যবহারকারী 10639

0

পাইথন 2 , 59 বাইট

f=lambda l=0,c=0,*r:r and(c,)*(l<c>r[0]or l>c<r[0])+f(c,*r)

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

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

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