সাইক্লিক কুইনকে প্রতারণা করছে


19

ধারণা

এমন একটি প্রোগ্রাম লিখুন যা এর প্রোগ্রামিং ভাষায় কোড আউটপুট করে। এই কোডটি কার্যকর করা হলে অবশ্যই অবশ্যই মূল প্রোগ্রামটি আউটপুট করে।

বিধি

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

আমি এখনও পুরোপুরি নিশ্চিত নই যে একটি আধা-কুইন গঠন করে।
কনর ও'ব্রায়েন

@ কনরোও ব্রায়ান এটি এমন একটি প্রোগ্রাম আউটপুট দেয় যা আসল প্রোগ্রামটিকে
ছাড়িয়ে যায়

1
আমি দেখি. শব্দটি বেশ অস্পষ্ট।
কনর ও'ব্রায়েন

2
সংক্ষিপ্ত উত্তরটি কেন নির্বাচন করা হবে না? এটি কি ক্যাটালগ?
এটাকো

1
কেবল রেকর্ডের জন্য, আমি এটিকে একটি মিউচুয়াল কুইন বলব (এই চ্যালেঞ্জটি যদিও বিভিন্ন ভাষার প্রয়োজন )।
মার্টিন এন্ডার

উত্তর:


28

বাশ + কোর্টিলস, 11 বাইট

tr xy yx<$0

এই মুদ্রণ

tr yx xy<$0

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

পরিবর্তে, যে মুদ্রণ

tr xy yx<$0

1
ঠকানো এবং সাধারণ ভাষায় নয়।
ডেনসন

8
আমি মনে করি trকমান্ডটি পুনঃনির্দেশিত $0যা এর নিজস্ব উত্স কোড। সুতরাং এটি "ঠকাই"।
রোমান গ্রাফ

21

শামুক, 0 বাইট



দ্বিতীয় প্রোগ্রামটি হ'ল

1

প্রথম প্রোগ্রামটি খালি ইনপুটটিতে খালি প্যাটার্নের ম্যাচের সংখ্যার গণনা করে (যার সত্যিকারের ক্ষেত্রফল 0 রয়েছে তবে প্রোগ্রামটি খালি ইনপুটটিতে কী প্রিন্ট করতে চায় তা সিদ্ধান্ত নিতে হ্যাক হিসাবে সর্বদা কমপক্ষে একবার চালানো হয়)। দ্বিতীয় প্রোগ্রামটি কোয়ান্টিফায়ার দিয়ে শুরু হয় ( {1}রেগেক্সের মতো ) যা পার্স ত্রুটির কারণ হয়। যেহেতু প্রোগ্রামটি সাফল্যের সাথে বিশ্লেষণ করে না, তাই STDOUT খালি স্ট্রিং।


আমি ভেবেছিলাম সম্ভবত এমন কোন ভাষা ছিল যা এটি করেছিল (অর্থাত নাল প্রোগ্রামটি অসাধারণ ফলাফলের সাথে সাফল্য অর্জন করে তবে ফলাফলটি প্রোগ্রাম হিসাবে কিছুই করে না)। আমি হোমস্প্রিংয়ের চেষ্টা করেছি কিন্তু দোভাষীকে কাজ করতে পারিনি। দেখে মনে হচ্ছে আপনি অন্য ভাষা খুঁজে পেয়েছেন যেখানে এটি কাজ করে। (আপনার কি কোনও দোভাষীর লিঙ্ক আছে?)


20

7 , 2 বাইট

7 একটি 3-বিট অক্ষর সেট ব্যবহার করে, তবে বাইটগুলিতে প্যাক করা ইনপুট নেয় (এবং মেটা অনুসারে, সাব-বাইট অক্ষর সেটগুলির সাথে ডিস্কে ফাইলের জন্য বাইট ব্যবহার করে গণনা করা হয় )। xxdপ্রোগ্রামটির একটি ডাম্প এখানে রয়েছে :

00000000: 4cf4                                     L.

7 জন দোভাষীকে এই ফাইলটি দেওয়ার সময়, এটি নিম্নলিখিত প্রোগ্রামটি আউটপুট দেবে:

00000000: 4fa6 7f                                  O..

যার ফলে আবার আসল প্রোগ্রামটি আউটপুট হবে।

