টক দোভাষী


10

লাগে "Talk" একটি baroquified সঁচায়ক ভিত্তিক ভাষা যে ডেনিসকে এর প্রতিক্রিয়ায় নির্মিত হয় উদ্ধৃতি talk.tryitonline.net উপর।

Waiting for someone to create an esolang called talk. 

। "টক" ভাষার 4 টি কমান্ড রয়েছে:

  • 00 যদি সঞ্চালক 0 হয়, সঞ্চালক 0 তে সেট করুন।
  • 01 যদি সঞ্চালক 0 হয়, সঞ্চালকটিকে 1 তে সেট করুন।
  • 10 যদি সঞ্চালক 1 হয়, সঞ্চালকটিকে 0 তে সেট করুন।
  • 11 যদি সঞ্চালক 1 হয়, সঞ্চালকটি 1 এ সেট করুন।

ইনপুট:

  • ইনপুটটি আমাদের মানক I / O বিধি দ্বারা যে কোনও গ্রহণযোগ্য ইনপুট পদ্ধতির মাধ্যমে নেওয়া যেতে পারে।

  • দুটি ইনপুট রয়েছে, প্রাথমিক সঞ্চয়ের মান এবং প্রোগ্রাম। আপনি যদি চান তবে এই দুটি ইনপুটগুলিকে একটি ইনপুটগুলিতে মার্জ করতে বা আপনার ইনপুটটিকে বৈধ কমান্ডগুলিতে বিভক্ত করতে পারেন (উদাহরণস্বরূপ এগুলি তালিকা হিসাবে নেওয়া; যেমন [00, 01, 00]) যদি আপনি চান if

আউটপুট:

  • কমান্ড প্রয়োগের শেষে, সংযোজককে স্পষ্টভাবে আউটপুট করা হয়।

নিয়মাবলী:

  • ইনপুট করতে একটি একক স্ট্রিং বা চরিত্র তালিকা হতে।
  • এই যেমন , সংক্ষিপ্ত উত্তর, বাইটে, জিতল।
  • আমরা অঙ্ক বা স্ট্রিং / অক্ষর গ্রহণ করি।

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

0 0001111101 -> 1
0 000100 -> 1
0 11001000 -> 0

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি আলাদাভাবে দোভাষী পতাকা পেনাল্টির তালিকা করতে চান), নিশ্চিত হয়ে নিন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


3
সুতরাং দুটি ইনপুট আছে, কমান্ডের ক্রম এবং প্রাথমিক সঞ্চয়ের মান?
xnor

4
কিছু পরীক্ষার কেস যা সঞ্চয়ী পরিবর্তন করে না, সঞ্চালকটিতে 1 দিয়ে শুরু করে বা কোনও নির্দেশনা না দিয়ে ভাল হয়
জো কিং

8
টককে কি সত্যিই একটি প্রোগ্রামিং ভাষা হিসাবে বিবেচনা করা যেতে পারে ?
লুইস মেন্ডো

