মিরর কুইন (বা আমার মাথা ব্যথা করে)


32

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

বিপরীত কুইন চ্যালেঞ্জ থেকে সমস্ত নিয়ম এবং স্কোরিং প্রয়োগ হয়, সুতরাং এই প্রশ্নের সমস্ত উত্তর যে একটির উত্তর দেবে (তবে স্কোরও নয়))

সম্পাদনা:

অনুরোধ করে, সমস্ত নিয়ম এখানে অনুলিপি করা হয়েছে।

নিয়মাবলী:

  • একটি প্রোগ্রাম পি লিখুন যা এক্সিকিউট করা হয় আউটপুট পি উত্পাদন করে যেখানে 'পি' পি পিছনের দিকে এবং পি 'এক্সিকিউট করা হলে পি উত্পাদন করে।
  • অন্যান্য ফাইল ব্যবহার করে না (যেমন reverse.txt)
  • সর্বনিম্ন কোড দৈর্ঘ্য দুটি অক্ষর।
  • আপনার প্রোগ্রামটি প্যালিনড্রোম হতে পারে না।

স্কোরিং:

  • আপনি যদি ইন্টারনেট থেকে টানা ডেটা ব্যবহার করেন তবে +50।
  • আপনি যদি নিজের উত্স কোডটি পড়ে থাকেন তবে +25।
  • অক্ষর প্রতি +1 পয়েন্ট।
  • সর্বনিম্ন স্কোর জয়।

eval(eval(eval(eval(eval(eval(eval(eval(eval(p)))))))))
অ্যান্ড্রু লারসন

আমি কেবল বলছি যে আপনি [...] এর আউটপুট নির্বাহ করার আউটপুট কার্যকর করার আউটপুট কার্যকর করতে সক্ষম হবেন [...] পি এর আউটপুট (পিছনের কুইন ব্যতীত অন্য কোনও কুইনের মতো)।
অ্যান্ড্রু লারসন

@ অ্যান্ড্রুলারসন প্রকৃতপক্ষে যদিও আমি পি তৈরির ধারণার প্রমাণটি সি এবং পি'তে পার্লে লেখা হবে।
hildred

ওহ, এটা দুর্দান্ত হবে!
অ্যান্ড্রু লারসন

1
হ্যাঁ, দেখেছি খুব দেরি হয়েছে। নকল নয়।
জোহানেস কুহেন

উত্তর:


22

গল্ফস্ক্রিপ্ট, 46 টি অক্ষর