তাহলে এখানে কি হচ্ছে? কোনও উত্স পাঠের সাথে জড়িত নেই (আসলে, আমি মনে করি না যে এটি উত্সটি 7 সালে পড়া সম্ভব) যদিও তত যুক্তিযুক্তভাবে প্রোগ্রামটি অন্যভাবে প্রতারণা করছে; আমার সম্পর্কে আপনি কী মনে করেন জানি. প্রোগ্রামটি কীভাবে কাজ করে তা এখানে। (নোট করুন যে প্রতিটি 7 কমান্ডের দুটি রূপ রয়েছে, যার কয়েকটিটির নাম নেই এবং মূল প্রোগ্রামে উপস্থিত হতে পারে না twelve বারে 12 টি কমান্ড রয়েছে, ছয়টি জোড়ায় I'm কমান্ডগুলি, এবং সক্রিয় কমান্ডের কোনও নাম না থাকলে, আমি এটিকে সংশ্লিষ্ট প্যাসিভ কমান্ডের মতো একই নাম দিচ্ছি এবং পার্থক্য করার জন্য সাহসের উপর নির্ভর করছি both উভয়ের নাম দেওয়া হয়েছে, যেমন, 7যা সক্রিয় রূপ 1, প্রতিটি কমান্ডের নিজস্ব নাম হয় এবং সাহসী কেবল সিনট্যাক্স হাইলাইট করে)

231 7 23 মূল প্রোগ্রাম, অষ্টালে প্যাক করা
231 স্ট্যাকের উপর 237 চাপুন
    23 স্ট্যাকের উপরে 23 চাপুন
             (অন্তর্নিহিত) প্রোগ্রামে স্ট্যাকের শীর্ষের একটি অনুলিপি যুক্ত করুন
            স্ট্যাকের 2 সদৃশ শীর্ষ (বর্তমানে 23 )
        3      স্ট্যাকের আউটপুট শীর্ষ, দ্বিতীয় স্ট্যাক উপাদানটির পপ

এই মুহুর্তে, 7 জন অনুবাদক দেখতে পাবেন যে স্ট্যাকের শীর্ষে কমান্ডগুলি রয়েছে ( 2এবং 3) যা উপস্থাপনযোগ্য নয়, তাই এটি স্ট্যাকের শীর্ষে পালিয়ে যায়, 723যা উত্পাদন করে (যা)। প্রথম কমান্ড আউটপুট আউটপুট ফর্ম্যাট নির্বাচন করে; এই ক্ষেত্রে, এটি 7 ফর্ম্যাট, "প্রোগ্রামের মতো আউটপুটটিকে ফর্ম্যাট করুন"। সুতরাং কমান্ডগুলি আউটপুটকে বাইটে প্যাক করবে। তারপরে প্রোগ্রামটি চালিয়ে যায়:

231 7 23 23
             (অন্তর্নিহিত) প্রোগ্রামে স্ট্যাকের শীর্ষের একটি অনুলিপি যুক্ত করুন
            স্ট্যাকের 2 সদৃশ শীর্ষ (বর্তমানে 237 )
          3    স্ট্যাকের আউটপুট শীর্ষ, দ্বিতীয় স্ট্যাকের উপাদানটি পপ করুন
           7   স্ট্যাকের উপর একটি খালি উপাদানটি পুশ করুন

এই মুহুর্তে, স্ট্যাকের খালি স্ট্যাক উপাদানগুলি ছাড়া আর কিছুই নেই, সুতরাং প্রোগ্রামটি প্রস্থান করে। আমরা 23আগে আউটপুট । যদি আমরা পালাতে পারি 237(এবং আমাদের তা করতে হবে, কারণ এটিতে উপস্থাপনযোগ্য কমান্ড রয়েছে), আমরা পাই 7231। এটি সরাসরি আউটপুট পায়, প্রোগ্রামটির চূড়ান্ত আউটপুট তৈরি করে 237231( প্রোগ্রাম হিসাবে একইভাবে ফর্ম্যাট করা, অর্থাৎ বাইটস মধ্যে প্যাক করা)। এটাই 4fa67f। (এটি লক্ষ করা যায় যে 1আউটপুটকে প্রভাবিত করার ক্ষেত্রে পুরোপুরি অর্থহীন ছিল; কেবলমাত্র দুটি প্রোগ্রামকেই আলাদা করে তোলা হবার একমাত্র কারণ))

