একটি গন্ধযুক্ত যাত্রায়


18

আপনার কাজটি এমন একটি কম্পিউটার প্রোগ্রাম বা ফাংশন লিখুন যা কমপক্ষে 2 দৈর্ঘ্যের 2 এর ইতিবাচক পূর্ণসংখ্যার একটি তালিকা গ্রহণ করে এবং সেগুলি "জিগজ্যাগ" কিনা তা নির্ধারণ করে। একটি ক্রমটি একটি জিগজ্যাগ হয় যদি এবং কেবল তখনই যদি সংখ্যাগুলি তাদের সামনে আগত সংখ্যার চেয়ে বড় এবং ছোট হওয়ার বিকল্প হয় tern উদাহরণস্বরূপ এবং জিগজ্যাগ তবে এবং না।[ 4 , 2 , 3 , 0 , 1 ] [ 1 , 2 , 0 , 0 , 3 , 1 ] [ 1 , 2 , 3 , 1 ][1,2,0,3,2][4,2,3,0,1][1,2,0,0,3,1][1,2,3,1]

আপনার সিদ্ধান্তের জন্য আপনার প্রতিটি সম্ভাবনার জন্য দুটি পৃথক ধারাবাহিক মানের আউটপুট করা উচিত (জিগজ্যাগ এবং জিগজ্যাগ নয়)।

আপনার প্রোগ্রাম বা ফাংশনের কোড পয়েন্টগুলি নিজেই একটি জিগজ্যাগ হতে হবে। এর অর্থ হ'ল আপনি যখন কোড-পয়েন্টগুলির ক্রম গ্রহণ করবেন এটি একটি জিগজ্যাগ হওয়া উচিত।

এটি তাই কম বাইট ভাল হওয়ার সাথে বাইটে উত্তরগুলি দেওয়া হবে।


1
কোড পয়েন্টগুলিতে প্রতিটি অ-জিগজ্যাগের জন্য একটি জরিমানা অন্য পদ্ধতির হতে পারে, যাতে বিস্তৃত বিভিন্ন ভাষার অংশ নিতে পারে।
এনজিএম

5
@ngm আমি একমত নই বোনাস / পেনাল্টি উপস্থাপন করা ব্যবহারকারীদের একাধিক সম্ভাব্য উত্তর (যেমন সংক্ষিপ্ত এক + জরিমানা বনাম দীর্ঘ + কোনও জরিমানা) নিয়ে আসে, উত্তর দেওয়ার প্রক্রিয়াটি ধীর করে দেয়। এছাড়াও, প্রদত্ত জরিমানার পরিমাণটি বেশ স্বেচ্ছাচারিত হবে, অর্থাত স্কোরিং প্রক্রিয়াটি সেই উদ্দেশ্য নয়।
জংহওয়ান মিন

2
আমরা কি ইউনিকোড কোড পয়েন্টগুলি বা আমরা ব্যবহার করছি এমন এনকোডিংয়ের কোড পয়েন্টগুলি গ্রহণ করা উচিত?
ডেনিস

1
@ ডেনিস আপনি যে এনকোডিংটি ব্যবহার করছেন তার কোড-পয়েন্ট।
গম উইজার্ড

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

উত্তর:


7

জেলি , 5 বাইট

IṠIỊẸ

রিটার্নস (আঁকাবাঁকা) অথবা 1 (আঁকাবাঁকা নয়)।01

কোড পয়েন্ট মধ্যে জেলি কোড পৃষ্ঠা[73,205,73,176,174]

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

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

IṠIỊẸ  Main link. Argument: A (array)

I      Increments; compute the forward differences of A.
 Ṡ     Take their signs.
       A is zigzag iff the signs are alternating.
  I    Take the increments again.
       Alternating signs result in an increment of -2 or 2.
       Non-alternating signs result in an increment of -1, 0, or 1.
   Ị   Insignificant; map each increment j to (|j| ≤ 1).
    Ẹ  Any; return 0 if all results are 0, 1 in any other case.

4

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

f(a:b:c:d)|(>)a b,b<c=f$b:c:d |(<)a b,b>c=f$b:c:d |1>0=1>12
f[a ] =1<12
f(a:b:_)= a/= b

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

আমি হাসেল উত্তরগুলির শর্তে বল ঘূর্ণায়মান পেতে চেয়েছিলাম। আমি এখনও এটির উন্নতির কোনও উপায় দেখতে পাচ্ছি না তবে আমি নিশ্চিত যে এটি করা সম্ভব। আমি এখান থেকে লোকেরা কী করতে পারে তার অপেক্ষায় রয়েছি।


