অটো সাইক্লার কুইন


11

একটি কুইন তৈরি করুন তবে একটি পাক দিয়ে।

বিবৃতি

কুইন তার কোডটি মুদ্রণ করে তবে এর প্রথম অক্ষরটি শেষে রাখে।
(আপনি এটি বিপরীতে করতে পারেন তবে আপনার উত্তরে সেই নোটটি অন্তর্ভুক্ত করুন)
আউটপুটটি অবশ্যই একটি প্রোগ্রাম হতে হবে যা একটি সমাধানও।

উদাহরণ: ধরুন আপনার কোডটি ছিল foobar, এটি চালানো ফিরে আসবে oobarfযা অন্য বৈধ প্রোগ্রাম হবে।

foobar -> oobarf
oobarf -> obarfo
obarfo -> barfoo
barfoo -> arfoob
arfoob -> rfooba
rfooba -> foobar

বিধি

  • আপনার কোড অবশ্যই অন্যের কোডের কিছু প্রজন্মের আউটপুট না হওয়া উচিত যা স্পষ্টতই চুরি করে
  • আপনার কোডটি অবশ্যই 2 টিরও বেশি অক্ষরের দীর্ঘ হওয়া উচিত (তাই সংক্ষিপ্ত কোডটি মজাদার নয়)
  • আপনার কোডে কমপক্ষে দুটি পৃথক অক্ষর থাকতে হবে (উদা: +++বৈধ নয়)

স্কোরিং

হিসাবে চ্যালেঞ্জটি সংক্ষিপ্ততম কোডের জয়।


2
ওয়েল এটি বিরক্তিকর: কোড golf.meta.stackexchange.com/a/14104/9365
ডম হেস্টিংস

3
@ ডোমহাস্টিংস পোস্ট করার জন্য আপনার কয়েক মাস ছিল।
mbomb007

2
@ আইকিউইক143 আমি মনে করি> আপনার বর্ণিত কারণে 2 টি চরিত্রের একটি ভাল প্রয়োজন
dylnan

5
Would এই একটি 'আবর্তিত quine' হিসেবে গণনা? ; পি
কেভিন ক্রুইজসেন

3
@ mbomb007 যে ভাষাতে এটি সম্ভব তা খুঁজে পাওয়া চ্যালেঞ্জের একটি অংশ
আইকিক 143

উত্তর:


19

বেফুঞ্জ -98 (পাইফুঞ্জ) , 2600 বাইট

