মেটা বোলিং গল্ফ


22

আপনার কাজটি হ'ল সংক্ষিপ্ততম প্রোগ্রাম (এ) তৈরি করা যা অন্য একটি প্রোগ্রামকে (বি) সর্বাধিক অনন্য বাইটস সহ আউটপুট দেয়, যার ফলে মূল প্রোগ্রামটি (এ) আউটপুট হয়। মূলত, আপনি ওউরোবোরাস প্রোগ্রামগুলির একটি জুটির ( অর্ধ পর্যায়ক্রমিক পুনরাবৃত্তি কুইন) অর্ধেক গল্ফ করছেন এবং অন্য অর্ধেক বোলিং করছেন। এ এবং বি বিভিন্ন ভাষায় থাকতে পারে।

বিধি এবং স্কোরিং

আপনার চূড়ান্ত স্কোর <number of unique bytes in B> / <number of bytes in A>। সর্বোচ্চ স্কোর জয়। এটি লক্ষ করা উচিত যে তাত্ত্বিক সর্বোচ্চ স্কোর 256।

  • প্রোগ্রাম এ অবশ্যই কমপক্ষে একটি বাইট দীর্ঘ হতে হবে
  • প্রোগ্রাম বি পুরোপুরি নো-অপ্সের সমন্বয়ে গঠিত হতে পারে না, কমপক্ষে একটি অক্ষর অবশ্যই কোনওভাবে আউটপুটকে প্রভাবিত করবে।
  • কোয়েনের স্ট্যান্ডার্ড নিয়ম দুটি প্রোগ্রামেই প্রযোজ্য । উল্লেখযোগ্যভাবে, উভয় ক্ষেত্রেই ত্রুটি কুইনগুলি অনুমোদিত নয়।

উত্তর বিন্যাসের ধারাবাহিকতার জন্য, আপনার উত্তরটি এই জাতীয় কিছু দিয়ে শুরু করুন:

# <Language for A> & <Language for B>, Score: <B score> / <A score> = <combined score>

এটি পরিষ্কার হওয়ার জন্য আমি মনে করি আপনাকে দ্বিতীয় বুলেট পয়েন্টটি কিছুটা স্পষ্ট করতে হবে। কোনও চরিত্রের সঠিকভাবে কোনও অপ-বিকল্প হওয়ার অর্থ কী?
গম উইজার্ড

অনন্য বাইট দ্বারা, আপনি কি ভাগ বাট বলতে চান বা উভয়ের মধ্যে মিল?
ক্রিস্টস দ্য ওভারলর্ড

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

1
আমি কেবল সেই প্রোগ্রামগুলির জন্য অপেক্ষা করছি যেখানে প্রোগ্রাম এ অবিচ্ছিন্ন বা ভাষাগুলিতে রয়েছে
অজ্ঞতার

4
@ এম্বোডিমেন্টফআইগনারি প্রোগ্রাম এটি বাইটের সংখ্যা অনুসারে স্কোর করা হয়, অনন্য বাইট নয়। দৈর্ঘ্য / ইউনারি ভয়াবহ স্কোর করবে
জো কিং

উত্তর:


14

জাপটজাপট , স্কোর: 255/38 = 6.71

প্রোগ্রাম এ :

"iQ ²¯24
G²õ@i'#+Xd"iQ ²¯24
G²õ@i'#+Xd

প্রোগ্রাম বি 8 কেবি এরও বেশি দীর্ঘ, এত দীর্ঘ যে লিঙ্কটি ব্রেক হয়ে যায়, তাই আমি পুরো জিনিসটি পেস্ট করব না। একটি নমুনা এখানে:

#þ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#ÿ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#Ā"iQ ²¯24
G²õ@i'#+Xd"iQ ²