8
@ এ_এ মন্তব্যটি সম্ভবত একটি রসিকতা হিসাবে বোঝানো হয়েছিল। আগের দিনটিতে ল্যাং নামে একটি ভাষার URL থাকত lang.tryitonline.net(এখন এটি tio.run/#lang)। সুতরাং টক নামের একটি ভাষা তত্ক্ষণাত নির্মিত চ্যাটরুমের URL টির সাথে বিভ্রান্তি সৃষ্টি করবে, যা হ'লtalk.tryitonline.net
লুইস মেন্ডো

7
ভবিষ্যতে, দয়া করে বেশ কয়েকটি উত্তর পোস্ট হওয়ার পরে I / O পরিবর্তন করা থেকে বিরত থাকুন। আমি আজ ফিরে এসেছি এবং ইনপুটগুলিকে ম্যাপ করার অনুমতি দিয়েছি যা আমি উত্তর দিয়েছি তা একেবারে আলাদা চ্যালেঞ্জ
গামা ফাংশন

উত্তর:


21

জেলি , 3 বাইট

y@/

ইনপুটটি একটি একক তালিকা: সংযোজক, তার পরে জোড়াগুলি।

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

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

yপরমাণু সঞ্চালিত লিপ্যন্তর; [A, B] y প্রতিস্থাপন একটি সঙ্গে , তাই এটি ফেরৎ যদি একটি = গ এবং যদি একটি ≠ গ

y@/yজোড়া প্রতি এক লিপি প্রতিলিপি সম্পাদন করে অদলবদল যুক্তি দিয়ে ইনপুটকে ভাঁজ / হ্রাস করে ।


14
আমি এখনও অবধি দেখলাম এটি কেবলমাত্র জেলি উত্তর যা কেবলমাত্র এসসিআইআই অক্ষর ব্যবহার করে।


21

পাইথন 3 , 43 বাইট

lambda s:re.sub("00|11","",s)[-1]
import re

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

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

কঠিন অংশটি সমাধানটি সঠিক ফলাফল দেয় তা প্রমাণ করা। এটি দেখতে আমাদের কমান্ডগুলির গভীর বিশ্লেষণ করা দরকার। প্রথমত, আমরা কমান্ডগুলির নিম্নলিখিত বৈশিষ্ট্যগুলি দেখতে পাই:

  • সম্পত্তি (1) : কমান্ড 00এবং 11সঞ্চয়ের স্থিতি বজায় রাখা।
  • সম্পত্তি (2) : আদেশ দেয় 01এবং 10সংযোজকটিকে তার মূল অবস্থা নির্বিশেষে দ্বিতীয় বিটের মতোই করে তোলে।

অতএব, চূড়ান্ত সঞ্চয়ের রাষ্ট্রটি হ'ল:

  • কেস 1 : যদি না 01বা 10কমান্ড উপস্থিত থাকে তবে চূড়ান্ত অবস্থাটি প্রাথমিক অবস্থার সমান।
  • কেস 2 : অন্যথায়, শেষ 10বা 01কমান্ডের শেষ বিট ।

এরপরে আমরা উভয় ক্ষেত্রেই সমাধানটি সঠিক ফলাফলটি দেখাব। আমরা চূড়ান্ত রাষ্ট্রের জন্য বিবৃতিটি প্রমাণ করব 0এবং চূড়ান্ত রাষ্ট্রের চূড়ান্ত অবস্থা 1সমানভাবে প্রমাণিত হতে পারে। যদি চূড়ান্ত অবস্থা হয় 0তবে ইনপুটটি নিম্নলিখিত দুটি রূপের মধ্যে রয়েছে:

  • ^0{2k+1}11(11|00)*

    জন্য কেস 1 , ইনপুট স্ট্রিং sদিয়ে শুরু করতে হবে 2k+10 সেঃ, দ্বারা অনুসরণ 11এবং 00কমান্ড। 00S এবং 11s নির্মূল করার ফলে একটি একক ফল 0পাওয়া যায় যা চূড়ান্ত অবস্থা।

  • .+10{2k+1}11(11|00)*

    জন্য কেস 2 , একটি ইনপুট স্ট্রিং প্রান্ত 10কমান্ড শূন্য বা তার বেশি দ্বারা অনুসরণ 00এবং 11গুলি। এই প্যাটার্নটি 0 এর 1পরে সমান 2k+1এবং তারপরে শূন্য বা আরও বেশি 11গুলি এবং 00গুলি। দূর 00s এবং 11শেষ এক পিছনে গুলি পাতার 2k+1স্ট্রিং, যা চূড়ান্ত রাষ্ট্র প্রতিনিধিত্ব করে শেষে 0 সেঃ।

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


পিপিসিজিতে আপনাকে স্বাগতম! দুর্দান্ত উত্তর, এবং এটির সাথে যাওয়ার জন্য একটি দুর্দান্ত আনুষ্ঠানিক প্রমাণ!
গামা ফাংশন

3
ধন্যবাদ। আমি মনে করি যে লোকেরা সন্দেহ করতে পারে যে কোনও সাধারণ সমাধান প্রথম নজরে সঠিক ফলাফল দেয় s সুতরাং এটির জন্য একটি প্রমাণ সরবরাহ করার প্রয়োজন রয়েছে।
জোয়েল

9

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

{m/.)>[(.)$0]*$/}

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