ab*1'3:*2+*0pnd3*:::::::::::::::1'3:*3+*0p1'3:*5+*0p1'3:*d+*0p1'3:*f+*0p1'3:*fa++*0p1'3:*fd++*0p1'4'3*f-*0p1'4'3*7-*0p1'4'3*5-*0p6:*:*4-1p6:*:*4+1p6:*:*8+1p6:*:*a+1p6:*:*8+2p6:*:*f1++2p6:*:*f3++2pn75*1-:1'3:*4+*0p6:*:*f2++2pnaa*:::::::::::::::::1'3:*6+*0p1'3:*7+*0p1'3:*f1++*0p1'3:*f2++*0p1'3:*fe++*0p1'3:*ff++*0p1'4'3*e-*0p1'4'3*d-*0p1'4'3*4-*0p1'4'3*3-*0p6:*:*3-1p6:*:*2-1p6:*:*b+1p6:*:*c+1p6:*:*9+2p6:*:*a+2p6:*:*f4++2p6:*:*f5++2pn67*::::::::::1'3:*8+*0p1'3:*a+*0p1'3:*f4++*0p1'3:*f5++*0p1'4'3*f-5-*0p1'4'3*c-*0p1'4'3*2-*0p6:*:*1-1p6:*:*d+1p6:*:*b+2p6:*:*f6++2pna5*::1'3:*9+*0p1'3:*f3++*0p6:*:*1pn68*:::::1'3:*b+*0p1'3:*f8++*0p1'4'3*f-2-*0p1'4'3*9-*0p1'4'3*1+*0p6:*:*f7++2pne8*:::::::1'3:*c+*0p1'3:*f9++*0p1'4'3*f-1-*0p1'4'3*8-*0p1'4'3*2+*0p6:*:*f2++1p6:*:*f+2p6:*:*f8++2pnf4*:1'3:*e+*0p1'4'3*3+*2pn77*::::1'3:*f6++*0p1'4'3*f-4-*0p6:*:*f1++1p6:*:*c+2p6:*:*e+2pnb4*1-::1'3:*f7++*0p6:*:*f+1p6:*:*d+2pnf4*1-::1'3:*fb++*0p6:*:*7+2p1'3:*1+*2pnf4*2-1'3:*fc++*0pn95*:::1'4'3*f-3-*0p1'4'3*a-*0p1'4'3**0p6:*:*1+1pn87*1'4'3*b-*0pnac*2-:1'4'3*6-*0p1'4'3*3+*0pnf4*3-1'4'3*1-*0pn88*2-6:*:*5-1pnc9*1-6:*:*2+1pnb4*:6:*:*3+1p6:*:*6+1pn88*6:*:*9+1pnd4*1-6:*:*e+1pnc8*2-:1'3:**1p1'3:**2pnd7*2+6:*:*4+2pn75*6:*:*6+2pn>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ab*1'3:*2+*0pnd3*:::::::::::::::1'3:*3+*0p1'3:*5+*0p1'3:*d+*0p1'3:*f+*0p1'3:*fa++*0p1'3:*fd++*0p1'4'3*f-*0p1'4'3*7-*0p1'4'3*5-*0p6:*:*4-1p6:*:*4+1p6:*:*8+1p6:*:*a+1p6:*:*8+2p6:*:*f1++2p6:*:*f3++2pn75*1-:1'3:*4+*0p6:*:*f2++2pnaa*:::::::::::::::::1'3:*6+*0p1'3:*7+*0p1'3:*f1++*0p1'3:*f2++*0p1'3:*fe++*0p1'3:*ff++*0p1'4'3*e-*0p1'4'3*d-*0p1'4'3*4-*0p1'4'3*3-*0p6:*:*3-1p6:*:*2-1p6:*:*b+1p6:*:*c+1p6:*:*9+2p6:*:*a+2p6:*:*f4++2p6:*:*f5++2pn67*::::::::::1'3:*8+*0p1'3:*a+*0p1'3:*f4++*0p1'3:*f5++*0p1'4'3*f-5-*0p1'4'3*c-*0p1'4'3*2-*0p6:*:*1-1p6:*:*d+1p6:*:*b+2p6:*:*f6++2pna5*::1'3:*9+*0p1'3:*f3++*0p6:*:*1pn68*:::::1'3:*b+*0p1'3:*f8++*0p1'4'3*f-2-*0p1'4'3*9-*0p1'4'3*1+*0p6:*:*f7++2pne8*:::::::1'3:*c+*0p1'3:*f9++*0p1'4'3*f-1-*0p1'4'3*8-*0p1'4'3*2+*0p6:*:*f2++1p6:*:*f+2p6:*:*f8++2pnf4*:1'3:*e+*0p1'4'3*3+*2pn77*::::1'3:*f6++*0p1'4'3*f-4-*0p6:*:*f1++1p6:*:*c+2p6:*:*e+2pnb4*1-::1'3:*f7++*0p6:*:*f+1p6:*:*d+2pnf4*1-::1'3:*fb++*0p6:*:*7+2p1'3:*1+*2pnf4*2-1'3:*fc++*0pn95*:::1'4'3*f-3-*0p1'4'3*a-*0p1'4'3**0p6:*:*1+1pn87*1'4'3*b-*0pnac*2-:1'4'3*6-*0p1'4'3*3+*0pnf4*3-1'4'3*1-*0pn88*2-6:*:*5-1pnc9*1-6:*:*2+1pnb4*:6:*:*3+1p6:*:*6+1pn88*6:*:*9+1pnd4*1-6:*:*e+1pnc8*2-:1'3:**1p1'3:**2pnd7*2+6:*:*4+2pn75*6:*:*6+2pn>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

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

