প্রোগ্রামিং একটি প্রিস্টাইন ওয়ার্ল্ড


87

এর একটি সংজ্ঞায়িত করা যাক আদিম প্রোগ্রাম একটি প্রোগ্রাম যা কোনো ত্রুটি নিজেই নেই কিন্তু আপনি তা এন অক্ষরের কোনো সংলগ্ন সাবস্ট্রিং সরানোর, যেখানে দ্বারা সংশোধন ত্রুটি হবে 1 <= N < program length

উদাহরণস্বরূপ, পাইথন 2 প্রোগ্রামের তিনটি চরিত্র

`8`

একটি প্রাথমিক প্রোগ্রাম ( ধন্যবাদ, এসপি ) কারণ দৈর্ঘ্য 1 এর সাবস্ট্রিংগুলি সরিয়ে ফলস্বরূপ সমস্ত প্রোগ্রাম ত্রুটি ঘটায় (প্রকৃত পক্ষে সিনট্যাক্স ত্রুটি, তবে কোনও ধরণের ত্রুটি করবে):

8`
``
`8

এবং দৈর্ঘ্যের 2 টি সাবস্ট্রিংগুলি অপসারণের ফলে প্রাপ্ত সমস্ত প্রোগ্রাম ত্রুটি সৃষ্টি করে:

`
`