সুবিধা নেয় "আপনি এক ইনপুটে এই দুটি ইনপুট মার্জ করতে পারবেন যদি আপনি মত" কমান্ড যেমন সঙ্গে ঘনিভূত সঁচায়ক মান হিসাবে ইনপুট গ্রহণ করে 1,[00,11]হয় 10011। যদি এটি ঠিক না থাকে তবে এটি হিসাবে নেওয়া মাত্র 5 টি অতিরিক্ত বাইট f(accumulator, commands)। একটি ম্যাচ অবজেক্ট ফেরত দেয় যা স্ট্রিংয়ে জোর করা যায়।

ব্যাখ্যা:

{                }  # Anonymous code block
 m/             /   # Find the first match from the input
   .)>              # Capture a number
      [     ]*      # Followed by any number of
       (.)$0        # Pairs of identical characters
              $     # Ending the string

মূলত এটি কাজ করে কারণ 00এবং 11কমান্ডগুলি আক্ষরিকভাবে কিছুই করে না, যখন 01এবং 10কমান্ডগুলি সঞ্চারককে কমান্ডের দ্বিতীয় অঙ্কে সেট করে। যদি কোনও কমান্ড না থাকে, তবে এটি পরিবর্তে সঞ্চয়ের প্রাথমিক মান নেয়।


6

Zsh , 33 বাইট

চরিত্রের তালিকাটি আর্গুমেন্ট হিসাবে পাস করা হয়, সঞ্চয়ের প্রাথমিক মান স্টিডিন হিসাবে পাস করা হয়।

read a
for x y;a=$[x^a?a:y]
<<<$a

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


39 বাইট : কমান্ডগুলি অবশ্যই একটি একক স্ট্রিং হওয়া উচিত

ইনপুটটি accumulator commandsআর্গুমেন্ট হিসাবে।

for x y (${(s::)2})1=$[x^$1?$1:y]
<<<$1

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


মজাদার জন্য, এখানে একটি 50 বাইট রিকার্সিভ ওয়ান-লাইনার ( টিআইও ) রয়েছে:

<<<${${2+`f $[$1^${2[1]}?$1:${2[2]}] ${2:2}`}:-$1}

6

পাইথন 3 , 52 বাইট

f=lambda a,s:s and f([s[1],a][s[0]==s[1]],s[2:])or a

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

চ্যাস ব্রাউনকে স্থিরভাবে বেমানান রিটার্ন টাইপ ধন্যবাদ

দুটি স্ট্রিং হিসাবে ইনপুট নেয়; সংগ্রহকারী এবং কোড।


ওহ না, তাড়াতাড়ি ছিল।
হাইলিরাডিওঅ্যাকটিভ

1
চমৎকার তবে এটির এই সম্ভাব্য সমস্যাটি রয়েছে - f(1,'11')==f(1,'01')হ'ল False; এটি কখনও কখনও একটি intএবং কখনও কখনও a প্রদান করে str। সুতরাং সম্ভবত এটি স্ট্রিং হিসাবে acc ইনপুট লাগে নির্দিষ্ট?
চ্যাস ব্রাউন

@ চ্যাসব্রাউন শুভ কল, আমি যা ভাবছিলাম তার থেকে এটি অনেক সহজ।
নেতিবাচক সাত

দুর্দান্ত, তবে যেহেতু আপনার ফাংশনটি পুনরাবৃত্তিযোগ্য তাই এটি বেনামে থাকতে পারে না। এটি 52 বাইট হওয়া উচিত ।
জিতসে

5

ব্র্যাচল্যাগ , 11 9 বাইট

tġ₂≠ˢtt|h

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

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

       |     The output is
     tt      the last element of the last element of
t            the last element of the input
 ġ₂          split into length-2 slices
   ≠ˢ        with equal pairs removed.
       |     If there is no such element, the input
        h    's first element is the output.

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

ব্র্যাচল্যাগ , 18 16 বাইট

ġ₂ᵗc{th~h?tt|h}ˡ

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