এটি তৈরি করা একটি নরকপথে ছিল।

এটি কীভাবে কাজ করে:
প্রোগ্রামটি হ'ল পুট স্টেটমেন্টগুলির একটি গুচ্ছ যা নিজের চারপাশে একটি প্রোগ্রাম বি একত্রিত করে যা উত্স বাইটের অর্ধেক মুদ্রণ করে দুবার স্থানান্তরিত হয়।
প্রোগ্রামটি আসলে 1300 বাইট প্রোগ্রামের 2 টি অনুলিপি হয়, এটি নিশ্চিত করা হয় যে পুরো 1300 বাইট প্রোগ্রামটি সর্বদা সামগ্রিকভাবে চালিত হয়।

আরও ভাল ব্যাখ্যা:
প্রতিটি বেফঞ্জ -৮৮ কোয়েনে এমন একটি @বা qএবং ,
সমস্যা থাকা দরকার: এই চিহ্নগুলির মধ্যে কোনওটিই ভাল প্রারম্ভিক বিষয় নয় @এবং qতাত্ক্ষণিকভাবে প্রোগ্রামটি শেষ করে দেয়।
সমাধান : উত্স কোডে এই অক্ষরগুলি থেকে মুক্তি পান

সমস্যা : কীভাবে?
সমাধান : pপ্রয়োজনীয় অক্ষরগুলি অন্তর্ভুক্ত করার জন্য উত্স কোডটি সংশোধন করতে (পুট) কমান্ডগুলি ব্যবহার করুন যা একটি বাইট দ্বারা স্থানান্তরিত উত্স কোডটি মুদ্রণ করবে এবং প্রতারণা করছে এমন কমান্ডটি ব্যবহার করবে নাg

সমস্যা : (দীর্ঘশ্বাস কখন শেষ হবে)
একটি কমান্ড 3 টি মানকে পপ করে n x yযা অক্ষর নির্ধারণ করে, এক্স-কোর্ড, ওয়াই-কোর্ড তবে যখন এই মানগুলির সূচনাটি অর্ধে বিভক্ত হয় তবে এটি সূচনা উত্সের কোডটিতে খারাপ অক্ষর লিখতে পারে যা একে অকেজো করে তোলে কুইনিংয়ের জন্য
সমাধান : (শেষটি আমি প্রতিশ্রুতি দিয়েছি)
উত্স কোডের 2 টি অনুলিপি ব্যবহার করুন, দ্বিতীয়টি "সঠিক এক" হ'ল এটি ঘটনাক্রমে অন্য একটি সমস্যার সমাধান করে যা হ'ল একটি বিবৃতি (পি কমান্ড + ধ্রুবক আরম্ভকারী) যা অর্ধেক ইচ্ছায় বিভক্ত হয় মৃত্যুদন্ড কার্যকর করা হবে না, এটি প্রতিটি বিবৃতিতে 2 কপি থাকার মাধ্যমে স্থির করা হয়েছে। সর্বশেষে এটির কাজ করার দরকারটি হল কীভাবে আমরা পুরো উত্স কোডটিকে অর্ধেকের বাইরে করব?

উত্তর :
একটি চিত্রের মূল্য তাদের 1000 টি শব্দ বলে।  তারপরে তারা পিট তৈরি করলেন।

