আমরা কী ভুলে গেছি?


31

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

উদাহরণস্বরূপ যদি আমাদের প্রোগ্রাম ছিল

aabacba

তারপর bcbআউটপুট হবে a, aaacaআউটপুট করতে হবে bএবং aababaআউটপুট wouldc

অযৌক্তিক প্রোগ্রামটি কী তা বিবেচনা করে না।

বাইট সংখ্যা কমিয়ে আনার লক্ষ্যে উত্তর দিয়ে বাইট করা হবে।


4
যেহেতু এই চ্যালেঞ্জটি কুইন ট্যাগ করা হয়নি, তাই আমরা কি আমাদের নিজস্ব উত্স কোডটি পড়তে পারি?
ডেনিস

1
@ ডেনিস শিওর আমার অতিথি হন
গম উইজার্ড

2
যদি আমাদের প্রোগ্রামের সমস্ত বাইটগুলি অঙ্কগুলি উপস্থাপন করে, আমরা কি প্রস্থান কোডের মাধ্যমে আউটপুট দিতে পারি?
মিঃ এক্সকোডার

15
আমি মনে করি এটি কোড চ্যালেঞ্জ হিসাবে আরও ভাল হবে যেখানে আপনাকে ব্যবহৃত বিযুক্ত অক্ষরের সংখ্যা সর্বাধিক করতে হবে।
নোটস 90

2
খালি নয়-এর পরিবর্তে 1 বাইটের বেশি নির্দিষ্ট করা উচিত : পি। বা কি নটস 90 বলেছেন।
যাদু অক্টোপাস n

উত্তর:


70

zsh, 603 594 566 561 548 440 415 399 378 370 বাইট

ec
ho \\n;ca t<<<$'\x20';exi t
d$c -e8BC6P
d0c -eKp
$'\172\163\150' $'\055\143' $'\146\157\162 v \151\156 \173\043\056\056\134\175\175\073\173 \146\147\162\145\160 \055\161 $\166 '$0$'\174\174\074\074\074$\166\073\175'
$'\145v\141\154' $':\073\072\046\046\145\170\151\164';#%&()*+,/9=>?@ADEFGHIJLMNOQRSTUVWXYZ[]^_`jklmsuwy
0# $#;for b in {$..z};{ fgrep -q $b $0||<<<$b;}

কোর্টিলগুলি + এর উপর নির্ভর করে dc

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

এটা ছিল ... একটি যাত্রা।

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

প্রথম অংশটির দিকে তাকিয়ে আমরা প্রথমে পরিচালনা করি

  • সাথে নিউলাইন অপসারণ ec\nho \\n
  • স্থান অপসারণ ca t<<<$'\x20'( exi tপরবর্তী কোড চালানো এড়ানোর জন্য অনুসরণ করা হবে, যার ফলে বহিরাগত আউটপুট হবে)
  • $d$c -e8BC6P( 8BC6= 9226হয়) দিয়ে অপসারণ36*256 + 10 , এবং 36 এবং 10 $যথাক্রমে এবং নিউলাইন অক্ষরের বাইট মান ; আমরা line লাইনে বৃহত্তর মন্তব্যে অন্তর্ভুক্ত না করার জন্য দশমিকায় হেক্স সংখ্যা ব্যবহার করি)
  • 0অপসারণ d0c -eKp( Kদশমিক যথার্থতা পায় যা হয়)0 পূর্বনির্ধারিত হয়)

পরবর্তী অংশে, ব্যবহৃত একমাত্র অক্ষর (দ্বিতীয় লাইনের শেষে আবর্জনা বাদে) $'\01234567v;, স্থান এবং নতুন লাইন। এর মধ্যে চারটির জন্য হিসাব করা হয়েছে, সুতরাং বাকি ( '\1234567v) শেষ লাইনে ঘটতে পারে না। অষ্টাল পলায়নের সম্প্রসারণ ( $'\123'123 8 মান সহ ASCII চরিত্রের প্রতিনিধিত্ব করে ), আমরা পাই:

zsh -c 'for v in {#..\}};{ fgrep -q $v '$0'||<<<$v;}'
eval ':;:&&exit'

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