0{`".~#"+.-1%+\.!@@}.~##~.}@@!.\+%1-.+"#~."`{1

ঠিক আছে, এটি কুরুচিপূর্ণ, কিন্তু এটি কাজ করে। আউটপুটটি বিপরীত কোডের সমান হয় এবং এটি একটি বৈধ গল্ফস্ক্রিপ্ট প্রোগ্রাম যা মূল কোডটিকে আবার আউটপুট করে।

ঠিক আছে, আমি কীভাবে এটি নির্মাণ করেছি তা ব্যাখ্যা করার চেষ্টা করি। প্রথমত, আমি কুইন থেকে শুরু করেছিলাম {".~"}.~, এবং নিজের উত্তরে উল্টাতে এই উত্তর হিসাবে এটি পরিবর্তন করেছি । আউটপুটটিকে নিজের মধ্যে এক্সিকিউটেবল কুইন বানানোর জন্য, আমি কোডটি বিপরীত করার আগে কোডটির একটি অনুলিপি তৈরি করেছিলাম এবং কোডের #শেষে একটি অন্তর্ভুক্ত করি , যাতে শেষে বিপরীত সংস্করণটি কেবল একটি মন্তব্য হয়ে যায়। সুতরাং, আমরা প্যালিনড্রমিক কুইন পাই:

{`".~#"+.-1%}.~##~.}%1-.+"#~."`{

যাইহোক, নিয়ম অনুসারে, প্যালিনড্রোমগুলি অনুমোদিত নয়, তাই আমার একরকম প্রতিসাম্যতা ভাঙতে হবে। আমি মূর্ত সহজ পদ্ধিতি হল উপায় একটি অন্তর্ভুক্ত করা হবে 0কোডে (যা, নিজেই এ, GolfScript একটি quine হয়) এবং তা টুসকি 1সঙ্গে !বিপরীত অনুলিপি তৈরি করেন। বাকি জটিলতাগুলির বেশিরভাগটি হ'ল কুরুচিপূর্ণ স্ট্যাক ম্যানিপুলেশন সবকিছু সঠিক ক্রমে পেতে।


যখন এটি বিপরীত হয় তখন এটিও গল্ফস্ক্রিপ্ট হয় বা এটি অন্য ভাষা?
hildred

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

9
কি দারুন. ঠিক আছে, আমি আর এই এসই এর জন্য যথেষ্ট স্মার্ট বোধ করি না :(
ক্রাঙ্কার

21

পার্ল এবং সি 6478 1955

#!/usr/bin/perl -i//
$_=<<'rahc';eval $_; #//
print scalar reverse "#!/usr/bin/perl -i//\n\$_=<<'rahc';eval \$_; #//\n${_}rahc\n" #//
__END__
__END__ enifed#
};)"{ = ][cn\rahcn\n\"(p
};)'n\'( rahctup) 1 == 21%b ( fi
;)d(p;)]1-b[c,",d%",)d(foezis,d( ftnirpns{)b--;b;)c(foezis=b( rof
;)c(p;]9[d rahc;b tni{)(niam diov
}};)]1-b[c(rahctup )]1-b[c(fi{)b--;b;)c(nelrts=b(rof;b tni{)c*rahc(p diov
>h.gnirts< edulcni#
>h.oidts< edulcni#
;}
,0
,53,33,74,711,511,411,74,89,501,011,74,211
,101,411,801,23,54,501,74,74,01,63,59,16
,06,06,93,411,79,401,99,93,95,101,811,79
,801,23,63,59,95,23,53,74,74,01,211,411
,501,011,611,23,511,99,79,801,79,411,23,411
,101,811,101,411,511,101,23,43,53,33,74,711
,511,411,74,89,501,011,74,211,101,411,801,23
,54,501,74,74,29,011,29,63,59,16,06,06
,93,411,79,401,99,93,95,101,811,79,801,23
,29,63,59,95,23,53,74,74,29,011,63,321
,59,521,411,79,401,99,29,011,43,23,53,74
,74,01,59,59,96,87,86,59,59,01,59,59
,96,87,86,59,59,23,101,011,501,201,101,001
,53,01,521,95,14,43,321,23,16,23,39,19
,99,011,29,411,79,401,99,011,29,011,29,43
,04,211,01,521,95,14,93,011,29,93,04,23
,411,79,401,99,611,711,211,14,23,94,23,16
,16,23,05,94,73,89,23,04,23,201,501,01
,95,14,001,04,211,95,14,39,94,54,89,19
,99,44,43,44,001,73,43,44,14,001,04,201
,111,101,221,501,511,44,001,04,23,201,611,011
,501,411,211,011,511,321,14,89,54,54,95,89
,95,14,99,04,201,111,101,221,501,511,16,89
,04,23,411,111,201,01,95,14,99,04,211,95
,39,75,19,001,23,411,79,401,99,95,89,23
,611,011,501,321,14,04,011,501,79,901,23,001
,501,111,811,01,521,521,95,14,39,94,54,89
,19,99,04,411,79,401,99,611,711,211,23,14
,39,94,54,89,19,99,04,201,501,321,14,89
,54,54,95,89,95,14,99,04,011,101,801,411
,611,511,16,89,04,411,111,201,95,89,23,611
,011,501,321,14,99,24,411,79,401,99,04,211
,23,001,501,111,811,01,26,401,64,301,011,501
,411,611,511,06,23,101,001,711,801,99,011,501
,53,01,26,401,64,111,501,001,611,511,06,23
,101,001,711,801,99,011,501,53,01,95,521,01
{ = ][c
rahc

সম্পাদনা:

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


1
ওয়াত। : হে আমার মাথা ফেটে গেল। তবে আমি এতে 6536 টি অক্ষর গণনা করেছি ...
ডুরকনব

কী ... কীভাবে ... 0_0
দ্য হাট

@ ডুরকনোবফসনো আমি ভুল সংস্করণ গণনা করেছি। তবে এখানে একটি সংক্ষিপ্ত সংস্করণ।
hildred

এই অবিশ্বাস্য! আমি মনে করি হাস্কেল / সি সম্ভবত অন্য সম্ভাব্য সংমিশ্রণ হতে পারে।
theonlygusti

@ থিওনলিগুস্টি, আপনি যদি এটি পোস্ট করেন এবং আমি এটি সংকলন করতে পারি তবে আমি এটি উত্সাহিত করব।
hildred

8

রুবি 145

DATA.read.tap {| a | a.revers, a.tr ("\ x79 \ x59", "\ x59 \ x79") রাখে}
: Y
__শেষ__
__DNE__
ওয়াই:
}) "97x \ 95x \", "95x \ 97x \" (rt.a, esrever.a স্টুপ | আ |। Pat.daer.ATAD

মূল ধারণাটি সহজ: রুবি থেকে __END__ব্যবহার করে পড়া যেতে পারে তার পরে উত্স কোডের প্রথম অর্ধেকটি পিছনের দিকে রাখুন DATA। তারপরে এই ডেটার বিপরীতটি প্রিন্ট করুন, তারপরে ডেটা মুদ্রণ করুন এবং আপনি আসল উত্স কোডটি ফিরে পাবেন

সমস্যাটি হ'ল এটি একটি প্যালিনড্রোমে পরিণত হয়েছে (নোট করুন যে প্রথম লাইনের একটি শেষরেখা দরকার), তাই আমাদের প্রতিসাম্যতা ভাঙতে হবে। আমি কোডটিতে সবেমাত্র একটি প্রতীক যুক্ত করেছি :yএবং কিছু কোড যা এই চিহ্নটিকে ছোট হাতের এবং বড় হাতের মধ্যে রানের মধ্যে রূপান্তরিত করবে, যার ফলে দুটি রানের পরে মূল অবস্থায় ফিরে আসবে।

প্রথম পরীক্ষা: সেগুলি কার্যকর করা যেতে পারে

$ ruby rq2.rb > rq2t.rb
$ ruby rq2t.rb > rq2tt.rb

দ্বিতীয় টেস্ট: দুটি রানের ফলাফল আসল উত্সটি ফিরিয়ে দেবে

$ diff rq2.rb rq2tt.rb
$

তিনটি পরীক্ষা: কোডটি প্যালিনড্রোম নয় (মাঝারি রানটি আলাদা)

$ diff rq2.rb rq2t.rb
3c3
< :y
---
> :Y
6c6
< Y:
---
> y:

4

> <>, 21 19 বাইট

'rd3*70.r l?!;o90.<

এখানে চেষ্টা করুন!

সুবিধার জন্য *> <> দোভাষী ব্যবহার করুন তবে এটি বৈধ> <> কোড।


যদি ত্রুটিযুক্ত হয়ে যাওয়ার অনুমতি দেওয়া হয়, তবে এটি 16 বাইটে করা যেতে পারে:

'd3*}70.!r  !|o|

এখানে চেষ্টা করুন!


@ জোকিং আপনাকে ধন্যবাদ! সকাল 7 টা ছিল এবং আমি এটি একসাথে রাখতে খুব ক্লান্ত হয়ে পড়েছিলাম। আমি কয়েক ঘন্টার মধ্যে এটিকে সম্পাদনা করব।
ডিসকর্ডিয়ান

4

গোল> <> , 11 বাইট

":5-}H}+5:'

পুরো বাইট কেটে ফেলা! এটি প্রায় একটি প্যালিনড্রোম, তবে প্রযুক্তিগতভাবে '+' এবং '-' এর কারণে নয়, হাহা!

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

নীচের দুটিটি কাজ করে না, বা কমপক্ষে তারা চ্যালেঞ্জের বিশদটি পূরণ করে না, তবে উপরের কোডটি কার্যকর করে।

কিছুটা ছোট সংস্করণ, 12 বাইট

"r2ssrH}+5:'

একটি বাইট গল্ফড, কেবল ডাবল উদ্ধৃতি ব্যবহার করে এবং এটি 5 দ্বারা বাড়িয়ে! এবং এই নতুন সংস্করণটি প্যালিনড্রোমের মতো কম দেখাচ্ছে।

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

পুরানো সংস্করণ, 13 বাইট

"r2ssrHrss7r'

পূর্ববর্তীটিতে একটি সমস্যা ছিল যা জোকিং উল্লেখ করেছিলেন, এর জন্য আপনাকে ধন্যবাদ, এখন এটি কাজ করে, তবে 4 টি অতিরিক্ত বাইটের দাম সহ ...

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


1

সাহায্য করুন, ওয়ারডক্স! (২ by বাইট)

সোর্স কোড পড়ার কারণে 25 বাইট যুক্ত করা হয়েছে।

<space>q

এটি কীভাবে কাজ করে:
<space>- একটি মন্তব্য যা স্পেসহীন অক্ষরটিতে শেষ হয়
q- প্রিন্ট উত্স কোডটি বিপরীত হয় (q "স্পেস")

বিপরীত:

q<space>

এটি কীভাবে কাজ করে:
q- মুদ্রণ উত্স কোডটি বিপরীত (এখনকার জন্য Q)
<space>- একটি মন্তব্য যা ফাঁকা স্থান অক্ষরের উপর শেষ হয় এবং q কমান্ডের শুরুতে একটি অক্ষর যুক্ত করে ("স্পেস" q তৈরি করে)

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