উদাহরণস্বরূপ, `8যদি একটি অ-ত্রুটিযুক্ত প্রোগ্রাম হয়ে থাকে তবে আধ্যাত্মিকতা `8`না থাকায় সাবস্ট্রিং অপসারণের সমস্ত ফলাফল অবশ্যই ত্রুটিযুক্ত হওয়া উচিত।

এই চ্যালেঞ্জটিতে আপনার কাজটি হ'ল সংক্ষিপ্ততম আদিম প্রোগ্রামটি লেখা সম্ভব যা কোনও ইনপুট নেয় না তবে নিম্নলিখিত পাঁচটি শব্দের মধ্যে একটির আউটপুট দেয়:

world
earth
globe
planet
sphere

আপনি কোন শব্দটি বেছে নিচ্ছেন তা সম্পূর্ণরূপে আপনার। একমাত্র শব্দটি প্লাস একটি alচ্ছিক ট্রেলিং নিউলাইন স্টাডআউটে মুদ্রণ করা উচিত (বা আপনার ভাষার নিকটতম বিকল্প)। বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতেছে।

নোট:

  • একটি স্বতন্ত্র প্রোগ্রামের প্রয়োজন, কোনও ফাংশন নয়।
  • শব্দগুলি সংবেদনশীল; আউটপুটিং Worldবা EARTHঅনুমোদিত নয়।
  • সংকলক সতর্কতা ত্রুটি হিসাবে গণনা করা হয় না।
  • ত্রুটিযুক্ত সাবপ্রগ্রামগুলি ইনপুট নিতে পারে বা আউটপুট দিতে পারে বা যতক্ষণ না সর্বদা ত্রুটি হয় ততক্ষণ অন্য কিছু করতে পারে।

এখানে একটি স্ট্যাক স্নিপেট রয়েছে যা সম্ভাব্য আদিম প্রোগ্রামের ফলে কোন প্রোগ্রামগুলিকে ত্রুটি করতে হবে তা তালিকাভুক্ত করবে:

<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>function go() { var s = $('#i').val(), e = []; for (var i = 1; i < s.length; i++) { for (var j = 0; j <= s.length - i; j++) { e.push(s.substring(0, j) + s.substring(j + i)); } } $('#o').val(e.join('\n---\n')); }</script>Program:<br><textarea id='i' rows='16' cols='80'>`8`</textarea><br><button onclick='go()' type='button'>Go</button><br><br>Programs that should error: (--- separated)<br><textarea id='o' rows='16' cols='80'></textarea><br>


1
@ জোকাভেল হ্যাঁ ব্যতিক্রম ধরা মানে এটি আর ত্রুটি নেই।
ক্যালভিনের

33
মুছে ফেলা হিসাবে মুছে ফেলা উত্তর হিসাবে দ্বিগুণ। এটি একটি অর্জন!
DLosc

1
একটি প্রোগ্রাম তার নিজস্ব উত্স কোড পড়তে পারে?
শেলভাকু

2
"নিকটে তবে সিগার নেই" উত্তর এবং তাদের মন্তব্যগুলির কবরগার্ডটি কোথায় দেখতে পাবেন?
vi।

1
@Vi। 2,000 রিপ্রেস পান যাতে আপনি মোছা পোস্টগুলি দেখতে পারেন ।
এইসুইটসআইবলাকনট

উত্তর:


46

রেল , 24 বাইট

$'main'    #
 -[world]o/

আমি মনে করি এটি কাজ করে। এবং এটি উভয়ই সংক্ষিপ্ত এবং পাঠযোগ্য (যতদূর রেল যায়)।

  • যদি সরানো স্ট্রিংগুলিতে $'main'আমরা যে কোনও অংশ অন্তর্ভুক্ত করি Internal Error: Crash: No 'main' function found
  • যদি সরানো সাবস্ট্রিংটিতে অন্তর্ভুক্ত #থাকে তবে প্রোগ্রামটি পরিষ্কারভাবে প্রস্থান করার কোনও উপায় নেই, সুতরাং এটি সর্বদা শেষ হয়ে যাবে Crash: No valid move। আমি বিশ্বাস করি যে কোনও স্ট্রিংটি মুছে ফেলা সম্ভব নয় যাতে ট্র্যাকটি একটি বৈধ (অসীম) লুপ তৈরি করে।
  • যদি সরানো সাবস্ট্রিংটি সামনে থাকে তবে #এটি ট্র্যাকের শেষ থেকে সংযোগ বিচ্ছিন্ন হয়ে যাবে, সুতরাং ট্রেনটি ক্রাশ হবে (উপরের মতো একই ত্রুটিযুক্ত)।
  • যদি সরানো সাবস্ট্রিংটি এর পরে থাকে তবে #এটি #ট্র্যাকের শেষ থেকে (এবং সম্ভাব্য এমনকি প্রবেশের স্থান থেকে ট্র্যাকের শুরুও $) সংযোগ বিচ্ছিন্ন করবে । তাই আবার একই ত্রুটি।

আসল প্রোগ্রাম হিসাবে: প্রতিটি রেল প্রোগ্রামের একটি $'main'(বা একটি দীর্ঘতর বৈকল্পিক হওয়া প্রয়োজন, তবে আমরা এখানে গল্ফ করছি) ফাংশনটিতে প্রবেশের পয়েন্ট হিসাবে এবং ট্রেনটি $দক্ষিণ-পূর্ব দিকে যাচ্ছে starts প্রথম লাইনে থাকা সমস্ত কিছু যদিও ট্র্যাকের অংশ হতে পারে, সুতরাং 'main'ট্র্যাকটি সরানো হ'ল:

$          #
 -[world]o/

-এবং /কেবল রেল টুকরা যা আমরা ট্রেন ঐ 45 ° পালাক্রমে নিয়ে যাক প্রয়োজন।

[world]স্ট্রিংটি পুশ করে worldএবং oমুদ্রণ করে। #ট্র্যাকের শেষ চিহ্নিত করে - নিরাপদে রেল প্রোগ্রাম বন্ধ করার একমাত্র উপায়।

মজার বিষয় হল, এই সমাধানটি কেবল সম্ভব কারণ রেল ট্র্যাকগুলি mainলাইন দিয়ে যেতে দেয় - যদি এটি সম্ভব #না হয় তবে প্রথম নতুন লাইনের পরে হবে এবং কোডটি সর্বদা সংক্ষিপ্ত করা যেতে পারে could

$'main'
 #

যা একটি বৈধ প্রোগ্রাম যা কিছুই করে না। (মধ্যে অ-স্পেস অক্ষর 'এবং #যার প্রভাব পড়বে না।)

এছাড়াও বেশ আকর্ষণীয়: আমি যদি টাস্ক প্রিন্টিংয়ে কেবল গল্ফ করতাম তবে worldএটি খুব কম বা সহজতর হত না:

$'main'
 -[world]o#

4
যদি আমি [এবং] এর মধ্যে কোনও চর অপসারণ করি?
মার্টিন লটকে

@ মার্টিনলটেক এটি /থেকে সংযোগ বিচ্ছিন্ন করবে #
মার্টিন ইন্ডার

2
@ মার্টিনলটকে আপনি কেবল বন্ধনীগুলি সারণী করতে না পারায় কেবল তা সরাতে পারেন নি।
ক্যালভিনের

দুই লাইনের মধ্যে নতুন লাইন সরিয়ে ফেললে কী হবে?
vi।

1
@Vi। $এটি ট্র্যাকের শুরু থেকে সংযোগ বিচ্ছিন্ন করে , তাই ট্রেনটি তত্ক্ষণাত ক্র্যাশ হয়ে যায় (রেল ট্র্যাকটি দক্ষিণ-পূর্ব দিকে চালিয়ে যাওয়ার প্রত্যাশা করে $)।
মার্টিন এন্ডার

43

ফানসিটন ( ইউটিএফ -16 এ 186 136 বাইট)

╔══════════════╗
║19342823075080╟
║88037380718711║
╚══════════════╝

এই প্রোগ্রামটি "বিশ্ব" মুদ্রণ করে।

আপনি এটিকে সরিয়ে ফেলেন এমন বেশিরভাগ সাবস্ট্রিংগুলি এটি একটি সম্পূর্ণ বাক্স হতে আটকাবে, যার বিষয়ে পার্সার অভিযোগ করবে। একটি সম্পূর্ণ বাক্স ছেড়ে যাওয়া কেবলমাত্র সম্ভাব্য অপসারণগুলি হ'ল:

 ╔══════════════╗
|║19342823075080╟  (remove this whole line)
|║88037380718711║
 ╚══════════════╝
 ╔══════════════╗
 ║|19342823075080╟   ← substring starts at | here
 ║|88037380718711║   ← substring ends at | here
 ╚══════════════╝
... ↕ or anything in between these that removes a whole line’s worth ↕ ...
 ╔══════════════╗
 ║19342823075080|╟   ← substring starts at | here
 ║88037380718711|║   ← substring ends at | here
 ╚══════════════╝
 ╔══════════════╗
|║19342823075080╟
 ║88037380718711║  (both lines entirely)
|╚══════════════╝
 ╔══════════════╗
 ║19342823075080╟
|║88037380718711║  (remove this whole line)
|╚══════════════╝

এগুলির বেশিরভাগ বাক্সের ডানদিকে ডানলিং প্রান্তটি সরিয়ে দেয় যা আউটপুট সংযোগকারী। এই আলগা শেষ না করে বক্সটি কেবল একটি মন্তব্য:

╔══════════════╗
║88037380718711║
╚══════════════╝

এটি আর একটি বৈধ প্রোগ্রাম নয় কারণ পার্সার ঠিক একটি আউটপুট সহ একটি প্রোগ্রাম আশা করে:

ত্রুটি: উত্স ফাইলগুলিতে কোনও প্রোগ্রাম থাকে না (প্রোগ্রামের অবশ্যই আউটপুট থাকতে হবে)।

আউটপুট সংযোগকারীকে ছেড়ে যাওয়ার একমাত্র সম্ভাবনা হ'ল উপরের শেষটি, যা এটি ছেড়ে দেয়:

╔══════════════╗
║19342823075080╟
╚══════════════╝

যাইহোক, এই সংখ্যাটি ফানসিটনের অনন্য ইউটিএফ -21-তে কোনও বৈধ ইউনিকোড স্ট্রিংটিকে এনকোড করে না। এটি চালানোর চেষ্টা করুন, আপনি পাবেন:

আনহানডেলড ব্যতিক্রম: সিস্টেম.আরগমেন্টমেন্ট আউটআফ্র্যাঞ্জএক্সেপশন: একটি বৈধ ইউটিএফ 32 মান 0x000000 এবং 0x10ffff এর মধ্যে, সমেত এবং এর মধ্যে সারোগেট কোডেপয়েন্টের মান (0x00d800 ~ 0x00dfff) অন্তর্ভুক্ত করা উচিত নয়।

অতএব, এই প্রোগ্রামটি আদিম।


3
আমি মনে করি আপনি শেষ কেসে ভাগ্যবান হয়েছেন (দুর্ঘটনাক্রমে বৈধ ইউনিকোড সিকোয়েন্স পাওয়া এত সহজ নয়, তবে এখনও ...)
Esolanging ফল

34

ভিজ্যুয়াল সি ++ - 96 95 বাইট

#include<iostream>
#define I(a,b)a<<b
int main()I({std::cout,I('w',I('o',I('r',I('l','d';)))))}

বিশিষ্টতা:

  1. int main()সংকলন ত্রুটি ছাড়া আপনি কোনও অংশ সরাতে পারবেন না ।
  2. আপনি সব সময়ে ম্যাক্রো সম্প্রসারণ পরিবর্তন সরাতে পারবেন না, অপসারণ aসব উপায়ে এ main()কখনো পায় {, অপসারণ bআদৌ মানে আমাদের লাইনটি একটি সমাপ্ত হয় না ;, অপসারণ <উপায়ে std::cout<'w'একটি ত্রুটি কারণ, এবং সরিয়েছে <<কারণ std::cout'w', 'w''o'ইত্যাদি
  3. আপনি ম্যাক্রো সংজ্ঞা বা অনুরোধ থেকে পরামিতিগুলি সরাতে পারবেন না, সংজ্ঞাটির একমাত্র বৈধ নামগুলি হবে I(a), I(b)যা কখনও মিলবে না এবং Iযা আগে প্রসারিত হয় (; অন্যদিকে I(,কারণগুলি ব্যবহার করে<<<< এবং ,)সেমি-কোলনটি ড্রপ করে (অন্য কোনও ত্রুটি ব্যতীত)।
  4. আপনি std::coutকোনও শীর্ষস্থানীয় হয়ে না গিয়ে সমস্তের অংশ সরাতে পারবেন না<< এবং তাই কোনও #include<iostream>সঙ্কলন ত্রুটি না করে শুরুতে কোনওটিকে সরাতে পারবেন না ।
  5. আপনি একটি একক চরিত্রের কোনও অংশ সরাতে পারবেন না, '' খালি অক্ষরের ত্রুটি রয়েছে এবং 'w,ইত্যাদি ... সবকিছুকে একটি চরিত্র বানানোর চেষ্টা করুন।
  6. আপনি ম্যাক্রোর বাম / ডান দিকটি খুব বেশি )বা অন্যদিকে না ফেলে সরিয়ে ফেলতে পারবেন না (, যেমন আপনি পছন্দ মতো কাজ করতে পারবেন না I('w',I('r'

ভিজ্যুয়াল সি ++ ব্যবহার করে অনলাইন সংকলন করে ।

আবার এটি সম্পূর্ণরূপে প্রমাণ নয়। আপনি যদি ভাবেন যে বিভাগ ছাড়াই আপনি এটি খুব বেশি কাজ করতে পারেন তবে অবশ্যই আমাকে জানান।

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


প্রতিপাদন:

নিম্নলিখিত প্রোগ্রামটি নিশ্চিত করেছে যে এই সংস্করণটি clভিজ্যুয়াল সি ++ ২০১০ থেকে সংকলকটি ব্যবহার করে আধ্যাত্মিক।

#include <fstream>
#include <iostream>
char *S = "#include<iostream>\n#define I(a,b)a<<b\nint main()I({std::cout,I('w',I('o',I('r',I('l','d';)))))}";
//uncomment to print source code before compile
// #define prints
int main(){
   for(int i=0; i<95; i++)
      for(int j=i; j<95; j++){
         std::fstream fs;
         fs.open ("tmptst.cpp",std::fstream::out);
         for(int k=0; k<95; k++)
         if(k<i || k>j){
            fs << S[k];
            #ifdef prints
               std::cout<<S[k];
            #endif
         }
         fs.close();
         #ifdef prints
            std::cout<<'\n';
         #endif
         //Compile and surpress/pipe all output
         //if it doesn't compile we get a nonzero errorlevel (i.e.true) from system.
         if(!system("cl -nologo tmptst.cpp >x"))
            return 0;
      }
      std::cout<<"PRISTINE!";
}

1
আমরা নোট করি যে এটি এই সংকলকটিতে প্রাচীন হলেও এটি সমস্ত সংকলকগুলিতে নয়।
জোশুয়া

1
দয়া করে একটি উদাহরণ দিন ....
লিনাস

3
কিছু সংকলকগুলিতে খালি সি ++ প্রোগ্রামে এমন একটি প্রোগ্রাম আসে যা কিছুই করে না। আইওস্ট্রিম বাস্তবায়নের উপর নির্ভর করে # অন্তর্ভুক্ত <iostream> সংকলনও করতে পারে।
জোশুয়া

5
@ জোশুয়া কেবল দৈর্ঘ্যের 1 বা উচ্চতর সাবপ্রগ্রামগুলি, সুতরাং খালি প্রোগ্রামটি এটি অপ্রাসঙ্গিক।
এইসুইটস ব্ল্যাকনট

2
@ সরকার, সত্য নয়। যদি আপনি এক্সিকিউটেবল চালনার জন্য বাক্সটি চেক না করেন তবে /cবিকল্পটি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়ে যায় এবং এটি সংকলিত হয় (যেন একটি লাইব্রেরি তৈরি করে এবং কোনও প্রোগ্রাম নয়)। আপনি যদি রান বক্সটি পরীক্ষা করে থাকেন তবে সাইটটি অন্তর্ভুক্ত না করে /c, আপনি একটি সাফল্যের বার্তা পাবেন না এবং এর পরিবর্তে প্রাকৃতিক "লিঙ্ক: মারাত্মক ত্রুটি LNK1561: এন্ট্রি পয়েন্টটি সংজ্ঞায়িত করা উচিত" খুঁজে পাবেন।
লিনাস

32

পাইথন 3, 79 33

if 5-open(1,'w').write('world'):a

open(1,'w')স্ট্যান্ডার্ড আউটপুট খোলে, তারপরে আমরা স্ট্রিংটি মুদ্রণ করব। writeলিখিত অক্ষরের সংখ্যা প্রদান করে। স্ট্রাস্টিং অপসারণের বিরুদ্ধে কঠোর করার জন্য এটি ব্যবহার করা হয়: স্ট্রিংয়ের কিছু অংশ অপসারণের ফলে 5 ব্যতীত অন্য কিছু ফিরে আসে এবং 5 টি বিয়োগটি যা মানটিকে পরে সত্য বলে মূল্যায়ন করে। কিন্তু যে কারণif কারও মৃত্যুদন্ড কার্যকর হয় এবং aএটি সংজ্ঞায়িত হয়।

এটি অ্যান্ডারস কাসের্গের চালাক আধ্যাত্মিক কুইনের উপর ভিত্তি করে তৈরি এখানে

যেহেতু কেবলমাত্র একটি একক বিবৃতি যাচাই করা দরকার এটি পুরানো সমাধানের চেয়ে অনেক কম, তবে সাধারণও কম।

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

try:
 q="print('world');r=None"
 if exec('e=q')==eval(q[17:]):exec(e)
finally:r

এটি সত্যই একটি প্রাথমিক প্রোগ্রাম তা যাচাই করতে:

w=r'''try:
 q="print('world');r=None"
 if exec('e=q')==eval(q[17:]):exec(e)
finally:r'''
exec(w)
for j in range(1,len(w)):
 for i in range(len(w)+1-j):
  e=w[:i]+w[i+j:]
  try:exec(e,{});print('WORKED',e)
  except:pass

কিছু মূল বিষয়:

  • প্রতিটি কার্যকর করা বিবৃতি মুছতে পারে। qমৃত্যুদন্ড কার্যকর করা হয়েছে যাচাইয়ের বাইরে একটি বিবৃতি প্রয়োজন q। দ্যtryসমাধান যে চমত্কারভাবে, অন্তত দুই বিবৃতি, এমন পদ্ধতির মাধ্যমে তন্ন তন্ন করে পুরোপুরি মুছে ফেলা যাবে।
  • qমৃত্যুদন্ড কার্যকর করা হয়েছে যাচাই rশেষে মূল্যায়ন করে ঘটে ।
  • যাচাই করা qহয়নি তা যাচাই করা অর্জন করে eval(q[17:]), যা সম্পাদন করার Noneজন্য মূল্যায়ন qকরতে হয়।
  • ifশর্ত একটু চতুর অধিকার পেতে হয়। এটি মূল্যায়ন করা হয়েছিল তা নিশ্চিত করার জন্য এটির সেটিংয়ের দুর্দান্ত পার্শ্ব প্রতিক্রিয়া রয়েছে e, যা সেট করা দরকার r। (এই কারণেই আমি পাইথন 3 ব্যবহার করেছি, exprকারণ কোনও ফাংশনটি এক্সপ্রেশন-স্তরের পার্শ্ব প্রতিক্রিয়াগুলির জন্য আশ্চর্য করে।)

চ্যালেঞ্জটি কী নয় যে কোনও অপসারণের ফলে সিনট্যাক্স ত্রুটি হবে? আপনি রানটাইম ত্রুটিগুলি উস্কে দিয়েছেন বলে মনে হচ্ছে।
মার্টিন লটকে

5
@ মার্টিনলটেক যে কোনও ধরণের ত্রুটি ভাল।
ক্যালভিনের

1
উম, এই 79 বাইট না?
ম্যাট

@ ম্যাট হ্যাঁ? আমি কেবল এগুলি আবার গণনা করেছি এবং আপনি ঠিক বলে মনে করছেন। হয়তো আমি অতীতে সিআরএলএফ নিউলাইনগুলি গণনা করেছি ... কত বিব্রতকর। ধন্যবাদ!
ফিলিপ

25

হাস্কেল, 61

x=uncurry(:)
main=putStr$x('w',x('o',x('r',x('l',x('d',[])))))

কোন ধরণের ত্রুটি ঠিক আছে? এই ক্ষেত্রে:

হাস্কেল, 39

main=putStr$take 5$(++)"world"undefined

আপনি যদি কোনও একটি বর্ণ মুছে ফেলেন তবে এটি কাজ করে?
lirtosiast

এটি কার্যকর করার সময় ক্রাশ হবে cra কারণ এটি অপরিশোধিতকে মূল্যায়ন করার চেষ্টা করবে।
মার্টিন ল্যাটকে

এটি দুর্দান্ত। অলস মূল্যায়ন এফটিডাব্লু, এটি প্রদর্শিত হবে!
ডিএলস্ক

1
আমি ইচ্ছা করি 'ইনিটস' এর উপস্থাপনাটি ছিল :(। তারপরে: main = putStr $ inits "world" !! 5 (27 বাইট)
মার্টিন লট্ক

16

জাভাস্ক্রিপ্ট, 74 73 35 বাইট

if((alert(a="world")?x:a)[4]!="d")x

এটি প্রমাণিত হয়েছিল যে উত্তরটি আমার চেয়ে অনেক সহজ ছিল ...

ব্যাখ্যা

if(
  (
    alert(a="world") // throws a is not defined if '="world"' is removed
        ?x           // throws x is not defined if 'alert' or '(a="world")' is removed
        :a           // throws a is not defined if 'a="world"' or 'a=' is removed
  )
  [4]!="d"           // if "world" is altered fifth character will not be "d"
                     // if 'd' is removed it will compare "world"[4] ("d") with ""
                     // if '[4]' is removed it will compare "world" with "d"
                     // if '(alert(a="world")?x:a)' is removed it will compare [4] with "d"
                     // if '?x:a' is removed [4] on alert result (undefined[4]) will error
                     // if '[4]!="d"' is removed the if will evaluate "world" (true)
                     // if '!', '!="d"' or '(alert...[4]!=' is removed the if will
                     //     evaluate "d" (true)
)x                   // throws x is not defined if reached

// any other combination of removing substrings results in a syntax error

সমস্ত কিছুই বাদ দিন a="world", ত্রুটি করে না
anOKsquirrel

3
@anOKsquirrel কেবলমাত্র একটি একক স্ট্রাস্টিং সরানো যেতে পারে।
ডেনিস

4
"আমি কি এটি মুছে ফেলতে পারি? না, এই ত্রুটিটি ঘটতে পারে like এটিকে কী মুছে ফেলা যায়? ঠিক আছে, আমার ধারণা, এটি অন্য কোনও ত্রুটি ঘটায়। আহা! সেই অক্ষরগুলি সরানো যেতে পারে! ওহ অপেক্ষা করুন ..." +1
ETH প্রোডাকশন

if(a="world")["bol"+a[4]]ত্রুটি না।
anOKsquirrel

4
পবিত্র গরু, এটি এখন দ্বিগুণ প্রভাবশালী! আশা করি আমি আবার +1 করতে পারতাম ...
ETH প্রোডাকশন

15

জাভা 8, 301 বাইট

কারণ প্রতিটি প্রশ্নের একটি জাভা উত্তর দরকার।

class C{static{System.out.print(((((w='w')))));System.out.print((((o='o'))));System.out.print(((r='r')));System.out.print((l='l'));System.out.print(d='d');e=(char)((f=1)/((g=8)-C.class.getDeclaredFields()[h=0].getModifiers()));}public static void main(String[]a){}static final char w,o,r,l,d,e,f,g,h;}

সম্প্রসারিত

class C {
    static {
        System.out.print(((((w = 'w')))));
        System.out.print((((o = 'o'))));
        System.out.print(((r = 'r')));
        System.out.print((l = 'l'));
        System.out.print(d = 'd');
        e = (char) ((f = 1) / ((g = 8) - C.class.getDeclaredFields()[h = 0].getModifiers()));
    }

    public static void main(String[] a) { }

    static final char w, o, r, l, d, e, f, g, h;
}

ব্যাখ্যা

  • public static main(String[]a){} দরকার.
  • যদি ক্ষেত্রের ঘোষণাগুলি সরিয়ে ফেলা হয় (বা অ স্থিতিশীল করা হয়েছে), তবে প্রথম স্ট্যাটিক ব্লক সেগুলি খুঁজে পাবে না।
  • যদি স্ট্যাটিক ব্লকটি সরানো হয় (বা অ-স্থিতিশীল করা হয়), ক্ষেত্রগুলি আরম্ভ করা হয় না।

কঠিন অংশ:

  • যদি finalশব্দ সরিয়ে ফেলা হয়, দ্বিতীয় লাইন মূল্যায়ণ 1/(8-8), একটি ঘটাচ্ছে / by zeroব্যতিক্রম।

আপনি কোনও মুদ্রণের বিবৃতিগুলির অভ্যন্তরীণ স্থান সরিয়ে ফেলতে পারবেন না কেন?
নিক হার্টলি

2
@QPaysTaxes একটি খালি System.out.print()পদ্ধতি নেই। জন্য আছে println(), কিন্তু না print()। সুতরাং আপনি যদি d='d'এটি সরিয়ে ফেলেন তবে এটি The method print(boolean) in the type PrintStream is not applicable for the arguments ()ত্রুটি হিসাবে দিত (এবং আপনি যদি d=এটি সরিয়ে ফেলেন তবে The blank final field d may not have been initializedত্রুটি হিসাবে দিত)।
কেভিন ক্রুইজসেন

15

ফানসিটন , 143 142 136 বাইট

স্কোর যথারীতি ইউটিএফ -8 এ রয়েছে, কারণ ইউটিএফ -16 দুটি বাইট বৃহত্তর হবে (বিওমের কারণে)।

╔══════════╗
║1934282307║╔╗
║5080880373╟╚╝
║80718711  ║
╚══════════╝

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

তবে একটি একক লাইনে আক্ষরিক পরিমাণগুলি ব্যাক্তিগতভাবে ব্যয়বহুল, উভয়ই বৃহত্তর চরিত্রের গণনার কারণে এবং অ-এএসসিআইআই অক্ষরের সংখ্যার কারণে। এবং একটি "ফাঁকা মন্তব্য" ব্লকের তাঁর উল্লেখ আমাকে ভাবতে পেয়েছিল ...

সুতরাং আমি এই আরও কার্যকর সমাধান নিয়ে এসেছি যা একটি অতিরিক্ত ফাঁকা কমেন্ট ব্লক ব্যবহার করে যা ব্রেক করে যখন আপনি এমন কিছু অপসারণ করার চেষ্টা করেন যা যা কৌশলে আক্ষরিক ব্লক ছেড়ে দেয়:

  • আমরা তৃতীয় লাইনটি সম্ভবত মুছে ফেলতে পারি না, কারণ তারপরে আমরা আউটপুট সংযোগকারীটি সরিয়ে ফেলতাম।
  • যদি আমরা দ্বিতীয় লাইনটি সরিয়ে ফেলি তবে মন্তব্য ব্লকটি তার শীর্ষ প্রান্তটি হারাবে এবং ব্রেক হয়ে যায়।

এটি দুটি বিকল্প ফেলেছে ( স্টিভকে এটি নির্দেশ করার জন্য ধন্যবাদ ):

  • চতুর্থ লাইন সরান। কৌশলে উভয় বাক্স ছেড়ে দেয়। যাইহোক, যখন ফলাফল পূর্ণসংখ্যার 19342823075080880373ডিকোড করা হয়, তখন সংশ্লিষ্ট স্ট্রিংটিতে কোড পয়েন্ট থাকে 0x18D53Bযা বৈধ ইউনিকোড অক্ষর নয়, System.Char.ConvertFromUtf32একটি দিয়ে ক্র্যাশ করে ArgumentOutOfRangeException
  • উপরের-ডান কোণার পরে শুরু করে একটি পূর্ণ লাইন সরান। আবার, উভয় বাক্সটি কৌশলে বাকী রয়েছে, তবে ফলস্বরূপ পূর্ণসংখ্যায় 508088037380718711দুটি অবৈধ কোড পয়েন্ট থাকবে 0x1B0635এবং 0x140077এটি একই ব্যতিক্রম হতে পারে।

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


আপনি যদি আউটপুট সংযোজকের পরে অক্ষরটি দিয়ে শুরু করা স্ট্রিংিংটি সরিয়ে ফেলেন এবং ঠিক 1 লাইন পরে শেষ করবেন? অর্থাত্ মন্তব্য ব্লকের মাঝের লাইনটি এবং মূল ব্লকে "80718711" ধারণকারী লাইনটি সরিয়ে ফেলা, তবে উভয় বাক্সের কোণ অক্ষত রেখে দেওয়া।
স্টিভ

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

10

রুবি, 36

eval(*[(s="planet")[$>.write(s)^6]])

আমরা বরাদ্দ করি s="planet", তারপরে স্ট্রিংটি STDOUT এ লিখি। এটি লিখিত অক্ষরের সংখ্যা প্রদান করে। আমরা এটির সাথে or টি জোর দিয়েছি, যাতে characters টি বর্ণ ছাড়া অন্য কিছু লেখা থাকলে আমরা একটি ননজারো পূর্ণসংখ্যা পেয়ে যাব। তারপরে আমরা sসেই সূচকটি দিয়ে টুকরো টুকরো করি । s"পি" এর কেবলমাত্র 0 তম অক্ষর একটি বৈধ কোড স্ট্রিং (কোনও অপ-অপশন)। আমরা এটি পাস করি eval, (*[argument])সিনট্যাক্সটি ব্যবহার করে যা ঠিক সমান(argument) কোনও পদ্ধতির কলের বাইরে বৈধ নয় except

আধ্যাত্মিকতা রুবি 1.9.3 এবং 2.2 এ প্রোগ্রামের মাধ্যমে যাচাই করা হয়েছে


পবিত্র জঞ্জাল। এটা চমৎকার.
তালি

আপনি কি সরিয়ে দিলে কি হবে *?
LegionMammal978

তারপরে আপনি স্ট্রিংয়ের পরিবর্তে একটি অ্যারে পাস করছেন যা একটি আর্গুমেন্টআরর।
হিস্টোক্র্যাট

9

সি #, 128 118 101 বাইট

সংলগ্ন সাবস্ট্রিং বিধিটি আপত্তিজনকভাবে ভাবার কথা।

কোড

class h{static void Main()=>System.Console.Write(new char[1
#if!i
*5]{'w','o','r','l','d'
#endif
});}

কেন এটি কাজ করে

  1. class hএবং static void Main()প্রয়োজনীয়।
  2. চরগুলির মধ্যে যে কোনও একটি সরিয়ে ফেলার 'w','o','r','l','d'ফলে ত্রুটি হয় কারণ চর অ্যারেটি দৈর্ঘ্যের সাথে আরম্ভ হয় 1*5
  3. অংশগুলি প্রিপ্রোকস দ্বারা পৃথক করা হওয়ায় আপনি সংক্ষিপ্ত চরিত্রের নিয়ম লঙ্ঘন না করে আপনি মেইন () এর ভিতরে থাকা সামগ্রীগুলি সরাতে পারবেন না। (নিচে দেখ)

গল্ফিং এবং বিচ্ছেদ আগে

class h
{
    static void Main() =>
        System.Console.Write(new char[1 * 5]{'w','o','r','l','d'});
}

সাথে যাচাই করা হয়েছে

https://ideone.com/wEdB54

সম্পাদনা করুন:

  • #if !xপরিবর্তে ব্যবহার করে কিছু বাইট সংরক্ষণ করা হয়েছে #if x #else
  • =>ফান সিনট্যাক্স ব্যবহৃত হয়েছে । #if!xপরিবর্তে #if !x। @ জনবোটের কাছে ক্রেডিট।
  • =>ফান সিনট্যাক্সের কারণে অতিরিক্ত প্রিপ্রোক শর্তটি সরানো যেতে পারে।

হাই হেলিক্স! আপনি কি মনে করেন যে আপনি কীভাবে এবং কেন আপনার উত্তরটি আরও কিছুটা কার্যকর করতে পারে তা ব্যাখ্যা করতে পেরেছিলেন?
isaacg

@ আইস্যাকগ সম্পাদিত। প্রমাণ অনুসরণ করুন।
হেলিক্স কোয়ার

আমি এটা ছাড়া চালানোর জন্য না পেতে পারেন staticউপর Main
জনবট

@ জনবোট হ্যাঁ অবশ্যই ভুল কপি করা উচিত সংশোধন করা হয়েছে।
হেলিক্স কোয়ার

আপনি করে একটি অক্ষর সংরক্ষণ করতে পারবেন Mainএকটি প্রকাশ-সাকার ফাংশন সদস্য প্রাক প্রসেসর শর্ত সামনে স্পেস সরিয়ে এবং 2 আরো class h{static void Main()=>System.Console.Write(new char[1\n#if!l\n*5]{'w','o','r','l','d'\n#if!o\n});\n#endif\n}\n#endif। এটা আমার গণনা অনুসারে 115
জনবট

9

ম্যাটল্যাব, 37 36 33 বাইট

feval(@disp,reshape('world',1,5))

যেহেতু আমি নিশ্চিত না যে আমাদের উত্তর = আউটপুট দেওয়ার অনুমতি দেওয়া হয়েছে কিনা , তাই আমাকে সঠিক উপায়ে আউটপুট দেওয়ার জন্য কিছু কাজ খুঁজে পেতে হয়েছিল। নিজে থেকে এফপ্রিন্টফ ব্যবহার করা কার্যকর হয়নি, কারণ আমি যা চেষ্টা করেছি তা ত্রুটি করতে অস্বীকার করেছে। নিজে থেকে ডিস্প ব্যবহার করা কোনও বিকল্প ছিল না, কারণ এটি কেবল 1 টি আর্গুমেন্ট গ্রহণ করবে এবং সেই যুক্তিটি নিজেই ত্রুটি ছাড়াই কার্যকর করতে হবে।

যদি আউটপুটে উত্তর = অন্তর্ভুক্ত করতে কোনও সমস্যা হয় তবে 20 বাইটের সাহায্যে ম্যাটল্যাব করা যেতে পারে :

reshape('world',1,5)

আমাকে অবশ্যই অন্তর্নির্মিত ফাংশন (+1) সম্পর্কে আরও শিখতে হবে //
বিটিডব্লিউ

2
এটি সত্যিই নির্ভর করে নিয়মগুলি কতটা কঠোর। তারা জানিয়েছে যে কেবল 'ওয়ার্ল্ড' (+ alচ্ছিক ট্রেলিং নিউলাইন) মুদ্রণ করা উচিত, তারপরে এটি 33 বাইট।
slvrbld

হ্যাঁ, আমরা এটিকে 33 হিসাবে গণনা করব understanding বোঝার জন্য ধন্যবাদ :)
ক্যালভিনের শখ

9

> <> , 17 বাইট

e"ooooo7-c0pBhtra

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

"পৃথিবী" মুদ্রণ করে।

><>কোনও ত্রুটি ছাড়াই প্রোগ্রাম থেকে বেরিয়ে আসার একমাত্র উপায় হ'ল ;চরিত্রটি কার্যকর করা , যা একটি সমস্যা কারণ আপনি কেবল তার আগে সমস্ত অক্ষর মুছে ফেলতে পারেন, তাই ;এটি প্রথম সম্পাদিত অক্ষর। পরিবর্তে মৃত্যুদন্ড কার্যকর করার সময় pঅন্তর্ভুক্ত করার জন্য প্রোগ্রামটি সংশোধন করতে কমান্ডটি ব্যবহার করে আপনি এটি পেতে পারেন ;। কোডের যে কোনও বিভাগ অপসারণের ;ফলে কখনই অবৈধ নির্দেশাবলীর মাধ্যমে ত্রুটি সৃষ্টি হয় না B, hএবং tআন্ডারফ্লোতে স্ট্যাক করা হয় এবং অসীম লুপগুলি এটিকে শেষ পর্যন্ত স্মৃতি থেকে সরিয়ে দেয়। আমাকে কেবল তা নিশ্চিত করতে হয়েছিল যে সমস্ত অসীম লুপগুলি স্ট্যাকটি পূরণ করছে।

এই অজগর স্নিপেট ব্যবহার করে সমস্ত রূপ পরীক্ষা করা হয়েছিল:

code = 'e"ooooo7-c0pBhtra'
count = {"invalid":0, "underflow":0, "memory":0}
for l in range(1, len(code)):
    for x in range(0, len(code)-l+1):
        print(code[:x] + code[x+l:], "\t\t", end='')
        try:
            interp = Interpreter(code[:x]+code[x+l:])
            for _ in range(0,1000):
                interp.move()
            print(len(interp._stack), "< ", end='')
            interp2 = Interpreter(code[:x]+code[x+l:])
            for _ in range(0,2000):
                interp2.move()
            print(len(interp2._stack))
            count["memory"] += 1
        except Exception as e:
            print(e)
            if str(e) == "pop from empty list": count["underflow"] += 1
            else: count["invalid"] += 1
print(count) 
#don't judge me

> <<> এর স্রষ্টা কর্তৃক অফিশিয়াল ফিশ.পি ইন্টারপ্রেটারে (এর কিছুটা পরিবর্তিত সংস্করণ) যুক্ত হয়েছে । সম্ভাব্য 152 টি সাব-প্রোগ্রামগুলির মধ্যে 92 টি অবৈধ নির্দেশাবলীর দ্বারা ভুল হয়েছে, 18 টি স্ট্যাক আন্ডারফ্লো থেকে এবং 42 স্মৃতি থেকে দূরে রয়েছে।

মজার ঘটনা, এই প্রথম সংস্করণ e"ooooo6-c0pAhtraযে করা কমান্ড ব্যবহার করার জন্য একটি স্থান পরিচালিত খামখেয়াল উপ-প্রোগ্রাম একটি দম্পতি ছিল [যা স্ট্যাকের পরিষ্কার হবে অবৈধ নির্দেশ স্থানে, A। এছাড়াও, "পৃথিবী" এই পদ্ধতিগুলির সাথে কাজ করবে এমন একটি বাক্যাংশ, কারণ প্রথম অক্ষরটি eএকটি বৈধ নির্দেশনা ><>। অন্যথায় "কমান্ডটি প্রোগ্রামের সম্মুখভাগে স্থাপন করতে হবে এবং একটি বৈধ সাবপ্রোগ্রাম কেবল "নিজেই হতে পারে ।


8

রুবি, 34

eval(*[($>.write("world")-1).chr])

এটিতে কয়েকটি উপাদান রয়েছে:

eval(*[ এক্সট্রা হিস্ট্রোকের উত্তর]) থেকে ধার করা হয় , এবং এটি আধ্যাত্মিক পাশাপাশি এক্সপ্রেসের ফেরতের মান যাচাই করার জন্য এটি বৈধ রুবি প্রোগ্রাম যা ত্রুটি করে না। method(*arr)একটি রুবি সিনট্যাক্স যা আর্গুমেন্টের methodমানগুলির সাথে কল arrকরে। কারণ এটি কারণ এই এখানে প্রয়োজন হয় শুধুমাত্র একটি পদ্ধতি জন্য প্যারামিটার হিসেবে বৈধ, যাতে যদি evalস্থানান্তরিত, (*[expr])একটি বাক্য গঠন ত্রুটি। যদি এক্সট্রা সরানো হয়, evalপর্যাপ্ত যুক্তি না থাকার বিষয়ে অভিযোগ করে

$>.write("world")-1স্ট্রিং এবং বিয়োগফলের বাইরে ছাড়া ম্যাঙ্গেল করা যায় না। $>.write("world")stdout- এ "বিশ্ব" লিখেছেন এবং আয় লিখিত অক্ষরের সংখ্যা, তারপর 1. subtracts অতএব যদি প্রোগ্রাম আন-mangled মান ঠিক হবে 4 । যদি এটি ম্যাঙ্গেলড হয় (হয় -1সরানো হয় বা স্ট্রিংটি ছোট করা হয়) তবে এটি -1,0,1,2,3, বা 5 এর মধ্যে একটি ফেরত আসবে । অন্য কোনও ম্যাংলিংয়ের ফলে সিনট্যাক্স ত্রুটি হয়।

chrএকটি নাম্বারে কল করা সেই সংখ্যাটির দ্বারা বর্ণিত চরিত্রটি প্রদান করে। সুতরাং, উপরের উদাহরণের ফলাফলকে ডাকা হলে, এটি -1 এ ত্রুটি হয় এবং অন্যথায় একটি একক-অক্ষরযুক্ত স্ট্রিং প্রদান করে।

আমি কেন এটি সত্য তা নিশ্চিত নই, তবে মনে হয় রুবি \x04একটি সাদা বর্ণের চরিত্র হিসাবে ব্যাখ্যা করে , যার অর্থ এক্সপ্রেশনটি বৈধ (খালি রুবি প্রোগ্রামগুলি কিছুই করে না)। তবে অন্যান্য অক্ষরের ( \x00- \x03এবং \x05) কোনও ফলাফল হয় Invalid char '\x01' in expression। আমি প্রত্যাবর্তিত সংখ্যায় করতে পারি এমন সম্ভাব্য গণিতের উপরে কেবল পুনরাবৃত্তি করে এটি পেয়েছি। আগে আমি ব্যবহার করেছি

$>.write("planet
")*16

যেখানে "গ্রহ" প্লাস একটি নতুন লাইন ছিল 7 টি অক্ষর, 16 বারের জন্য 112 পেতে p, রুবিতে একমাত্র একক-বর্ণের ফাংশনটি ডিফল্টরূপে সংজ্ঞায়িত হয়। যখন কোনও যুক্তি দেওয়া হয় না, এটি কার্যকরভাবে কোনও অপ-বিকল্প হয়


সম্মানজনক উল্লেখ: $><<"%c"*5%%w(w o r l d)খুব কাছাকাছি তবে আদিম নয়। "%c"*5%কোনও ত্রুটিতে ফলাফল সরানো । মিনি-ব্যাখ্যা:

$>এটি স্টাডাউট, এবং <<এটির একটি ফাংশন বলা হচ্ছে। "%c"*5ফর্ম্যাট স্ট্রিং উত্পন্ন করে "%c%c%c%c%c", তারপরে %একটি অ্যারে দ্বারা ( ) বিন্যাস করার চেষ্টা করে: এটির %w(w o r l d)সংক্ষিপ্ত সংস্করণ ['w','o','r','l','d']। যদি অ্যারেতে খুব কম বা খুব বেশি উপাদান থাকে যে এটি ফর্ম্যাট স্ট্রিংয়ের সাথে মেলে না, একটি ত্রুটি নিক্ষেপ করা হয়। অ্যাকিলিস হিলটি হ'ল "%c"*5, এবং %w(w o r l d)উভয়ই স্বতন্ত্রভাবে বিদ্যমান থাকতে পারে এবং $><<কেবল উভয়েরই একটি যুক্তি প্রয়োজন। সুতরাং এই প্রোগ্রামটি অ-ত্রুটিযুক্ত চাচাত ভাইদের মধ্যে মঙ্গলের কয়েকটি ভিন্ন উপায় রয়েছে।


এটি ব্যবহার করে যাচাই করা হয়েছে:

s = 'eval(*[($>.write("world")-1).chr])'
puts s.size
(1...s.length).each do |len| #how much to remove
  (0...len).each do |i| #where to remove from
    to_test = s.dup
    to_test.slice!(i,len)
    begin #Feels so backwards; I want it to error and I'm sad when it works.
      eval(to_test)
      puts to_test
      puts "WORKED :("
      exit
    rescue SyntaxError
      #Have to have a separate rescue since syntax errors
      #are not in the same category as most other errors
      #in ruby, and so are not caught by default with 
      #a plain rescue
    rescue
      #this is good
    end
  end
end

হিস্ট্রোকের উত্তরের পংক্তির সাথে একটি ব্যাখ্যা সুন্দর হবে। দেখে মনে হচ্ছে আপনি একই বেসিক পদ্ধতির ব্যবহার করছেন তবে আমি রুবিকে জানি না, তাই আমি বিশদটি বুঝতে পারি না।
এইসুইটস ব্ল্যাকনট

@ThisSuitIsBlackNot আমার সেরাটা, এমন কিছু যা আপনি বুঝতে পারছেন না?
শেলভাকু

দুর্দান্ত ব্যাখ্যা, ধন্যবাদ!
এইসুইটিআইস ব্ল্যাকনট

6

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

for[]in{5:[]}[open(1,"w").write("world")]:a

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

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

সাবস্ট্রিং মোছার হাত থেকে রক্ষা করতে আমরা এর open(1,"w").writeপরিবর্তে ব্যবহার করি print। পাইথন 3-তে, writeলিখিত অক্ষরের সংখ্যা প্রদান করে, যা আমরা যাচাই করব তা 5নিশ্চিত করে স্ট্রিংয়ের কোনও অংশ মুছে ফেলা হয়নি। আমরা অভিধানে রিটার্ন মানটি অনুসন্ধান {5:[]}করে এবং ফলাফলটি for[]in…:aফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফিরে যাচ্ছি যদি আমরা একটি খালি পুনরাবৃত্তি না পেয়ে বা forবিবৃতি মুছে ফেলা হয় তবে তা ব্যর্থ হবে ।


4

জাভাস্ক্রিপ্ট (নোড.জেএস), 93 95 বাইট

if(l=arguments.callee.toString().length,l!=158)throw l;console.log("world");if(g=l!=158)throw g

এটির নিজের আকারটি দুবার পরীক্ষা করুন যাতে কোনও অক্ষর অনুপস্থিত থাকলে একটি ত্রুটি নিক্ষেপ করা হয়। দৈর্ঘ্য 156 কারণ নোড.জেএস function (exports, require, module, __filename, __dirname) {রানটাইমের কোডটিতে প্রিপেন্ড করে।

মার্টিন বাটনারকে একটি ত্রুটি নির্দেশ করার জন্য ধন্যবাদ। এখনই স্থির।


4

পার্ল 5.10+, 71 63 বাইট

(${open 0;@{\(read(0,$a,63)!=63?die:@_)};say"world"});{$a//die}

worldএকটি পেছনের নিউলাইন সহ প্রিন্ট করুন । এভাবে চালান:

perl -M5.010 file

এটি সোর্স কোডের বাইট গণনা উপর নির্ভর করে, সুতরাং fileঅবশ্যই উপরের কোডটি এবং অন্য কিছুই থাকতে হবে (কোনও শেবাং নেই, কোনও নতুন ট্র্যাকিং নেই)। পার্ল 5.10+ এর জন্য sayএবং সংজ্ঞায়িত-বা অপারেটরের প্রয়োজন //


পার্লের সাথে একটি প্রাথমিক প্রোগ্রাম করা অবিশ্বাস্যরকম কঠিন কারণ:

  • কোন bareword আইডেন্টিফায়ার (যেমন foo, a, _) এর সাথে একটি বৈধ বিবৃতি no strict 'subs';(ডিফল্ট)। এর অর্থ প্রোগ্রামটি কোনও চিঠি, সংখ্যা বা আন্ডারস্কোর দিয়ে শুরু বা শেষ হতে পারে না।

  • যেমন টক্রিস্ট ব্যাখ্যা করেছেন , "প্রতীকী ডেরিফারেন্সিংয়ের মাধ্যমে নির্দিষ্ট করা শনাক্তকারীদের নামগুলিতে কোনও বাধা নেই " " এর মানে হল এই প্রোগ্রাম sigils সাথে শুরু হতে পারে না $, @, %, অথবা *, কিন্তু প্রথম এবং শেষ অক্ষর সব সরানোর যেহেতু সবসময় একটি বৈধ পরিবর্তনশীল নাম ছেড়ে দিতেন।

  • অনেকগুলি অন্তর্নির্মিত ফাংশন (আউটপুট উত্পাদন করতে সক্ষম বেশিরভাগ ফাংশন সহ) $_ডিফল্টরূপে কাজ করে , তাই আপনি আর্গুমেন্টটি (যেমন say"world"বনাম say) সরিয়ে ফেললেও কলগুলি প্রায়শই কাজ করবে ।

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

এই সমাধানটি নওকের নোড.জেএস উত্তর দ্বারা অনুপ্রাণিত হয়েছিল , যা অক্ষর অপসারণ করা হয়নি তা নিশ্চিত করার জন্য এটি তার নিজস্ব দৈর্ঘ্য পরীক্ষা করে।

প্রোগ্রামটির দুটি বিভাগ রয়েছে, একটি বন্ধনীতে এবং অন্যটি একটি ব্লকের ভিতরে:

(...);{...}

প্রথম বিভাগটি উত্স ফাইলটি পড়ে এবং 63৩ টি অক্ষরের চেয়ে কম দীর্ঘ হলে মারা যায়। দ্বিতীয় বিভাগটি readসফলভাবে সম্পাদিত হয়েছে তা পরীক্ষা করে । যদি উভয় বিভাগ অপসারণ করা হয় (ঘের বন্ধনী বা কোঁকড়া ধনুর্বন্ধনী সহ বা এর বাইরে), অন্য বিভাগটি একটি ব্যতিক্রম ছুঁড়ে দেবে।

প্রোগ্রামের মাঝের বা বাম বা ডান দিকটি সরিয়ে ফেললে প্যারেন্টেসিস এবং / বা কোঁকড়া ধনুর্বন্ধনী ভারসাম্যহীন হবে, যা সিন্ট্যাক্স ত্রুটির কারণ হবে।

প্রথম এমন dieপরিবর্তন করা হয় (থেকে d, e, di, de, অথবা ie, যা সকল বৈধ শনাক্তকারী হয়), দৈর্ঘ্য চেক হয়ে:

@{\(read(0,$a,63)!=63?di:@_)};

যা মূল্যায়ন করে:

@{\'di'};

এটি একটি স্ট্রিংয়ের জন্য একটি রেফারেন্স নেয় এবং এটিকে হিসাবে অ্যারে হিসাবে অবহিত করার চেষ্টা করে, একটি ত্রুটি তৈরি করে:

Not an ARRAY reference

যদি অন্য কোনও বিবৃতি পরিবর্তন করা হয় তবে দৈর্ঘ্যের চেক ব্যর্থ হবে এবং প্রোগ্রামটি মারা যাবে।


নিম্নলিখিত প্রোগ্রামের সাথে মূল যাচাই করা হয়েছে:

#!/usr/bin/perl

use strict;
use warnings;
use 5.010;

use File::Temp;
use List::MoreUtils qw(uniq);

sub delete_substr {
    my ($str, $offset, $len) = @_;

    my $tmp = $str;
    substr($tmp, $offset, $len) = '';

    return $tmp;
}

sub generate_subprograms {
    my ($source) = @_;

    my $tot_len = length $source;
    my @subprograms;                                             

    foreach my $len (1 .. $tot_len - 1) { 
        foreach my $offset (0 .. $tot_len - $len) {
            push @subprograms, delete_substr($source, $offset, $len);
        }                                                        
    }                                                            

    return uniq @subprograms;                                    
}                                                                

chomp(my $source = <DATA>);                                                                                                       
my $temp = File::Temp->new;                                                                                        

foreach my $subprogram ( generate_subprograms($source) ) {       
    print $temp $subprogram;

    my $ret = system(qq{/usr/bin/perl -M5.010 $temp > /dev/null 2>&1});
    say($subprogram), last if $ret == 0;

    truncate $temp, 0;
    seek $temp, 0, 0;
}

__DATA__
(${open 0;@{\(read(0,$a,63)!=63?die:@_)};say"world"});{$a//die}

4

রুবি + কোর্টিলস, 33 27 26 বাইট

`base#{$>.write"world
"}4`

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