আমি NULকাজ করার জন্য বাইট পাওয়ার কোনও উপায় খুঁজে পাইনি , এ কারণেই প্রোগ্রাম বিতে কেবল 255 টি স্বতন্ত্র অক্ষর রয়েছে। প্রোগ্রাম বিতে মূলত একটি একক প্রোগ্রামের 255 অনুলিপি থাকে, যেখানে প্রতিবারই একক অপ্রাসঙ্গিক বাইট পরিবর্তন করা হয় এবং প্রথম 254 মৃত্যুদণ্ডকে উপেক্ষা করা হয়।

ব্যাখ্যার জন্য, আমি এ এর সহজতর সংস্করণ দিয়ে শুরু করব যাতে ফলস্বর বিটি আলোচনা করা সহজ হয়।

"iQ ²¯23
3õ@i'#+Xd"iQ ²¯23
3õ@i'#+Xd

এই প্রোগ্রামটি বেসিক পে-লোড-সক্ষম জাপট কুইনের উপর ভিত্তি করে । শুরুতে থাকা স্ট্রিংটিতে বাকি প্রোগ্রামের iQ ²একটি সদৃশ থাকে, পুরো প্রোগ্রামটির স্ট্রিং উপস্থাপনা তৈরি করতে একটি উদ্ধৃতি এবং ডুপ্লিকেট সন্নিবেশ ¯23করানো হয় এবং তারপরে নিজের এবং তার পরে সমস্ত কিছু ছাঁটাই করে দেয়। ফলস্বরূপ স্ট্রিং এমন একটি প্রোগ্রাম যা প্রোগ্রাম এটিকে আউটপুট করে :

"iQ ²¯23
3õ@i'#+Xd"iQ ²

আমি এই স্ট্রিং হিসাবে উল্লেখ করব U

এ-এর শেষ লাইনটি Uপ্রতিবার একটি ছোট পরিবর্তন দিয়ে একগুচ্ছ বারের নকল করে । বিশেষ করে, প্রতিটি সংখ্যার জন্য Xসীমার মধ্যে [1...3]আউটপুট "#c" + Uযেখানে ccharcode সঙ্গে চরিত্র X। জাপ্টের ডিফল্ট আচরণটি হ'ল স্ট্রিংগুলিকে কোনও উদ্ধৃতি চিহ্ন ছাড়াই আউটপুট দেওয়া এবং কমা দ্বারা আলাদা করা হয়, সুতরাং এটি আমাদের সরলিকৃত এ এর ​​আউটপুট (নোট করুন যে প্রতিটি #এবং এর মধ্যে একটি অপ্রকাশনীয় বাইট রয়েছে "iQ:

#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²

আমরা এটিকে সরলীকৃত বি বলব ।

সরলীকৃত বিয়ের একটি সাধারণ কাঠামো রয়েছে, #cএবং এর মধ্যে বিকল্প হয় U। ভাগ্যক্রমে এই উত্তরের জন্য, প্রতিটি #cএবং Uএকটি কমা দ্বারা পৃথক হিসাবে গণ্য করা হয়, এবং এই পরিস্থিতিতে এর আচরণের শেষটি বাদে সবকিছুই Uআউটপুটটিতে কোনও প্রভাব ফেলে না। সরলীকৃত বি এর একমাত্র অংশ যা আউটপুটকে প্রভাবিত করে তা হ'ল:

"iQ ²¯23
3õ@i'#+Xd"iQ ²

যা Uআমরা ইতিমধ্যে সরলীকৃত আউটপুট জানি এর সাথে সমান is

সরলিকৃত এ এবং প্রোগ্রাম এ এর ​​মধ্যে একমাত্র পার্থক্য হ'ল [1...3]আসল প্রোগ্রামটি পরিসরের জন্য অনুলিপি তৈরি করার পরিবর্তে পরিসীমাটির জন্য প্রকৃত প্রোগ্রাম অনুলিপি তৈরি করে [1...256]। এটির #cপ্রতিটিটির 256 সংস্করণে আলাদা আলাদা চরিত্র রয়েছে, যদিও শেষ সংস্করণ "Ā" একটি বহু-বাইট অক্ষর তাই এটি কোনও অনন্য বাইট যুক্ত করে না, তবে শেষটি ব্যতীত সমস্ত Uকিছুই এখনও উপেক্ষা করা হয়।