4

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

dt?ZSd]pA

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

আমার প্রথম এমএটিএল প্রোগ্রাম! পিনাল্টিমেট pজিগজ্যাগ প্রয়োজনীয়তার জন্য যুক্ত করা হয়েছিল।

ব্যাখ্যা:

d    %take the difference between successive elements of input
t    %duplicate that
?    %if that is all non-zero
  ZS %take the sign of those differences (so input is all `-1`s and `1`s now)
  d  %take the difference of that (so if there are successive `1`s or `-1`s, this will have a 0)
]    %end-if
p    %take the product of topmost stack vector (will be 0 if either the original difference or 
     % the difference-of-signs contained a 0)
A    %convert positive products to 1 (since OP specifies "you should output one of two different consistent values for each possibility ")

ধন্যবাদ! হ্যাঁ, আমি উত্তরটিতে যেমন উল্লেখ করেছি, আমি এটি কেবল জিগজ্যাগ প্রয়োজনীয়তার জন্য যুক্ত করেছি (যেহেতু কোডটি নিজেই জিগজ্যাগে যেতে হবে)। ]দৃশ্যত তাই হয়, বড় হাতের অক্ষরে এবং ছোট অক্ষর মধ্যে বসবাস dকরার ]এবং ]করতে Aউভয় হয়েছে decrements, যা অনুমোদিত নয় হবে। সুতরাং pপ্রধানত সেখানে উভয় মধ্যে একটি কোডপয়েন্ট বৃদ্ধি আছে।
সূন্দর - মনিকা 20

1
ওহ, আমি পুরোপুরি সেই প্রয়োজনটি ভুলে গিয়েছিলাম। উত্তরটি আরও চিত্তাকর্ষক করে তোলে!
লুইস মেন্ডো

4

পাইথন 2 , 225 223 161 139 বাইট

জাকোব -2 বাইট ধন্যবাদ
ডেনিসকে 62 বাইট ধন্যবাদ

e={eval }.pop()
p ="i"+"n"+"p"+"u"+"t ( "
s=e(p +")")
e(p +"` a"+"l"+"l([(x<y>z)+(x>y<z)f"+"o"+"r x,y,z i"+"n zip(s,s [1: ],s [2: ])])` )")

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

গন্ধযুক্ত অ্যালগরিদমের ক্রেডিট এই উত্তরে যায়

input, print, exec, defএবং lambdaঅসমতল নেই তাই আমি শুধুমাত্র পেয়েছিলাম evalযা সংরক্ষণ করা হয় উপর, বাম e
আছে সীমাবদ্ধতা বাইপাস 2 প্রধান উপায়, স্থাপন করা হয় "+"বা অ অসমতল জোড়া মধ্যে, আমি সাবেক (নির্বাচিত প্রতিটি ব্যবহারের জন্য খাটো, কিন্তু এটির জন্য replace(' ','')আরও বাইটস তৈরির প্রয়োজন হবে )
যেহেতু printঅগভীর নয়, আমি এটি সরাসরি ব্যবহার করতে পারি না, এবং এটি কোনও ফানসিওন না হওয়ায় আমি এটি ভিতরে ব্যবহার করতে পারি না eval(), সুতরাং input(result)ফলাফলটি আউটপুট দেওয়ার জন্য আমাকে ব্যবহার করতে হয়েছিল


খুশী হলাম। আপনি প্রতিস্থাপন করতে পারেন ' ' * 0জন্য ' ' [1: ]
জাকোব

আপনি input(text)STDOUT এ লিখতে ব্যবহার করতে পারেন ।
ডেনিস

4

জায়গা কেন দরকার?
জাকারি 16

@ Zachary ট কোড নিজেই তাদের ছাড়া অসমতল হবে না
ngn

এর মানে কি বোঝাতে চাচ্ছো? এটি কি কেবল এনএনজি / কে যা স্পেসগুলি দরকার
জাকারিয়া

3
@ জ্যাচারý এই চ্যালেঞ্জটি সীমাবদ্ধ-উত্স , এবং সীমাবদ্ধতাটি হ'ল কোডটি অবশ্যই জিগজ্যাগ be
এরিক আউটগল্ফার 16

উফফফ, সে সম্পর্কেও ভুলে গেছি।
জাকারি 16

3

ওহম ভি 2, 5 বাইট

δyδ½Å

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

[131,121,131,16,165]

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