চলমান 237231প্রায় একইভাবে এগিয়ে যায়; পার্থক্যটি হ'ল 1প্রথম মুদ্রণের ঠিক পরেই অকেজো চালিত হয় (এবং খালি উপাদানটি দ্বিতীয়বার প্রোগ্রামের বর্তমান শেষের দিকে পৌঁছে যায়) licit আবার, 231আউটপুট নিজেই শেষ হয়, 23শেষগুলি আউটপুট আউট করে তার আগে একটি 7, এবং আমরা পাই 231723, আসল প্রোগ্রামটি।

পর্যবেক্ষক লক্ষ করতে পারেন যে দুটি প্রোগ্রাম, ভাষার "নেটিভ" অষ্টালে একই দৈর্ঘ্য হওয়া সত্ত্বেও, ডিস্কে পৃথক দৈর্ঘ্য। কারণ 7 টি প্রোগ্রাম 1 বিটগুলির একটি স্বেচ্ছাসেবী সংখ্যার সাথে প্যাড করা যেতে পারে, এবং প্যাকযুক্ত ফর্ম্যাটটি পিছনের প্যাডিংগুলি ত্যাগ করে। এখানে এনকোডিং কীভাবে ঘটে তা এখানে:

2  3  1  7  2  3
010011001111010011(1...)
4   c   f   4   padding

অন্য কথায়, দুটি বাইট, 4C F4প্রোগ্রামটি উপস্থাপনের জন্য যথেষ্ট, তাই আমি কেবল এটিই ব্যবহার করেছি।


11

পাইথন 3, 297 279 251 243 225 218 208 180 126 111 বাইট

অ প্রতারণার:

A=''';print(("A="+("'"*3+A)*2).translate({65:66,66:65}))''';print(("A="+("'"*3+A)*2).translate({65:66,66:65}))

এই মুদ্রণ:

B=''';print(("B="+("'"*3+B)*2).translate({65:66,66:65}))''';print(("B="+("'"*3+B)*2).translate({65:66,66:65}))

যা কার্যকর হলে মূল প্রোগ্রামটি মুদ্রণ করে।


কি দারুন! শান্ত! আমি যে চিন্তা করতে হবে না।
dkudriavtsev

8

ব্যাচ, 14 বাইট

@echo @type %0

যা cyclicquine.batআউটপুট হিসাবে চালানো হয়

@type cyclicquine.bat

যা রান যখন মূল ব্যাচ ফাইল আউটপুট।


8

আরপিগ্রন , 4 বাইট

সম্প্রদায় এই ধরণের জিনিসটিকে প্রতারণামূলক কুইন হিসাবে বিবেচনা করে বলে মনে হয় যা এইভাবে মানদণ্ডকে সন্তুষ্ট করে।

1
2

একটি ট্রেলিং নিউলাইন সহ।

এই মুদ্রণ

2
1

একটি ট্রেইলিং নিউলাইন সহ, যা প্রথম কোডটি মুদ্রণ করে।

RProgN স্ট্যাক পপিং মুদ্রণ করে, তাই উপরে থেকে নীচে।

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


কিছুক্ষণ আগে এখানে একটি আড্ডার আলোচনা হয়েছিল যা সূচিত করেছিল যে 1\n1\nআরপিগ্রোনে একটি প্রতারণামূলক কুইন হবে, কারণ 1s এর প্রত্যেকটি একে অপরকে মুদ্রণ করে (এবং এটি কেবল 1 টি মুদ্রিত হলে এটি প্রতারণা হিসাবে বিবেচিত হবে)। এই সমস্ত সত্যই বোঝায় যে কুইনে প্রতারণা কখনও কখনও সংজ্ঞায়িত করা কঠিন হতে পারে। (তবে, এই উত্তরটি যে কোনও উপায়েই সঠিক, কারণ প্রশ্নটিতে আসলে কোয়েনের প্রতারণার প্রয়োজন হয় না , কেবল এটির অনুমতি দেয় ))