রুবিতে ব্যাকটিকগুলি তাদের ভিতরে কমান্ড কার্যকর করে এবং প্রোগ্রামটি স্ট্রিং হিসাবে STDOUT এ যা কিছু দেয় তা ফিরিয়ে দেয়। #{expr}সিনট্যাক্স স্ট্রিং এবং ব্যাকটিক মধ্যে অভিব্যক্তির এম্বেডিং পারেন। এই প্রোগ্রামটি পুনরায় লিখিত হতে পারে (অ-আদিমভাবে):

system("base" + (STDOUT.write("world\n")).to_s + "4")

IO#writeলিখিত বাইটের সংখ্যা প্রদান করে, তাই যদি স্ট্রিংটি ছোট করা হয় তবে এটি সঠিক সংখ্যা হবে না। #{}এম্বেড করা স্বয়ংক্রিয়ভাবে নম্বরটিকে একটি স্ট্রিংয়ে পরিণত করে। যদি কিছু অংশ অপসারণ করা হয়, এবং এর ফলে সিনট্যাক্স ত্রুটি হয় না, তবে ভুল আদেশটি চালানো হবে। অংশ যদি "world"এক চেয়ে মুছে ফেলা হবে base04মাধ্যমে base54চালানোর চেষ্টা করবে।

