স্বল্পতম স্ব-সনাক্তকরণ প্রোগ্রাম লিখুন (একটি চক্র বৈকল্পিক)


57

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

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

এটি কোড গল্ফ: মানক বিধি প্রযোজ্য। আপনার প্রোগ্রামটি অবশ্যই কোনও বিশেষ ফাইল অ্যাক্সেস করবে না, যেমন নিজস্ব উত্স কোডের ফাইল।

সম্পাদনা: আপনি যদি এটি চয়ন করেন তবে সত্য / মিথ্যাটিকে সত্য / মিথ্যা বা 1/0 দিয়ে প্রতিস্থাপন করা যেতে পারে।

উদাহরণ

যদি আপনার প্রোগ্রামের উত্স কোড হয় bhiofvewoibh46948732));:/)4, তবে আপনার প্রোগ্রামটি যা করতে হবে তা এখানে:

ইনপুট (স্টিডিন)

bhiofvewoibh46948732));:/)4

আউটপুট (স্টাটআউট)

true

ইনপুট

(Anything other than your source code)

আউটপুট

false

7
কি true/ falseআউটপুট একটি শক্তিশালী প্রয়োজন, অথবা বৈচিত্র (হয় True/ False, 1/ 0) গ্রহণযোগ্য পাশাপাশি?
ক্রিশ্চিয়ান লুপাস্কু

প্রোগ্রামটি যদি সত্য / মিথ্যা থেকে কিছুটা বেশি আউটপুট দেয় (সমস্যাটি যদি দ্ব্যর্থহীন থাকে এবং সত্য / মিথ্যা দিয়ে শেষ হয়) তবে এটি কী সমস্যা?
অস্বীকার করেছেন সাগুরেট


5
সুতরাং আপনি একটি নার্সিসিস্ট প্রোগ্রাম মানে?
পাইরুলেজ

উত্তর:


33

জাভাস্ক্রিপ্ট: 26

function f(s){return s==f}

আমি জানি না কোনও জাভাস্ক্রিপ্ট ফাইল সত্যিই "প্রোগ্রাম" হিসাবে যোগ্যতা অর্জন করে কিনা।



এটি একটি তীর ফাংশন ব্যবহার করে সংক্ষিপ্ত করা যেতে পারেf=s=>s=='f='+f
জোনাথন

2
@ জোনাথন হ্যাঁ তবে 2013 সালে এটি পারেন নি ...
সাগুরেট

19

জাভাস্ক্রিপ্ট ES6, 9 টি অক্ষর

এটি জেএসে করার একমাত্র (গল্ফ) উপায়। ES6 কেবল এটিকে সুপার কম অক্ষরে নিতে পারে

এটি সর্বশেষতম ফায়ারফক্সের ওয়েব কনসোলটিতে চালান:

f=x=>f==x

ব্যবহারের উদাহরণ:

f("check") // returns false
f("x=>f==x") // returns true

1
@ ফিনোটপি - আমার প্রবেশটি কি এখনও উত্তর হিসাবে বেছে নেওয়ার যোগ্য?
অপটিমাইজার

6
যদিও এটি যুক্তিযুক্ত হতে পারে যে এই ক্ষেত্রে উত্সটি f=x=>f==xএবং না x=>f==x, যদিও ডেনিস সাগুরেটের সংস্করণটি সত্যই পুরো উত্সটি পরীক্ষা করে।
হানক্রেকর্ডস