ইনপুট ফর্ম্যাট পরিবর্তন করে -2 বাইট।


5

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

ইনপুট হিসাবে নেয় (a)(code), যেখানে কোডটি 2-বিট পূর্ণসংখ্যার তালিকা।

a=>c=>c.map(x=>a^=x==a+1)|a

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


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

কোডটি একটি স্ট্রিং হিসাবে (a)(code)যেখানে ইনপুট নেয় ।

a=>c=>c.replace(/../g,x=>a^=x%4==a+1)&&a

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

কিভাবে?

সমস্ত সম্ভাব্য কেস নীচে সংক্ষিপ্ত করা হয়। কেবলমাত্র দুটি ক্ষেত্রে যেখানে আমাদের সঞ্চালক টগল করা দরকার are(একটি=0,এক্স=012) এবং (একটি=1,এক্স=102)

  a | x (bin) | int(x) % 4 | a + 1 | equal?
----+---------+------------+-------+--------
  0 |   "00"  |  0 % 4 = 0 |   1   |   N
  1 |   "00"  |  0 % 4 = 0 |   2   |   N
  0 |   "01"  |  1 % 4 = 1 |   1   |   Y
  1 |   "01"  |  1 % 4 = 1 |   2   |   N
  0 |   "10"  | 10 % 4 = 2 |   1   |   N
  1 |   "10"  | 10 % 4 = 2 |   2   |   Y
  0 |   "11"  | 11 % 4 = 3 |   1   |   N
  1 |   "11"  | 11 % 4 = 3 |   2   |   N

4

সেড- ই, 26 19 বাইট

সমস্ত জোড়গুলি অপসারণের বিষয়টি উপলব্ধি করে @ ক্যাসকোয়াকের কাছ থেকে একটি দুর্দান্ত -7 বাইট কাজ করে।

s/(.)\1//g
s/.*\B//

স্টিডিনে একসাথে ইনপুট নেয়। জো কিং এর পার্ল উত্তর দ্বারা অনুপ্রাণিত । স্ট্রিপ পেছনের জোড় সমস্ত জোড়া সরিয়ে ফেলুন, তারপরে শেষ সংখ্যাটি পান।

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


1
শেষ লাইনটি সহজ হতে পারে s/.*\B//, তবে যাইহোক উপায়টি সামান্য পরিবর্তন করা একটি এমনকি আরও খাটো 19 বাইট দেয় অনলাইনে চেষ্টা করুন!
ব্যবহারকারী 41805

1
হু, আমি মনে করি না যে এটি কার্যকর s/(.)\1//gহবে, যেহেতু এটি একটি জোড়ের শেষ এবং পরবর্তীটির শুরু সরিয়ে ফেলতে পারে তবে এটি এখনও কার্যকর হয় না। অসাধারণ!
গামা ফাংশন

@ গ্যামা ফাংশনটি আমার সমাধান হিসাবে দেখানো s/(.)\1//gসমান s/00|11//g
জোয়েল

4

রেটিনা 0.8.2 , 18 11 বাইট

(.)\1

!`.$

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। সংযুক্ত করে ইনপুট নেয় input সমস্ত দ্বিগুণ অক্ষর মুছে ফেলা এবং তারপরে শেষ বাকী অক্ষরটি কাজ করে তা দেখানোর জন্য @ কোজক্যাককে 6 টি বাইটস সংরক্ষণ করা হয়েছে যদিও বাস্তবে @ জোকিংয়ের মূল উত্তরটির বন্দরটি সেই কৌশল ছাড়াও 3 বাইট দ্বারা গল্ফ হতে পারে।



@ কউসকোয়াক ডি'হ, একবার আপনি পর্যায়গুলি পৃথক করার বিষয়ে ভাবছেন, এটি ইতিমধ্যে একটি 2-বাইট সঞ্চয় রয়েছে, তারপরে আপনি ব্যবহার করতে পারবেন এমন আরও একটি বাইট !`.$এবং তারপরে আরও 4 বাইট কারণ আপনার পিছনে জোড় সীমাবদ্ধ করতে হবে না ...
নীল

4

পাইথন 3 , 38 বাইট