নিউলাইন, স্ট্রিংয়ের বাইরে বা বাইরে, প্রয়োজনীয়। অন্যথায় প্রথম 5 টি অক্ষর ( `base) মুছে ফেলা যায়, পুরো লাইনটিকে একটি মন্তব্য করে। এছাড়াও প্রথম ব্যাকটিকের মধ্যে অবশ্যই এক বা একাধিক অক্ষর থাকতে হবে এবং #অন্যথায় {পুরো জিনিসটিকে শেল মন্তব্য করার জন্য মুছে ফেলা যেতে পারে ।


exec(*[(s="ec%co earth")%s[10]])

execসুনির্দিষ্ট কমান্ডের সাথে বর্তমান রুবি প্রক্রিয়াটি প্রতিস্থাপন করে। সিনট্যাক্সের ব্যাখ্যা এবং এর ঘনত্বের জন্য আমার অন্য উত্তরটি দেখুন meth(*[])

(s="ec%co earth")"ec% co আর্থ" স্ট্রিংটি ভেরিয়েবলের জন্য বরাদ্দ করে s। অ্যাসাইনমেন্টগুলি যা নির্ধারিত হয়েছিল তা ফেরত দেয়, সুতরাং স্ট্রিংটিও ফিরে আসে।

"format string %d" % 5সিনট্যাকটিক চিনির জন্য sprintf("format string %d",5), তবে এর চারপাশের স্পেসগুলি %নেকসেসরি নয়।

s[10]সূচক 10-এ স্ট্রিং-এ অক্ষরটি পেয়ে যায় যখন আন-মাংলড হয়, তখন এই অক্ষরটি "h", স্ট্রিংয়ের শেষ অক্ষর। তবে স্ট্রিংয়ের কোনও অক্ষর অপসারণের অর্থ স্ট্রিংটি ছোট হয়, সুতরাং 10 সূচীতে কোনও অক্ষর নেই, তাইs[10] ফিরে আসে nilএবং "%c" % nilত্রুটির কারণ হয়।

যদি %s[10] সরানো হয়, তবে রুবি কমান্ডটি চালানোর চেষ্টা ec%co earthকরে যা কাজ করে না।

পরিবর্তন 10করা 1বা 0অজানা কমান্ডের ফলাফল হয় (হয় eceoবা হয় ecco)। এটিকে পুরোপুরি সরিয়ে ফেলা প্রযুক্তিগতভাবে কোনও সিনট্যাক্স ত্রুটি নয় কারণ এটি পদ্ধতিটি কল করে#[] স্ট্রিংয়ের তবে এটি পর্যাপ্ত যুক্তি না থাকার বিষয়ে অভিযোগ করে।


এটিকে সাধারণভাবে সমাধান করার জন্য একটি নোট: আপনার অবশ্যই কিছু মোড়ক থাকতে হবে যা আধ্যাত্মিক অর্থে কোডটি অভ্যন্তরীণভাবে যাচাইয়ের সময় যাচাই করে। উদাহরণস্বরূপ, বিভাগ ( blablabla/somevar) শেষে একটি প্রোগ্রাম কখনই কাজ করবে না কারণ একটি বিভাগ সর্বদা অপসারণ করা যেতে পারে ( blablabla)। এগুলি আমি এখনও অবধি ব্যবহার করেছি এমন কিছু র‍্যাপার:

  • eval(*[])হিস্টোক্র্যাট এবং আমার প্রথম উত্তরে ব্যবহৃত কোড । যাচাই করে যে আউটপুটটি একটি বৈধ রুবি প্রোগ্রাম
  • exec(*[])উপরের কোড ব্যবহার করা হয়েছে, যাচাই করে যে প্রতিক্রিয়াটি একটি বৈধ কমান্ড
  • `#{ কোড }`

ব্যাকটিক সিনট্যাক্সটি একটি কমান্ডও চালায় (এবং এরপরে এটি বৈধ একটি যাচাই করে) তবে STDOUT প্যারেন্ট প্রসেস হিসাবে আউটপুট না হয়ে স্ট্রিং হিসাবে ধরা পড়ে '(রুবির) STDOUT। এ কারণে আমি এই উত্তরের জন্য এটি ব্যবহার করতে সক্ষম হইনি, সম্পাদনা: আমি এটি কাজ করেছিলাম। সীমাবদ্ধতা উপরে বর্ণিত।

সম্পাদনা করুন: কিছু ত্রুটিগুলি নির্দেশ করার জন্য @ ইতিহাসবিদকে ধন্যবাদ


শীতল পদ্ধতির! আপনি (এবং অতএব অবশ্যই) writeস্ট্রিংয়ের শুরু এবং শুরুর মধ্যবর্তী স্থানটি সরিয়ে ফেলতে পারেন , তবে আমি মনে করি না এটি আধ্যাত্মিকতা প্রভাবিত করে। এছাড়াও, আমার মেশিনে base64ইনপুটটির জন্য অপেক্ষা করতে হবে, যা নিয়মের বিরুদ্ধে হতে পারে।
হিস্টোক্র্যাট

@ ইতিহাসবিদ বাহ, আমি অবাক হয়েছি যে $>.write"world"কাজ করে, ধন্যবাদ! বেস 64 হিসাবে ইনপুটটির জন্য অপেক্ষা করা হচ্ছে, এটি সিস্টেমের দ্বারা পৃথক বলে মনে হচ্ছে। টিআইও ভাল কাজ করে। এটি এটি নিয়মগুলি অনুসরণ করে কিনা তা আরও ঝাপসা করে তোলে।
শেলভাকু

3

পাওয়ারশেল, (প্রোগ্রামের নামের জন্য 97 বাইট + 5) = 102 বাইট

"$(try{if(($a=(gc .\c.ps1).Length)-eq97){"world";a}}catch{if($a-ne97){a}$error.clear();exit}a)";a

এটি নিজেই ... দু'বার নষ্ট হওয়ার আগে তা পরীক্ষা করে।

c.ps1স্থানীয় ডিরেক্টরি থেকে যেমন সংরক্ষণ এবং সম্পাদিত হবে বলে আশা করে :
PS C:\Tools\Scripts\Golfing\> .\c.ps1

উপনামটি gcসংক্ষিপ্ত Get-Contentএবং catএকটি ফাইল পড়ার সাথে সমান-ইশ (এই ক্ষেত্রে, আমাদের মৃত্যুদন্ডের পথ .\c.ps1)। আমরা .Lengthফাইলটি পাই , এটি সেট করি $aএবং এটি 97 এর সমান নয় কিনা তা পরীক্ষা করে দেখি -eq97। যদি এটি সমান হয় (যেমন, প্রোগ্রামটি পরিবর্তন করা হয়নি) তবে আমরা মুদ্রণ করব "world"এবং অবৈধ কমান্ড কার্যকর করি a। এটি catchকার্যকর করতে বাধ্য করে, যা আমাদের নিজেদের আবার পরীক্ষা করতে দেয়। এবার, যদি আমাদের কোড 97৯ এর সমান না হয়, আমরা একটি অবৈধ কমান্ড নিক্ষেপ করি যাতে আমাদের প্রোগ্রামটি আউটপুটে ত্রুটিযুক্ত পাঠ্যকে ভুল করে ফেলেছে। আমরা তখন clear()ত্রুটি এবংexit সাধারণত।

এটা সুস্পষ্ট যে উভয় ifবিবৃতিতে হস্তক্ষেপ করা হলে অন্যটির একটি ত্রুটি ঘটবে। যদি কোনও অংশের "world";সাথে छेলা করা হয় তবে প্রথমটি ifত্রুটির কারণ ঘটবে। যেহেতু এটি নিয়মিত হতে হবে, তাই আমরা উভয় ifবিবৃতি সরাতে পারি না । মাঝের স্ট্রিংগুলির সাথে মিলহীন বন্ধনী তৈরি হবে, বা দ্বিতীয়টি {a}কার্যকর করা হবে। try/ catchপ্রথম থেকে ত্রুটি ধরা হয় ifবিবৃতি তাই আমরা সঠিকভাবে পরিষ্কার করতে পারেন এটা। বাইরের "$( )"উভয় প্রান্তটি টুকরো টুকরো করা থেকে আটকাবে। চূড়ান্তটি ;aহ'ল মাঝের অংশগুলি স্নিপড হওয়া থেকে রোধ করা "it}a)";aযা বৈধ প্রোগ্রামগুলির ফলাফল করবে (যেমন , যা মুদ্রণ করবে)it}a) এবং তারপরে ত্রুটি হবে) এর ।

বেশ কয়েকটি বিশেষ পরিস্থিতি রয়েছে:

  • যদি gc, gc<space>বাgc .\ অপসারণ করা হয়, প্রোগ্রামটি শেষ পর্যন্ত মেমরির ত্রুটি থেকে বেরিয়ে আসা কিছু স্বাদে বারবার ত্রুটিযুক্ত হয়ে উঠবে (বারবার স্ব-প্রয়োগের কলগুলির কারণে) এবং শেলটি ক্র্যাশ করে (এবং সম্ভবত কম্পিউটার)। পরীক্ষিত না.
  • যদি <space>.\c.ps1বা .\c.ps1অপসারণ করা হয়, প্রোগ্রামটি বন্ধ হয়ে যাবে এবং ব্যবহারকারীর ইনপুটটির জন্য অনুরোধ জানাবে। ব্যবহারকারী কী প্রবেশ করান তা বিবেচনাধীন, প্রোগ্রামটি এখনও ত্রুটি করবে কারণ আকারের গণনাগুলি ভুল হবে।
  • যদি কোনও স্ট্রিং $শেষ হতে শুরু করে এবং শেষটি "স্নিপ করার আগে শেষ হয় তবে প্রোগ্রামটি যা কিছু অবশিষ্ট থাকে তা আউটপুট দেয় এবং তারপরে ত্রুটি কারণ aবৈধ নয়।

নিম্নলিখিতগুলির সাথে যাচাইকৃত:

$x='"$(try{if(($a=(gc .\c.ps1).Length)-eq97){"world";a}}catch{if($a-ne97){a}$error.clear();exit}a)";a'
$yy='"$(try{if(($a=( .\c.ps1).Length)-eq97){"world";a}}catch{if($a-ne97){a}$error.clear();exit}a)";a'
$yyy='"$(try{if(($a=(.\c.ps1).Length)-eq97){"world";a}}catch{if($a-ne97){a}$error.clear();exit}a)";a'
$yyyy='"$(try{if(($a=(c.ps1).Length)-eq97){"world";a}}catch{if($a-ne97){a}$error.clear();exit}a)";a'

for($i=1;$i-lt$x.Length;$i++){
  for($j=0;$j-lt($x.Length-$i);$j++){
    $y=($x[0..$j]+$x[($i+$j+1)..$x.Length])-join''
    $y>.\c.ps1
    $error.clear()
    if(!($y-in($yy,$yyy,$yyyy))){try{.\c.ps1}catch{};if(!($error)){exit}}
    $q++;
    write-host -n "."
    if(!($q%150)){""}
  }
}
"No success."

(মার্টিনকে তার ব্যাপক সহায়তার জন্য ধন্যবাদ!)


3

সি (জিসিসি) (লিনাক্স, -Werror=undef), 66 বাইট

main(a){a
=
1
/
(puts("world")/
6);
#if(7^__LINE__)
#else
}
#endif

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

দুর্দান্ত চ্যালেঞ্জ! এটি ছদ্মবেশী শক্ত ছিল, তবে আমি নিশ্চিত যে আমার এখন একটি বৈধ প্রোগ্রাম আছে!

প্রিপ্রসেসর কমান্ড ব্যবহার করে যাতে কোনও নতুনলাইন সরানো যায় না, যেহেতু বন্ধ করার বন্ধনীটি mainকেবল তখন অন্তর্ভুক্ত থাকে __LINE__==6। এটি আপনাকে mainপুরোপুরি পরিষ্কার করা থেকে বাঁচায়, যেহেতু সেই পাতাগুলি #endifভাসমান (তাই এটি #endifবাইরে যা গুরুত্বপূর্ণ এটি main)।

আমি ব্যবহার #elseকরেছি কারণ আমি মোটামুটিভাবে নিশ্চিত হয়েছি যে এর কোনও সংস্করণই __LINE__==6সাবস্ট্রিং অপসারণ করতে পারে না এবং এখনও সত্য হতে পারে, যেহেতু 6এবং উভয়ই __LINE__সত্যবাদী। এটি -Werror=undefএমনটি ব্যবহার করে যাতে পছন্দ মতো কিছু #ifdef(LINE__)মিথ্যা হিসাবে মূল্যায়ন না করে তবে এটি একটি ত্রুটি।

জিসিসি সহ (লিনাক্সে, কমপক্ষে) putsমুদ্রিত অক্ষরের সংখ্যা প্রদান করে (পিছনের নিউলাইন সহ), সুতরাং স্ট্রিংয়ের কোনও অংশ অপসারণ করলে puts("...")/6ফেরত আসে 0, যাতে 1/0ভাসমান পয়েন্ট ব্যতিক্রম ঘটায়। মনে রাখবেন যে কোনও 1/0কিছু বরাদ্দ না করা পর্যন্ত এই ব্যতিক্রম ঘটায় না , সুতরাং a=এটির প্রয়োজনীয়।

কোনও ত্রুটি তৈরি না করে কোনও লাইনের অন্য কোনও অংশ অপসারণ করা যায় না, সাধারণত একটি সিনট্যাক্স ত্রুটি বা লিঙ্কিং ত্রুটি।

বোনাস হিসাবে এটি সি ++ এর জন্য একটি 86 টি বাইট সমাধান দেয় খুব তুচ্ছভাবে, কেবল যুক্ত করুন #include <cstdio>এবং এটি aহিসাবে ঘোষণা করুন intএটি অনলাইন চেষ্টা করুন! (C ++) গুলির


আমার ভুল না হলে আপনি 1/নিউলাইনটি রেখে যাওয়ার সময় সরিয়ে ফেলতে পারেন এবং এটি এখনও চলবে
গ্যাস্ট্রোপনার

@Gastropner ঠিক আছে আপনি 1আমি বিশ্বাস করি পূর্ববর্তী লাইনে ছিল।
ক্রিস

দুঃখের বিষয়, একই জিনিস ধরে। তারপরে আপনি মুছে ফেলতে পারেন =1। আমি মনে করি আপনার নিজের 1 টি একটি লাইনে লাগানো দরকার।
গ্যাস্ট্রোপনার

@ গ্যাস্ট্রোপনার আমি মনে করি আপনি ঠিক বলেছেন। আমি আরও পরে দেখতে হবে। ধন্যবাদ!
ক্রিস

2

পিএইচপি, 73 বাইট

<?=call_user_func(($p='ns')|(($f="u{$p}erialize"))?$f:'','s:5:"world"');

Explination

আমি ডিফল্ট php.ini কনফিগারেশন ধরে নিই। সুতরাং শর্ট_ট্যাগগুলি অক্ষম। এর অর্থ আপনি =খোলার ট্যাগ থেকে মুছে ফেলতে পারবেন না ।

এই মূলত <?=unserialize('s:5:"world"');

সিরিয়ালযুক্ত স্ট্রিংয়ের কোনও অংশ সরিয়ে ফেললে আপনি একটি ত্রুটি পাবেন।

আপনি কেবল সরাতে পারেন unserializeএবং স্ক্রিপ্টটি কেবল সিরিয়ালযুক্ত স্ট্রিংটিকে আউটপুট দেবে। এটি কাটিয়ে উঠতে আমি ব্যবহার করি call_user_func। প্যারামগুলির মধ্যে একটি অপসারণের ফলে ত্রুটি হবে।

'<?=call_user_func('unserialize','s:5:"world"');

তবে আপনি মুছে ফেলতে পারেন un, serializeফাংশন কল করতে । সুতরাং আমরা 'এনএস` আউট। কোনও অক্ষর মুছে ফেলার ফলে কোনও ভুল ফাংশন নাম আসবে না।

<?=call_user_func(($p='ns')&&($f="u{$p}erialize")?$f:'','s:5:"world"');

আউটপুট ট্যাগের সাথে ভেরিয়েবল অ্যাসাইনমেন্ট ব্যবহার করার জন্য আমরা একটি ইনলাইন ব্যবহার করব। পরিবর্তে &&আমরা '|' ব্যবহার করি একটি একক &অপসারণ বা $fনিয়োগ অপসারণ প্রতিরোধ

আপনি অপসারণ ='ns')&&($f="u{$p}erialize"এবং শেষ করতে পারে ($p)?$f:''। এর জন্য আমি চারপাশে অতিরিক্ত প্রথম বন্ধনী যুক্ত করেছি $f="u{$p}erialize"

বিঃদ্রঃ

প্রযুক্তিগতভাবে আপনি ত্রুটি তৈরি না করেই খোলার ট্যাগগুলি মুছে ফেলতে পারেন। এটি অবশ্য পিএইচপি স্ক্রিপ্ট নয় তবে কেবল একটি সরল পাঠ্য ফাইল।


2
আপনার শেষ নোট সম্পর্কে, সরল পাঠ্য ফাইলটি এখনও একটি বৈধ পিএইচপি প্রোগ্রাম হতে পারে, তাই না? সুতরাং আমি নিশ্চিত যে এটি বৈধ কিনা is
ক্যালভিনের শখ

এটি আর পিএইচপি নয়, বরং প্লেইন টেক্সট / এইচটিএমএল, এইভাবে আর কোনও বৈধ-পিএইচপি-প্রোগ্রাম নয়
মার্টিজন

1

মতলব (77)

bsxfun(@(c,b)arrayfun(@(x)getfield(c,{x}),conv(b,ismember(4,b))),'world',1:5)

এটি চেষ্টা করুন

বিঃদ্রঃ:

সিপিআর বা অন্য কোনও কিছুর নকশা করার বিষয়ে অপ্টিমাইজারের পরামর্শ অনুসরণ করে, আমি অপ্রত্যাশিত সাবস্ট্রিংয়ের মুখোমুখি হয়েছি যা অপসারণের সময় কোনও সংকলনের ত্রুটি সৃষ্টি করে নি, উদাহরণস্বরূপ: arrayfun(@(x)a(x),prod(b,ismember(4,1:5))),এই পূর্ববর্তী সম্পাদনাটি সরিয়ে ফেললে feval(@(a)arrayfun(@(x)a(x),prod(b,ismember(4,1:5))),'world')কোনও ত্রুটি উত্পন্ন হয় না! এছাড়াও, সাম্প্রতিক একই সংস্করণের জন্য, সেখানে ছিল bsxfun(@(a,b)arrayfun(@(x)(x),prod(b,ismember(4,b))),'world',1:5)এবং bsxfun(@(a,b)a,'world',1:5), আপনি যদি আমার আউটপুট কনসোলে তাদের খুঁজে বের করার সময় আমি কেমন ছিল সে সম্পর্কে জিজ্ঞাসা করলে, আমি শিশুর মতো চিৎকার করেছিলাম, সুতরাং এখানে প্রোগ্রামটি দেওয়া হল:

b=0;string='bsxfun(@(c,b)arrayfun(@(x)getfield(c,{x}),conv(b,ismember(4,b))),''world'',1:5)'
for u=1:numel(string),for j=u:numel(string)-2,try a=eval([string(1:u) string(j+2:end)]);catch(b); a=0;end; if a~=0, ['here is it : ' string(1:u) string(j+2:end)],end;end;end

একটি নন-প্রিন্টিন প্রোগ্রামের একটি উদাহরণ

সম্পাদনা:

আমার আগের কোডগুলি (ত্রুটিগুলি না করে) নির্দেশ করার জন্য @ মার্টিনের পাশে সবাইকে ধন্যবাদ।


1

স্মাইলব্যাসিক, 63 বাইট tes

REPEAT
A=1/(PRGSIZE(0,1)==63)?"world
UNTIL 1/(PRGSIZE(0,1)==63)

1

একটি পিয়ার ট্রি , 17 বাইট

এই প্রোগ্রামটিতে উচ্চ বিট সেট সহ বাইট রয়েছে (যা বৈধ ইউটিএফ -8 নয় এবং এটি xxdটিআইওতে পোস্ট করা যায় না), সুতরাং এখানে একটি বিপরীত হেক্সডাম্প রয়েছে:

00000000: 7072 696e 7427 776f 726c 6427 23cd 4290  print'world'#.B.
00000010: bf                                       .

ব্যাখ্যা

এটি কেবল print'world'একটি চেকসাম সংযোজন সহ। আমি নিষ্ঠুর বল দ্বারা যাচাই করেছি যে সম্ভাব্য মুছে ফেলার কোনওটিই একটি বৈধ চেকসাম সহ একটি প্রোগ্রাম দেয় না, যাতে কোনও সম্ভাব্য মুছে ফেলার পরে আপনি ত্রুটি পান।

মোটামুটি বিরক্তিকর, তবে বর্তমান নেতার সাথে সম্পর্ক রয়েছে, তাই আমি অনুভব করেছি যে এটি পোস্ট করা উপযুক্ত।

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