এটি স্ট্রিং বাইটের দুটি কপি কেন স্থানান্তরিত হয়েছে তার দর্শনীয় প্রমাণ == বাইট স্থানান্তরিত স্ট্রিংয়ের দুটি অনুলিপি। এর অর্থ আমরা কোডের অর্ধেক নিতে পারি, বাইটটি শিফট করে, তারপরে এটি দুটি বার মুদ্রণ করুন (বা কোডের অর্ধেক অংশ নেবেন, বাইট শিফট করুন, মুদ্রণ করুন, পুনরাবৃত্তি করুন [আসলে এটি ঘটে]]

এটি কীভাবে কার্যকর করা হয় : ধরে নিন 0123456789abcdef উত্স

বেফঞ্জ সিউডোকোড:

0123456789abcv;;"123456789abcdef" < go this way <--
             >PS'0,   repeat 2x   ^

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

এটি কোডটিকে এমন কিছু দেখায়: কোড

ব্যাখ্যা :
সবুজ হাইলাইট: উত্সে অক্ষরগুলি যুক্ত করার যত্ন নেওয়ার কোডটি
ধূসর বর্ণগুলি (দরিদ্র দৃশ্যের জন্য দুঃখিত): যে কোডটি গ্রিন কোড দ্বারা যুক্ত হয়
রেড হাইলাইট: কোড যা নীল অঞ্চলে উত্স কোডের দ্বিতীয়ার্ধের প্রথম অক্ষরকে সরিয়ে দেয় ।
নীল হাইলাইট: রেড হাইলাইট
কমলা হাইলাইট দেখুন: কোডটি নিশ্চিত করে যে আমরা @হলুদ অঞ্চলে একটি (টার্মিনেট) কমান্ড রেখে 2 বাইট স্থানান্তরিত অনুলিপিগুলি লেখার পরে শেষ করব।

তীরগুলি আশা করে কোড প্রবাহ কীভাবে যায় তা পরিষ্কার করে দেওয়া উচিত।

এখানে গত শক্ত অংশ আসে
কোথায় শিশুদের সোর্স কোড থেকে এসেছে?

সংক্ষিপ্ত উত্তর: সি # ম্যাজিক
দীর্ঘ উত্তর: 100+ বেফুঞ্জ কোড স্নিপেটস সি # কোড দিয়ে সংকলিত hand আমি ম্যানুয়ালি হাতে প্রায় 100 ধ্রুবক প্রারম্ভিক (বেফুং কোডের একটি টুকরো যা একটি নির্দিষ্ট নম্বরকে স্ট্যাকের জন্য ঠেলাঠেলি করে) লিখেছিলাম এবং তারপরে 1300 বাইট বেফঞ্জ আউটপুটটিতে এটি সংকলন করতে একটি কাস্টম সি # প্রোগ্রাম ব্যবহার করেছি, যা আমি পরে দুবার পেস্ট করে চূড়ান্ত করেছিলাম কার্যক্রম.

এখানে এখনো আপনি? পড়ার জন্য আপনাকে ধন্যবাদ! (বা কমপক্ষে শেষ পর্যন্ত স্ক্রোলিং)
আমি আশা করি আমার খারাপ রসিকতা মজাদার ছিল এবং বিরক্তিকর ছিল না।

দ্রষ্টব্য: এই কোডে কোনও পুট স্টেটমেন্ট এজি কমান্ড তৈরি করে না যা প্রতারণা করবে।

সম্পাদনা: বিকাশকারী সরঞ্জাম ব্যবহার করে টিআইওতে নিম্নলিখিত জাভাস্ক্রিপ্ট কোডটি ব্যবহার করে আমি কোডটি যাচাই করেছি

setInterval(()=>{document.getElementById("code").value = 
document.getElementById("output").value; 
document.getElementById("run").click();}, 2000);

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

1
@ নাথানিয়েল সেখানে সম্পূর্ণ ব্যাখ্যার আশা করছেন আপনি এটি পছন্দ করবেন! : ডি
আইকিউক 143

1
pভুল যুক্তি নিয়ে কাজ করার অংশটি হল প্রতিভা।
লিও 3065

@ লিও 3065 ধন্যবাদ :)
আইকিক 143

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