lambda l:[y for*x,y in l if[y]!=x][-1]

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

জোয়েলের সমাধানের ভিত্তিতে । কমান্ডগুলি (দৈর্ঘ্য-দুটি স্ট্রিং) এর পরে প্রাথমিক সংগ্রহকারী মান (দৈর্ঘ্য-এক স্ট্রিং) এর তালিকা হিসাবে ইনপুট নেয়। দুটি অসম মান সহ শেষ কমান্ডটি সন্ধান করে এবং এর দ্বিতীয় অক্ষরকে আউটপুট দেয়।

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




3

জেলি , 8 6 বাইট

EÐḟṪṪo

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

-২ বাইট ধন্যবাদ নিক কেনেডি আমাকে একটি বিধি পরিবর্তন সম্পর্কে অবহিত করার জন্য ধন্যবাদ। (তাঁর প্রস্তাবিত গল্ফটি EÐḟFȯṪকিছুটা চালাক বলে মনে হচ্ছে তবে আমার আগের সমাধান বিয়োগের মতো দৈর্ঘ্য রয়েছে)s2 )) ইনপুট ফর্ম্যাটটি এখন কমান্ডগুলিকে দ্বি-চরিত্রের স্ট্রিংয়ের তালিকা হিসাবে গ্রহণ করে, তবে পরীক্ষার পাদচরণ সুবিধার্থে পুরানো ফর্ম্যাট থেকে অনুবাদ করে।

আমার নতুন ব্র্যাকল্যাগ সমাধান থেকে অনুবাদ করা।

পুরাতন রুপ:

জেলি , 13 বাইট

ḢẎ⁼⁹a⁸o
s2ç@ƒ

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

আমি এটি 100% নিশ্চিত না যে এটি সঠিক, তবে এটি তিনটি পরীক্ষার ক্ষেত্রে সফল হয়। কমান্ডগুলি বাম আর্গুমেন্ট হিসাবে এবং প্রাথমিক সংগ্রহকারীকে ডান আর্গুমেন্ট হিসাবে গ্রহণ করে।


1
ইনপুটটিকে একটি তালিকায় বিভক্ত করার অনুমতি দেওয়া হয়েছে, সুতরাং আপনার যেমন EÐḟFȯṪইনপুটটি থাকতে পারে [[0,0],[0,1],[1,1],[1,1],[0,1]]
নিক কেনেডি

বাহ, অনুমানের পরিবর্তনগুলি সত্যিই বেশ বড় ছিল ...
অপ্রকাশিত স্ট্রিং

3

Haskell, , 29 বাইট

টাইপ সহ প্রথম লাইনে একটি নামহীন ফাংশন সংজ্ঞায়িত করে (Foldable t, Eq b) => b -> t [b] -> b। এই কোড গল্ফের উদ্দেশ্যে, আমরা এটি ইনস্ট্যান্ট করতে পারি Char -> [String] -> Charযেখানে প্রথম আর্গুমেন্টটি জমা হয় এবং দ্বিতীয়টি প্রতিটি স্ট্রিংয়ের একক কমান্ডের সাথে স্ট্রিংয়ের একটি তালিকা।