এছাড়াও, যদিও আমি বলতে অনিচ্ছুক ছিলাম, আরপিগ্রোএন 1\nপ্রযুক্তিগতভাবে একটি বৈধ কুইন, 1এটি কোনও ধ্রুবক নয়, তবে কোনও ফাংশনে কল যা 1স্ট্যাকের দিকে ধাক্কা দেয় ।
এটাকো

ব্যবহারে সঠিক কুইনের একাধিক সংজ্ঞা রয়েছে। এটি কমপক্ষে একজন দ্বারা অবৈধ, তবে অন্যদের দ্বারা সম্ভবত বৈধ।

@ ais523 আপনি আমার কৌতূহল ছড়িয়ে দিয়েছেন, আপনি RProgN নির্দিষ্ট করেছেন, তবুও আমি ভাবিনি যে আমার ছোট্ট ভাষাটি এতটা (বা কোনও) দৃষ্টি আকর্ষণ করেছে। বিশেষত RProgN সম্পর্কে চ্যাটটি ছিল বা একই রকম সিনট্যাক্সের ভাষা ছিল?
এটাকো

এটি প্রায় 7 ছিল , যা প্রোগ্রামের অংশগুলি "পিছনে" প্রিন্ট করার প্রবণতাও রাখে। আমি সেখানে দেওয়া মতামত থেকে এক্সট্রাপোলেটিং ছিল।

6

জल्फ, 6 বাইট

1q_a_q

রান করার সময়, এই ফলাফলগুলি:

q_a_q1

যা ঘুরে আউটপুট 1q_a_q

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

ব্যাখ্যা

1q_a_q
1       the digit one (ignored)
 q      the source code (ignored)
     q  the source code
    _   reversed
   a    and outputted
 _      and reversed (ignored)

q_a_q1
q       the source code (ignored)
     1  the digit one (ignored)
    q   the source code
   _    reversed
  a     and outputted
 _      and reversed (ignored)

5

জাভাস্ক্রিপ্ট (ES6), 69 60 59 বাইট

(_0=_=>console.log(`(_0=${_0})()`.replace(/0/g,n=>+!+n)))()

আউটপুট:

(_1=_=>console.log(`(_1=${_1})()`.replace(/1/g,n=>+!+n)))()

-1 বাইট (@ETHProductions): \ d এর পরিবর্তে 0 রেগেক্সে ব্যবহার করুন


n=>1-nপরিবর্তে চেষ্টা করুন n=>+!+n
কনার ও'ব্রায়েন

@ কননার ও'ব্রায়েন দুর্ভাগ্যক্রমে রিজেক্স 1দ্বারা প্রতিস্থাপন শেষ হবে।
darrylyeo

@ এথ প্রডাকশনস হে, আমার এটা ভেবে দেখা উচিত ছিল।
darrylyeo


3

বাশ, ক্যাট, এবং রেভ, 19 16 বাইট

rev $0 # 0$  ver

-3 ধন্যবাদ @ আইজাবেরাকে


এই হবে না Bash, Tac, এবং `আয়?
কনর ও'ব্রায়েন

rev $0 # 0$<space><space>verকোনও কারণে আমি একটি মন্তব্যে দুটি স্পেস রাখতে পারছি না
ইজাবায়েরা

ওহ, সুন্দর @izabera
ননওনিখ এখানে

@ ConorO'Brien না, tac rev-ed হয় cat
NoOneIs এখানে

@SeOneRhino ওহ .... আমি দেখতে পেয়েছি
ও'ব্রায়েন

1

> <>, 16 বাইট

"$r00gol?!;50.01

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

আউটপুট

"$r00gol?!;50.10

এটি এখানে সরবরাহিত একটির একটি পরিবর্তন । আমি নিশ্চিত নই যে এটি প্রতারণা করছে কিনা, এটি কোডবক্সটি পড়ে তা আউটপুট করে।


1
আপনি 00g কে 2: এ পরিবর্তন করতে পারবেন এবং কোডবক্স না পড়ে এটি একই বাইট গণনা রাখবে।
পেলিকান পেলিকান

@ ট্রিপেলিকান, ধন্যবাদ! লক্ষ্যটি এটি "প্রতারণামূলক" হিসাবে বিবেচিত হলেও এটি: পি। (এবং আমি সেই নিয়মটি পুরোপুরি বুঝতে পারি না)
redstarcoder
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.