δ½Åyδ½Å - সম্পূর্ণ প্রোগ্রাম / একক-যুক্তি ব্লক।
--y - ইনপুটটির ডেল্টাসের লক্ষণ 
  δ - লক্ষণগুলির পার্থক্য। 2 বা -2 এর সিকোয়েন্সের ফলাফল
        গন্ধযুক্ত অ্যারে, বিকল্প হিসাবে চিহ্ন হিসাবে, -1-1 = -2 বা 1 - (- 1) = 2 প্রদান করে।
    Å - সমস্ত উপাদান সত্য সত্য ফলাফল দেয় কিনা তা পরীক্ষা করুন ...
   ½ - অর্ধ

2

জাপট -! , 16 14 বাইট

ঠিক আছে, এটি সুন্দর নয় তবে আমি এটিতে খুশি!

trueজিগ- জ্যাগের জন্য আউটপুট বা falseনা থাকলে।

ä'- m'g ä'a èÍ

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

কোডপয়েন্টগুলি [228,39,45,32,109,39,103,32,228,39,97,32,232,205]উপরের লিঙ্কটিতে পরীক্ষা হিসাবে অন্তর্ভুক্ত রয়েছে।


ব্যাখ্যা

                   :Implicit input of array
ä'-                :Consecutive differences
    m'g            :Map signs
        ä'a        :Consecutive absolute differences
             Í     :Subtract each from 2
            è      :Count the truthy (non-zero) elements
                   :Implicitly negate and output resulting boolean.

@ কামিলড্রাকারি, সাধারণত আপনি ঠিক থাকতেন তবে দুঃখের বিষয়, চ্যালেঞ্জের সীমাবদ্ধ-উত্সের প্রয়োজনীয়তাগুলি তাদের মেটানো দরকার necessary অন্যথায় এটি 10 বাইট হতে পারে ।
শেগি

ওহ, আমি দেখতে পাইনি যে এটি সীমাবদ্ধ উত্স। আমার খারাপ
কামিল দ্রাকারী

কমিলড্রাকারী, চিন্তা করবেন না; দেখে মনে হচ্ছে আপনি একা নন
শেগি


1

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

{ [*] ($_[{1…*} ] Z<@$_)Z+^ ($_[{1…*} ] Z>@$_[{2…*} ])}

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

কোড পয়েন্টগুলি হ'ল:

(123 32 91 42 93 32 40 36 95 91 123 49 8230 42 125 32 93 32 90 60 64 36 95 41 90 43 94 32 40 36 95 91 123 49 8230 42 125 32 93 32 90 62 64 36 95 91 123 50 8230 42 125 32 93 41 125)

এবং হ্যাঁ, সেগুলি সেখানে ইউনিকোড অক্ষর। এটি কয়েকটি স্থান এবং কোঁকড়ানো ধনুর্বন্ধনী মিশ্রিত করে আমার কমপ্লেক্সটি কম-বেশি করুন solution



1

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

a=> a.map(n=> e&=!~(p | q)| q <(q=p)^ p <(p=n), e=p=q=~ 0)|e

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

কোড পয়েন্ট:

61 3d 3e 20 61 2e 6d 61 70 28 6e 3d 3e 20 65 26
3d 21 7e 28 70 20 7c 20 71 29 7c 20 71 20 3c 28
71 3d 70 29 5e 20 70 20 3c 28 70 3d 6e 29 2c 20
65 3d 70 3d 71 3d 7e 20 30 29 7c

2
ভাগ্যক্রমে mapজিগজ্যাগ!
নীল

0

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

¥.±¥Ä2/P

1.0জিগজ্যাগিং এবং 0.0নন-জিগজ্যাগিং সিকোয়েন্সগুলির জন্য ফেরত দেয় ।

কোড পয়েন্ট [164,108,176,164,195,2,109,25]মধ্যে 05AB1E কোড পৃষ্ঠা

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

ব্যাখ্যা:

¥           # Take the deltas of the (implicit) input-list
            #  i.e. [1,2,0,3,2,3] → [1,-2,3,-1,1]
          # Calculate the sign for each of them (-1 if a<0; 0 if 0; 1 if a>0)
            #  i.e. [1,-2,3,-1,1] → [1,-1,1,-1,1]
   ¥        # Calculate the deltas of those
            #  i.e. [1,-1,1,-1,1] → [-2,2,-2,2]
    Ä       # Take the absolute value of each
            #  i.e. [-2,2,-2,2] → [2,2,2,2]
     2/     # Divide them by 2
            #  i.e. [2,2,2,2] → [1.0,1.0,1.0,1.0]
            # (`;` {halve} would have been shorter, but doesn't comply to the challenge)
       P    # Take the product of the list resulting in either 1.0 or 0.0
            #  i.e. [1.0,1.0,1.0,1.0] → 1.0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.