@ হানক্রেকর্ডস জাভাস্ক্রিপ্টটিকে সিদ্ধান্ত নিতে দিন। f=x=>f==x function f() f.toSource() "x=>f==x"(মূলত কনসোলে কোডটি মূল্যায়ন করুন এবং তারপরে f.toSource()সেই পদ্ধতিটি সমর্থন করে এমন একটি ব্রাউজারে মূল্যায়ন করুন
অপ্টিমাইজার

বেনামে ফাংশন অনুমোদিত নয় (এতে আপনার কোড সংক্ষিপ্ত করুন x=>f==x) EDIT: কিছুই নয়, ফাংশনের অভ্যন্তরে রেফারেন্স দেওয়া হয়
মিল্কিওয়ে 90

9

হাস্কেল, 72 টি অক্ষর

main=interact$show.(==s++show s);s="main=interact$show.(==s++show s);s="

দ্রষ্টব্য: স্ক্রিপ্টের শেষে কোনও শেষের-লাইন অক্ষর নেই।

$ runhaskell Self.hs < Self.hs
True

8

গল্ফস্ক্রিপ্ট, ১১ টি চর

{`".~"+=}.~

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

ব্যাখ্যা:

  • { } গল্ফস্ক্রিপ্টে একটি কোড ব্লক আক্ষরিক;
  • .এই কোড ব্লকে সদৃশ ~করে , এবং দ্বিতীয় অনুলিপি কার্যকর করে (স্ট্যাকের উপর প্রথম রেখে);
  • `কোড ব্লককে শক্তিশালী করে এবং ".~"+ .~এতে যুক্ত হয়;
  • পরিশেষে, =ফলাফলটি স্ট্রিংটিকে ইনপুট (যা প্রোগ্রামটি শুরুর আগে গল্ফস্ক্রিপ্ট ইন্টারপ্রেটার দ্বারা স্ট্রিং হিসাবে ধাক্কা দেওয়া হয়) এর সাথে তুলনা করে এবং 1যদি তারা মেলে এবং 0যদি না মিলায় তবে ফিরে আসে ।

7

পার্ল, অনন্ত 41 38 টি অক্ষর

$_=q(print<>eq"\$_=q($_);eval"|0);eval

আপডেট: প্রোগ্রামটি আর কোনও নতুন লাইনের সাথে শেষ হয় না, যার অর্থ এটি মাল্টি-লাইন ফাইলগুলিতে সঠিকভাবে কাজ করবে। এন্টার না দিয়ে আপনাকে STDIN থেকে ইনপুট প্রবেশ করতে হবে। উইন্ডোজে আমি কেবল কোনও ফাইল থেকে পড়ে এটি করতে সক্ষম হয়েছি।

আসল সমাধান:

print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(print<>==q(...

1
সুন্দরভাবে সম্পন্ন! । । ।
জনতা

কোড দিয়ে শুরু হওয়া কোনও ফাইলের ব্যর্থতা, উদাহরণস্বরূপ(cat id.pl; echo foo)|perl id.pl
জিওফ রেডি

@ জিফরিডি, ধন্যবাদ; প্রোগ্রামটি এর আগে বহু-লাইন ইনপুট হ্যান্ডেল করে না। এটি এখন সংশোধন করা হয়।

ডার্ন, এই কোড বোলিং হয়?
ম্যাথু রোহ

7

> <> , 68 বাইট

মাছরা মাছের পোপ খাওয়া পছন্দ করে। এখন আমরা জানি যে তারা তাদের বন্ধুদের থেকে তাদের পার্থক্য করতে পারে।

00v      0+1~$^?)0~\;n0\
  >:@@:@gi:0(?\:a=?/=?!/$1+
  0n;n*=f$=2~~/

আপনি এটি অনলাইন চেষ্টা করতে পারেন !


1
1কোডের কোনও উপসর্গের জন্য এটিও আউটপুট দেয়
জো কিং

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

6

পাইথন 2, 55

a='a=%r;print a%%a==raw_input()';print a%a==raw_input()

পরিক্ষিত:

a='a=%r;print a%%a==raw_input()';print a%a==raw_input() -> True

(anything else) -> False


3
প্রথম লাইনের সমান দিয়ে শুরু হওয়া যে কোনও ফাইলে ব্যর্থ a='a=%r;print a%%a==raw_input()';print a%a==raw_input()
বুথবি

সত্য, বহু-লাইন ইনপুট সমর্থিত নয়।
flornquake

একটি তুচ্ছ ফিক্স raw_input()সঙ্গে প্রতিস্থাপন করা হবে __import__('sys').stdin.read()
ফেয়ারসাম

চ্যালেঞ্জের কথাটি শুনে আমি বিভ্রান্ত হয়ে পড়েছি ('কারণ আমি ইংলিশ ব্যাকরণে ভাল নই)। এটি কি অনুমোদিত? print raw_input()==open(__file__).read()? এটি মাত্র 40 বাইট, আপনার raw_input()পদ্ধতির ব্যবহার করে তবে এটি কোড পড়ে reads
সাইমন

1
@ সিমন এটি অনুমোদিত নয়, এটি এর মতো চ্যালেঞ্জগুলির জন্য এটি একটি মানসম্পন্ন লুফোলস। এবং হ্যাঁ, এর অর্থ এর অর্থYour program must not access any special files, such as the file of its own source code.
PunPun1000

6

জাভাস্ক্রিপ্ট ES6, 16 14 বাইট

$=_=>_==`$=`+$

মাইনাস দুই বাইট নীলকে ধন্যবাদ জানায়।

আমাদের প্রম্পটের মাধ্যমে অবশ্যই ইনপুট নিতে হবে তবে 31 বাইট

$=_=>prompt()==`$=${$};$()`;$()

38 বাইট যদি আমাদের সতর্কতার মাধ্যমে আউটপুট করতে হয়।

$=_=>alert(prompt()==`$=${$};$()`);$()

এটি করার উপযুক্ত উপায় এটিই, কারণ অপ্টিমাইজারের উত্তরটি পুরো উত্স কোডটি গ্রহণ করে না।


1
সুন্দর, যদিও আমি শুধু লিখতে হবে '$='+$
নীল

ওহ, সত্য। @ নীল
কনর ও'ব্রায়ান

1
আমি নিশ্চিত যে আপনার শেষ হওয়া দরকার ;$()কারণ ফাংশন কলটি রানার অংশ ine এর অর্থ হ'ল ইনপুটটির জন্য promptআপনাকে অ্যাকাউন্টে স্যুইচ করতে হবে।
মামা ফান রোল

1
সমস্যা নেই। ফাংশন কলটি প্রয়োজনীয় কারণ এটি রানার একটি অংশ। ব্যবহারকারীকে এটিকে একটি ফাংশন হিসাবে কল করতে দিলে কুইনটি নষ্ট হয়ে যায়।
মামা ফান রোল

1
চেষ্টা করুন$=_=>prompt()==`$=${$};$()`;$()
মামা ফান রোল

5

নোড.জেএস: 54

function f(){console.log(f+'f()'==process.argv[2])}f()

আপনি এটিকে কোনও ফাইলে সংরক্ষণ করে f.js(সঠিক নামের কোনও গুরুত্ব নেই) এবং ব্যবহার করে এটি পরীক্ষা করেন

node f.js "test"

(যা মিথ্যা ফল দেয়) বা

node f.js "$(< f.js)"

(যা সত্য ফলাফল)

আমি ওয়াল এর উপর ভিত্তি করে একটি আলাদা সংস্করণও তৈরি করেছি:

eval(f="console.log('eval(f='+JSON.stringify(f)+')'==process.argv[2])")

এটি এখন cha২ টি অক্ষরে, আমি সময় পেলে এটি ছোট করার চেষ্টা করব।


1
@ dan1111 কেন? এটি কোনও ফাইল অ্যাক্সেস করে না। আমি কেবল ইঙ্গিত করছিলাম যে প্রোগ্রামটি কীভাবে নোড.জেএস ব্যবহার করা হয় না তাদের কাছে প্রোগ্রামটি চালু করা যায়। এটি ফাইলটি পড়ে না।
সাগুরেট

1
সমস্ত জাভাস্ক্রিপ্ট সমাধান আপনি জেএস মধ্যে আপনার নিজস্ব উত্স কোড অ্যাক্সেস করতে পারেন যে এই সুবিধা গ্রহণ। এটি প্রযুক্তিগতভাবে " নিজস্ব উত্স কোডের ফাইল অ্যাক্সেস করা" নাও হতে পারে , তবে এটি ঠিক একই জিনিসটি সম্পাদন করে। আমি মনে করি আপনার উত্তর আইনী, যদিও প্রশ্নটি বিশেষত এটি নিষিদ্ধ করেনি।

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

@ অ্যাডস্ট্রয় আসলে ডি তে মিশ্রণ পড়ার উত্সের চেয়ে আরও ভাল ব্যবহারের মতো
রাচেট ফ্রিক

হ্যাঁ, আপনি ঠিক বলেছেন তবে আমি মনে করি আপনার প্রোগ্রামটি এনাম ভ্যালুতে এক ধরণের টো স্ট্রিং ব্যবহার করে, তাই না? এবং ইভাল / মিক্সিন ব্যবহার করে যে কোনও কোড ফাংশনের উত্সটি ব্যবহার করার চেয়ে একই কৌশল সম্পর্কে।
সাগ্রেট

5

স্মার্টটাক (ফারাও ২.০ উপভাষা)

স্ট্রিংয়ে এই 41 অক্ষর পদ্ধতিটি প্রয়োগ করুন (কোড-গল্ফের জন্য কুশল বিন্যাস):

isItMe^self=thisContext method sourceCode

তারপরে এটি একটি ওয়ার্কস্পেসে মূল্যায়ন করুন (প্রথাগত ছোট্টালক পদ্ধতিতে মুদ্রণ করুন) স্ট্যান্ডিন
থেকে ইনপুটটি পড়া হয় না, এটি কেবল একটি স্ট্রিং যেখানে আমরা বার্তাটি প্রেরণ করি (ছোট্ট প্রোগ্রামে কোনও প্রোগ্রাম কী হতে পারে?):

'isItMe^self=thisContext method sourceCode' isItMe.

তবে আমরা প্রতারণা করছি, সোর্সকোড কিছু উত্স ফাইলটি পড়ছে ...
এখানে 51 টি অক্ষর রয়েছে যা এটি নয়:

isItMe
    ^ self = thisContext method decompileString

এবং এর সাথে পরীক্ষা করুন:

'isItMe
    ^ self = thisContext method decompileString' isItMe

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

(UIManager default request: 'type me') = (thisContext method decompileString withSeparatorsCompacted allButFirst: 7)

যেহেতু ডিকম্পাইল বিন্যাসে সিআর এবং টিএবি অন্তর্ভুক্ত রয়েছে, তাই আমরা সেপরেটারস কমপ্যাক্ট সহ এটি পরিবর্তন করি।
তারপরে আমরা প্রথম 7 টি অক্ষর 'doIt ^' এড়িয়ে চলেছি

অবশেষে একটি স্ট্যান্ডিন ব্যবহার করে একটি 105 টি অক্ষর পরিবর্তিত হয়, কেবলমাত্র আরও মূলধারার অনুভব করার জন্য কমান্ড লাইন থেকে এই বাক্যটি ব্যাখ্যা করুন:

Pharo -headless Pharo-2.0.image eval "FileStream stdin nextLine = (thisContext method decompileString withSeparatorsCompacted allButFirst: 7)"

4

নমনীয় - 312 অক্ষর

Q \"
N \n
S " "
B \\
P "Q{S}{B}{Q}{N}N{S}{B}n{N}S{S}{Q}{S}{Q}{N}B{S}{B}{B}{N}P{S}{Q}{P}{Q}{N}M{S}{Q}{M}{Q}{N}%%{N}{P}{N}{M}{N} putchar('1');"
M "(.|{N})* putchar('0');"
%%
Q{S}{B}{Q}{N}N{S}{B}n{N}S{S}{Q}{S}{Q}{N}B{S}{B}{B}{N}P{S}{Q}{P}{Q}{N}M{S}{Q}{M}{Q}{N}%%{N}{P}{N}{M}{N} putchar('1');
(.|{N})* putchar('0');

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

সংকলন আদেশ: flex id.l && gcc -lfl lex.yy.c



3

জাভাস্ক্রিপ্ট (ভি 8), 35

function i(){alert(prompt()==i+[])}

কল i()এবং এটি ইনপুট জন্য অনুরোধ জানানো হবে


+[]ঐচ্ছিক জাতীয় করবে স্বয়ংক্রিয়-টাইপ-cast যেমন হওয়া উচিত
Downgoat

3

গল্ফস্ক্রিপ্ট - 26

":@;[34]@+2*=":@;[34]@+2*=

Http://esolangs.org/wiki/GolfScript# উদাহরণ থেকে অনুপ্রাণিত

অন্য সংস্করণ:

"[34].@@;+2*="[34].@@;+2*=

খুব খারাপ যে \অদলবদল এবং পালানো উভয়ই ...


3

পাইথন 2, 47 বাইট

_='_=%r;print _%%_==input()';print _%_==input()

যুক্ত চেক সহ একটি সহজ কুইন।


এটি কাজ করে না। printপাইথন ৩. একটি ফাংশনটি print(_%%_==input())';print(_%_==input())আপনাকে পাইথন ২ এ করতে হবে বা এটি পরিবর্তন করতে হবে
মেগো

3

সিজেম , 12 বাইট

{s"_~"+q=}_~

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

ব্যাখ্যা

এটি কেবলমাত্র স্ট্যান্ডার্ড সিজেএম কুইন ফ্রেমওয়ার্ক ব্যবহার করে।

{s"_~"+q=}    e# Push this block (function literal).
          _~  e# Copy and run it.

ব্লকটি কী করে:

 s            e# Stringify the top element (this block itself).
  "_~"+       e# Append "_~". Now the source code is on the stack.
       q      e# Read the input.
        =     e# Check if it equals the source code.

আমার ঠিক এই সমাধানটি ছিল _
Esolanging ফল



2

পাইথন, 187 বাইট

import sys;code="import sys;code=!X!;print(sys.stdin.read()==code.replace(chr(33),chr(34)).replace(!X!,code,1))";print(sys.stdin.read()==code.replace(chr(33),chr(34)).replace("X",code,1))

শেষদিকে নতুন লাইন যুক্ত না করা সতর্ক। পাইথন-ফু সহ আরও ভাল কেউ এটি সংক্ষিপ্ত করতে সক্ষম হতে পারে।


2
আপনি C=chrকয়েকটি বাইট ড্রপ ব্যবহার করতে পারেন । এছাড়াও, পরিবর্তনশীল নামটি সংক্ষিপ্ত করুন code
জাচ গেটস 3

2
যেহেতু কেউ এক বছর ধরে এটি বলেনি, পিপিসিজিতে আপনাকে স্বাগতম!
এরিক আউটগল্ফার

2

হুশ , 11 বাইট

=hS+s"=hS+s

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

ব্যাখ্যা

ব্যাখ্যাটি ¨স্ট্রিংগুলি সীমিত করতে ব্যবহার করে (অপঠনযোগ্য পলায়ন এড়াতে):

     "=hS+s  -- string literal: ¨=hS+s¨
  S+         -- join itself with
    s        -- | itself "showed": ¨"=hS+s"¨
             -- : ¨=hS+s"=hS+s"¨
 h           -- init: ¨=hS+s"=hS+s¨
=            -- is the input equal?

ফাংশনটি সরিয়ে =আপনি যাচাই করতে পারবেন যে এটি সত্যই কেবল উত্সের সাথে মেলে।




2

05 এ বি 1 ই , 15 বাইট

0"D34çýQ"D34çýQ

যোগ করে ডিফল্ট 0"D34çý"D34çý করে Q(অন্তর্ভুক্ত সাথে সাম্যের জন্য পরীক্ষা করুন)

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

ব্যাখ্যা:

0                # Push 0 to the stack
                 #  STACK: [0]
 "D34çýQ"        # Push the string 'D34çýQ' to the stack
                 #  STACK: [0, 'D34çýIå']
         D       # Duplicate this string
                 #  STACK: [0, 'D34çýIå', 'D34çýIå']
          34ç    # Push '"' to the stack
                 #  STACK: [0, 'D34çýIå', 'D34çýIå', '"']
             ý   # Join the stack by this '"' delimiter
                 #  STACK: ['0"D34çýIå"D34çýIå']
              Q  # Check if it's equal to the (implicit) input
                 # (and output the top of the stack implicitly as result)

@ গ্রিমির দ্বারা সরবরাহিত কুল 15 বাইট বিকল্প :

187745012D27BJQ

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

ব্যাখ্যা:

187745012        # Push integer 187745012 
                 #  STACK: [187745012]
         D       # Duplicate it
                 #  STACK: [187745012, 187745012]
          27     # Push integer 27
                 #  STACK: [187745012, 187745012, 27]
            B    # Convert 187745012 to base-27
                 #  STACK: [187745012, "D27BJQ"]
             J   # Join the values on the stack together
                 #  STACK: ["187745012D27BJQ"]
              Q  # Check if it's equal to the (implicit) input
                 # (and output the top of the stack implicitly as result)

3
187745012D27BJQএকটি টাই
গ্রিমি

1

সি - 186 176 টি অক্ষর

এক রৈখিক:

 *a="*a=%c%s%c,b[999],c[999];main(){sprintf(b,a,34,a,34);gets(c);putchar(strcmp(b,c)?'0':'1');}",b[999],c[999];main(){sprintf(b,a,34,a,34);gets(c);putchar(strcmp(b,c)?'0':'1');}

শ্বেত স্পেস সহ (নোট করুন এটি প্রোগ্রামটি ভেঙে দেয়):

*a="*a=%c%s%c,b[999],c[999];main(){sprintf(b,a,34,a,34);gets(c);putchar(strcmp(b,c)?'0':'1');}",b[999],c[999];
main() {
  sprintf(b,a,34,a,34);
  gets(c);
  putchar(strcmp(b,c)?'0':'1');
}




1

রুনিক , 11 বাইট

"3X4+kSqi=@

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

টিআইও আপডেট হয়ে গেছে এবং আর কোনও সমস্যা পড়ার ইনপুট নেই and

ব্যাখ্যা

>                 Implicit entry
 "                Begin reading as string
  3X4+kSqi=@      Pushed to the stack as a string, loop around
 "                End reading as string
  3X4+            Push 3*10 and 4 to the stack, add them together
      k           Convert to character (")
       S          Swap the top two items on the stack
        q         Concatenate. This leaves only "3X4+kSqi=@ on the stack
         i        Read input
          =       Compare using .Equals, push 1 if equal, else 0
           @      Print and terminate

জোকিংয়ের সমাধান:

"'<~qi=@|

ব্যাখ্যা

  <              Entry
 '               Read character (loop around)
"                Push "
         |       Mirror
"                Begin reading string (loop around)
 '<~ri=@|        Push the string '<~qi=@| (loop around)
"                End reading string
 '<~             Push the character < and then discard it
    q            Concatenate, stack contains only "'<~qi=@|
      i          Read input
       =         Compare
        @        Print and terminate


@ জোকিং খুব চালাক
ড্রাকো 18

প্রকৃতপক্ষে, 9 বাইটগুলিr এভারস এড়ানো হয়
জো কিং

@ জোকিং আমার সম্ভবত এটি পৌঁছে দিতে সক্ষম হওয়া উচিত (10 বাইট সমাধান থেকে) নিজেই পৌঁছাতে পেরেছিলেন তবে এখনও আমার কাফিটি পাননি। আমি গতকালই ইতিমধ্যে কাজ করেছি যে "বামদিকে থাকা কেবল সত্যই এটি যেতে পারে is কারণ অন্য কোথাও থাকার কারণে বিষয়গুলি জটিল হয়। (তবে এখনই আমাকে এটি আমার ডিবাগারে চালাতে হয়েছিল এটি কী করছে তা দেখতে ...)
ড্রাকো 18

1

আর , 54 বাইট

f=function(s)s==paste0("f=function(s)s==", body(f)[3])

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

bodyফাংশনটির শরীর পায় (এটি কিছুটা বিভক্ত করা, যাতে এটি পরবর্তীকালে body(f)[3]সমস্ত কিছু paste0হয়)। মজার বিষয় হল, bodyকোডটি পুনরায় ফর্ম্যাট করে , কমাগুলির পরে স্পেস যুক্ত করে etc.

এটি কাজ করে কারণ body(f)টাইপের একটি অবজেক্ট languageএবং as.characterএই ধরণের জন্য একটি পদ্ধতি বিদ্যমান । অন্যদিকে, fএবং args(f)টাইপ করা হয় closure, এবং যতদূর আমি বলতে পারি চরিত্রের ধরণে রূপান্তর করা যায় না। ভাষার ধরণটি কী জন্য দয়া করে আমাকে জিজ্ঞাসা করবেন না ...


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