দ্বিতীয় লাইনটি কিছুটা অদ্ভুত দেখাচ্ছে এবং exitএকসাথে কিছুটা নোপসের মতো একই জিনিসটি প্রদর্শিত হবে । তবে, অষ্টাল exitহিসাবে এনকোডিংয়ের ফলে সরাসরি ফলাফল হয় $'\145\170\151\164'যা এতে থাকে না 2বা থাকে না 3। আমাদের এটি অপসারণে আরও কম স্থিতিস্থাপক করা প্রয়োজন । এটি কারণ যদি কোনও '\014567vঅপসারণ করা হয়, প্রথম লাইনটি ভঙ্গ করে, দ্বিতীয় লাইনটিও ভেঙে যায়, কোডটির বাকী অংশগুলি কার্যকর করতে দেয়। তবে, আমাদের এটিও ভেঙে ফেলতে হবে 2বা 3সরানো হয়েছে যাতে 3 এবং 4 লাইন চলতে পারে। এই shoehorning দ্বারা সম্পন্ন হয় :এবং; যার আক্ষরিক উপস্থাপনে যথাক্রমে 2 এবং 3 থাকে।

লাইন 2 এর শেষের জাঙ্কটি কেবল প্রতিটি মুদ্রণযোগ্য ASCII চরিত্রটি অন্তত একবার উপস্থিত হওয়ার বিষয়টি নিশ্চিত করার জন্য রয়েছে, যেহেতু প্রতিটিটির মধ্য দিয়ে লুপিং করে চেকিং করা হচ্ছে এটির জন্য এটি প্রয়োজন।

যদি exitপ্রথম বিভাগে না ডাকা হয় (যেমন এটির একটি অপসারণের ফলে এটি ম্যাঙ্গেল হয়েছিল '\01234567v), আমরা দ্বিতীয় দিকে এগিয়ে যাই, যাতে আমাদের এই অক্ষরগুলির কোনওটি ব্যবহার না করেই একই জিনিসটি সম্পাদন করতে হবে। শেষ লাইনটি ডিকোড করা প্রথম লাইনের মতো, আমরা কয়েকটি বাইট সংরক্ষণের জন্য লুপের সীমাটি চুক্তি করতে পারি, কারণ আমরা ইতিমধ্যে জানি যে ব্যতীত সমস্ত অক্ষর '\01234567vcoveredেকে দেওয়া হয়েছে। এটির 0# $#আগে এটিও রয়েছে , যা এটিকে মন্তব্য করে এবং অপসারিত আউটপুট উত্পাদন করা 0বা $অপসারণ করা হলে বাধা দেয় ।


5
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
Kevin Cruijssen

3
@KevinCruijssen here you go :)
Doorknob

1
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
Magic Octopus Urn

3
The only interesting answer so far.
htmlcoderexe

21

Retina, 1 byte

1

Try it online!

When all instances of the single byte (1) are removed, the output is 1. Simple enough.


6
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
JayCe

IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.

@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs 1 for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.
Conor O'Brien

11

Lenguage, 216173027061157310 bytes

216173027061157310 = (144115617572598740 + 144115241762960340 + 144115194786755540) / 2. There are 216173027061157310 - 144115617572598740 $s, 216173027061157310 - 144115241762960340 #s and 216173027061157310 - 144115194786755540 spaces.

The 144115617572598740 #s and spaces encode the following BF program:

++++++[>++++++<-]>.

Try it online!

The 144115241762960340 $s and spaces encode the following BF program:

+++++++[>+++++<-]>.

Try it online!

The 144115194786755540 $s and #s encode the following BF program:

++++++++[>++++<-]>.

Try it online!

Edit: Saved 72057832274401770 bytes thanks to @Nitrodon.


Why not use U and byte 127? Try it online! Or even just the nul byte and soh?
Jo King

@JoKing I didn't know that U was the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.
Neil

Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
Nitrodon

7
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
Mr Lister


9

Polyglot*, 1 byte (awaiting confirmation)

0

Try it online! (using Triangularity)

*: This works in a (rather wide) variety of languages (except for esolangs like 4, ><> and the like and some other exceptions). Identical to the Jelly answer in source code, but the method of I/O is different – Output is via exit code. When one removes 0 from the source code, they're left with an empty program, which often doesn't error and yields exit code 0 in the majority of languages.



3

Unary (non-competitive), 96 bytes

00000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000050: 0000 0000 0101 0101 0101 0101 0101 0101  ................

Here is xxd dump.

A wider definition of Unary language allows any characters in its source code. But I havn't find a compiler or interpreter which would work for this. So I marked this answer as non-competitive. If you can find one which posted before this question asked, I will link to it.


4
This is the smallest Unary program I've ever seen.
Draco18s
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.