খুব সুন্দর :) এই 38 বাইট জন্য কাজ করবে ?
শেগি

@ শেগি 27যখনই বাইটগুলি সংরক্ষণ করা হয় সেগুলিতে টুইটগুলি করা দরকার, তবে এটির মতো এটি কাজ করে বলে মনে হয়।
কামিল দ্রাকারী

1
@ শেগি স্কোরিং বি-তে অনন্য বাইটের সংখ্যার ভিত্তিতে তৈরি হয়েছে এবং কেবলমাত্র 256 টি বাইট রয়েছে। আমি যতদূর জানি, এমনকি বি এর নতুন সংস্করণে নাল বাইট থাকে না।
কামিল দ্রাকারী

এটিকে নাল বাইট দিয়ে কাজ করার জন্য কয়েকটি জিনিস চেষ্টা করেছিলেন, তবে সমস্ত ব্যর্থ হয়েছিল।
শেগি

5

প্রোগ্রাম এ, গোল> <> , 256/20 বাইট = 12.8

"44XFL|r2ssl3%Q4s]|H

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

প্রোগ্রাম বি, গোল> <>

"44XFL|r2ssl3%Q4s]|H	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ

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

প্রোগ্রামটি আউটপুট আউট করে নিজেই প্রতিটি বাইট অনুসরণ করে এবং কেবল নিজেকে আউটপুট দেয় between

ব্যাখ্যা:

"            Wrapping string literal pushes the first line to the stack backwards
 44X         Push 256
    FL|      Push the range from 0 to 255
       r                  Reverse the stack
        2ss               Push a quote
           l3%            If the stack length is divisible by 3
              Q4s]|       Only take the top 20 characters
                   H      And output the stack

1

প্রোগ্রাম এ: 05 এ বি 1 , স্কোর: 256/41 256/31 বাইট = 8.258 ...

0"D34çý₅Ýç'q†22ǝ"D34çý₅Ýç'q†22ǝ

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

প্রোগ্রাম বি: 05 এএবি 1 ই

0"D34çý₅Ýç'q†22ǝ"D34çýq 

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoprstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿÝç'q†22ǝ

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

ব্যাখ্যা:

সবচেয়ে কম : 05AB1E এই এক 0"D34çý"D34çý( 14 বাইট ) দ্বারা উপলব্ধ @OliverNi । আমার উত্তর যোগ করে সেই কুইনের একটি পরিবর্তিত সংস্করণ ব্যবহার করে ₅Ýç'q†vy27ǝD}J

0            # Push a 0 to the stack
             #  STACK: [0]
 "D34çý₅Ýç'q†vDy27ǝ}J"
             # Push the string "D34çý₅Ýç'q†vDy27ǝ}J" to the stack
             #  STACK: [0,"D34çý₅Ýç'q†vDy27ǝ}J"]
  D          # Duplicate the string
             #  STACK: [0,"D34çý₅Ýç'q†vDy27ǝ}J","D34çý₅Ýç'q†vDy27ǝ}J"]
   34çý      # Join the stack by '"'
             #  STACK: ['0"D34çý₅Ýç'q†vDy27ǝ}J"D34çý₅Ýç'q†vy27ǝD}J']
₅Ý           # Push a list in the range [0,255]
  ç          # Convert each integer to an ASCII character
   'q†      '# Filter the "q" to the front
      22ǝ    # Insert it at index 22 in the string (replacing the second '₅')
             # (and output the result implicitly)

প্রোগ্রাম বিটি পৌঁছানোর সাথে সাথেই শেষ হয়ে যাবে q, সুতরাং আসল প্রোগ্রাম বিটি হ'ল:

0"D34çý₅Ýç'q†22ǝ"D34çýq

তারপরে সমস্ত কিছু উপেক্ষা করা হবে এবং স্ট্যাকের ( 0"D34çý₅Ýç'q†22ǝ"D34çý₅Ýç'q†22ǝ) শীর্ষে আউটপুট অন্তর্নিহিত।

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