foldl(#)
a#[x,y]|a==x=y|1>0=a

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


1
আপনি উপসর্গ স্বরলিপি ব্যবহার করে এটি সংজ্ঞায়িত করেন তবে একই উপায়ে গণনা করুন । আমি বিশ্বাস করতে পারি না যে একই ধরণের স্বাক্ষরের ব্যাখ্যা সহ আমি একই সময়ে প্রায় একই একই উত্তরটি লিখেছিলাম ...
কোল

2

পাইথন, 111 বাইট

def f(a,b):
    c=a
    for i in range(0,len(b)-1,2):
        c=(not b[i])*(c or b[i] or b[i+1]) or c*b[i]*b[i+1]
    return c

Ungolfed। সম্পাদনা: এএইচএইচএইইএইচএইচএইএইচএইচ আমাকে কেউ মারছে!





2

কেগ , -ir16 বাইট

"(!;½|':"=['_"|_

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

ব্যাখ্যা:

  1. অন্তর্নিহিত ইনপুট নেয় এবং ডানদিকে সঞ্চয়ের মানটি নীচে স্থানান্তরিত করে

  2. নিম্নলিখিত (স্ট্যাকের দৈর্ঘ্য - 1 দ্বারা 2 বিভক্ত) বার বার করুন

2.1। সঞ্চয়ের স্থানটি শীর্ষে ফিরে যান

2.2। কমান্ডের প্রথম অংশের সাথে সাম্যের জন্য তুলনা করুন

2.2.1। যদি সত্য হয় তবে সংযোজকটি প্রতিস্থাপন করুন, অন্যথায় প্রতিস্থাপনটি পপ করুন

সূত্রের সাথে প্রাথমিক অভিমানের মানটিকে ইনপুট নেওয়া হয়। যেমন

010011000
  • প্রথম চরটি হল মান মূল্য acc
  • বিশ্রাম প্রোগ্রাম

1

বাশ , 58 40 বাইট

একটি সম্পূর্ণ প্রোগ্রামের জন্য একটি বাইট যুক্ত করুন: এতে পরিবর্তন fকরুন $0

(($1=$2-a?a:$3,1))&&f $1 ${@:4}||echo $1

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

$1সেট করা থাকলে তিনটি মিথ্যা প্রত্যাবর্তন করবে 0, তবে ,1শেষে একটি সিনট্যাক্স ত্রুটি বাদে পুরোটি ((expression))সত্যটি ফিরে আসার বিষয়টি নিশ্চিত করে ।

সমস্ত আর্গুমেন্ট গ্রাস হয়ে গেলে, একটি সিনট্যাক্স ত্রুটি ঘটে এবং পুনরাবৃত্তি শেষ হয়।



1

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

F⪪η²F⁼θ§ι⁰≔§ι¹θθ

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

F⪪η²

নির্দেশাবলী জোড়া অঙ্কে বিভক্ত করুন এবং সেগুলির উপরে লুপ করুন।

F⁼θ§ι⁰

যদি সঞ্চালক প্রথম অঙ্কের সমান হয় ...

≔§ι¹θ

... তারপরে এটির দ্বিতীয় সংখ্যাটি নির্ধারণ করুন।

θ

লুপের শেষে সংযোজকটি মুদ্রণ করুন।


1

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

!dh2Ol4$Ys0)

ইনপুটটিকে 2-কলামের ম্যাট্রিক্স হিসাবে গ্রহণ করে যেখানে প্রতিটি সারি একটি কমান্ড এবং একটি সংখ্যা

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


1

জেলি , 7 বাইট

fؽḂ⁹;Ṫ

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

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা-স্যুট দেখুন


আমি ইনপুট-ম্যাপিংটি সরিয়ে দিচ্ছি কারণ @ গ্যামা ফাংশন আমাকে এটি করার পরামর্শ দিয়েছে।

@ এ_হহ ঠিক আছে মোবাইলে মুছতে পারবেন না তাই এটির পরে এটিকে সম্বোধন করতে হবে
জোনাথন অ্যালান

@A_ 0,1,2,3 এর সাথে নির্দেশাবলীর ম্যাপবিহীন সংস্করণটি অঙ্ক হিসাবে কাজ করার জন্য স্থির হয়েছে তা কি ঠিক?
জোনাথন অ্যালান

1
হ্যাঁ, ঠিক আছে।


1

রুনিক এনেক্যান্টমেন্টস , 28 বাইট

/~@/i~/i<
/=?/~iR:l}i{l1-=?!

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

স্থান পৃথক করা বাইটের সিরিজ হিসাবে ইনপুট নেয় (রুনিক তালিকাগুলি বুঝতে পারে না)। প্রথম বাইটটি প্রাথমিক অবস্থা এবং অন্যান্য প্রতিটি বাইট প্রোগ্রাম the কোন বৈধতা সঞ্চালিত হয় (অর্থাত এটা অনুমান শুধুমাত্র বৈধ প্রোগ্রাম ইনপুট হিসাবে দেওয়া হয় এবং এটি গ্রাহ্য না করে কি মান প্রতিনিধিত্ব করতে ব্যবহৃত হয় 0এবং 1)।


1

x86 বিধানসভা, 33 বাইট

CL(পূর্ণসংখ্যা 0বা 1) এবং প্রাথমিক শনাক্তকারী স্থিতিকে শূন্য-সমাপ্ত ASCII স্ট্রিং হিসাবে কমান্ডের ঠিকানা হিসাবে নেয় ESI। এতে চূড়ান্ত সঞ্চয়ের স্থিতি রেখে দেয়CL

অফসেটে কল নির্দেশটি নির্দেশ করুন 0x1B( interpretব্যাখ্যায় লেবেল )।

3C 30 74 03 B0 01 C3 30 C0 C3 E8 F1 FF FF FF 38
C8 AC 75 07 E8 E7 FF FF FF 88 C1 AC 84 C0 75 EA
C3

ব্যাখ্যা (ইন্টেল সিনট্যাক্স ব্যবহার করে):

; function to convert ASCII '1'/'0' into 0 or 1 int values (from AL to AL)
ctob:
        CMP AL, 0x30 ; '0'
        JE .zero
        MOV AL, 1
        RET
        .zero:
        XOR AL, AL
        RET

; interpreting function
        interp_lp:
                CALL ctob     ; convert to number
                CMP AL, CL    ; compare to current accumulator
                LODSB         ; read the next character of the string
                              ; this doesn't affect any flags and we need to do
                              ; it in both cases anyway
                JNE interpret ; if AL != CL (from above, not the new value of AL), skip forward
                CALL ctob     ; convert AL to number
                MOV CL, AL    ; store AL in CL
interpret:      LODSB         ; read the next character of the string
                TEST AL, AL   ; check if it is a zero byte
                JNZ interp_lp ; if not, jump back into the loop
        RET


1

সি (জিসিসি) , 45 বাইট

f(a,i)char*i;{a=*i?f(a^*i?a:i[1],i+2):a;}

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

4 বাইট শ্যাভ অফ অফ ইরিকএফকে ধন্যবাদ!


1
প্রথম প্যারামিটারে রিটার্ন মান সংরক্ষণের স্বাভাবিক কৌশল ব্যবহার করে আপনি 4 বাইট সংরক্ষণ করতে পারেন: অনলাইনে চেষ্টা করে দেখুন!
এরিকএফ

0

স্ফটিক , 46 বাইট

কমান্ড সহ Array(Tuple(Int32,Int32)), যেমন [{0,0}, {0,1}, {0,0}]

def f(s,i);i.map{|c,v|s+=~(s^c)&(s^v)%2};s;end

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

আরও পঠনযোগ্য আকারে এটি বোঝা বেশ সহজ:

def f(state, instructions)
  instructions.map do |check, value|
    state += ~(state ^ check) & (state ^ value) % 2
  end
  state
end

ফাংশন প্রতিটি কমান্ড মাধ্যমে loops, স্বয়ংক্রিয়ভাবে মধ্যে tuple মান unpacking cএবং v। এটি stateসূত্র দ্বারা সেট করে

state = state + NOT(state XOR check) AND (state XOR value) mod 2

যা আমি প্রায়শই পরীক্ষা এবং ত্রুটির দ্বারা পৌঁছেছি। সমস্ত কমান্ড প্রক্রিয়া করা হয়ে গেলে, এটি রাষ্ট্রীয় মান প্রদান করে।


0

সি (ঝনঝন) , 68 62 বাইট

t(s,e,a)char*s,*e;{for(;s<e;++s)a=*s++-48^a?a:*s-48;puts(&a);}

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

উত্সের স্ট্রিংয়ের শুরুতে সূচক, সূত্রের স্ট্রিংয়ের শেষে (সূচনা + স্ট্র্লেন (শুরু)) এবং প্রাথমিক সংযোজকের মানকে সূচক দেয়।

পুরানো সংস্করণ (0/1 এর জন্য ASCII 48/49 প্রিন্ট করে):

t(s,e,a)char*s,*e;{for(;s<e;++s)a=*s++-48^a?a:*s-48;putchar(a+48);}

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