গল্ফ একটি আনগ্রামগ্রাম কুইন


24

ইন এই প্রশ্নের আমি একজন কোনো শব্দ বা শব্দগুচ্ছের অক্ষরগুলিকে এদিক-ওদিক করে গঠিত শব্দ বা শব্দগুচ্ছ তার আউটপুট উপর ভিত্তি করে quine অনুমান করতে আপনাকে জিজ্ঞাসা। তবে দেখে মনে হচ্ছে আমাদের কাছে এখনও কোনও ইনস্টাগ্রাম কুইন গল্ফ করতে জিজ্ঞাসা করা হয়নি। সুতরাং আপনার কাজটি হ'ল আপনার পক্ষে যতটা সম্ভব সংক্ষিপ্ততম অ্যানগ্রামের কুইন তৈরি করা হবে।

একটি এনগ্রামের কুইন কী?

একটি অ্যানগ্রামগ্রাম কুইন হ'ল একটি খালি প্রোগ্রাম যা মূল উত্স ব্যতীত অন্য কোনও উত্স কোডের একটি এনট্রাম প্রিন্ট করে।

পাইথন 2-তে একটি এনগ্রামগ্রাম কুইনের উদাহরণ এখানে রয়েছে:

print`'`print`*2'*2`

এই চ্যালেঞ্জের জন্য আপনার নিজের উত্সটি পড়া উচিত নয়।


2
@LeakyNun না, এটা করতে পারবে না একটি quine হও।
গম উইজার্ড

2
আউটপুটযুক্ত কোডটি কি কোনও বৈধ প্রোগ্রাম হতে হবে?
এমডি এক্সএফ

1
@ এমডিএক্সএফ এটি করেন না।
গম উইজার্ড

2
@ ওএক্সএক্স এটি কুইনের জন্য আমাদের স্ট্যান্ডার্ড প্রয়োজনীয়তাগুলি অনুসরণ করা উচিত (এটি কুইন হওয়া ব্যতীত)।
গম উইজার্ড

1
@ লেকিউন আপনার মনে আছে, আমি মনে করি না 0-বাইট প্রোগ্রামগুলিতে অ্যানগ্রগ্রাম রয়েছে যা মূল থেকে পৃথক!
নিল

উত্তর:


29

পাইথ , 2 বাইট

)(

আউটপুট

()

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

)  # Ends statement, does nothing in this program
 ( # Create an empty tuple
   # Implicitly print the empty tuple

3
মানে কি আপনি আবিষ্কার যে ()একটি quine চেয়ে অনেক খাটো সুপরিচিত jN*2]"jN*2] ?
জিম

1
@ জিম না, কারণ এটি পেলড-সক্ষম নয়: সি
রড

9

ভি , 4 বাইট

2ii2

আউটপুট:

i2i2

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



1
হাঁ। 2 -> do the next thing twice i -> insert the following
রিলে

আহ আমি দেখছি, আমি ভিম ভেবেছিলাম।
গম উইজার্ড

@ ওয়েট উইজার্ড নাপ, এটি স্ট্যান্ডার্ড ভি কুইনের একটি তুচ্ছ পরিবর্তন ification
রিলে

1
@ আইস্যাচজি: না, ভিমের মধ্যে আপনার শেষ হয়ে গেলে আপনাকে ESC টিপতে হবে, এটি একটি সমস্যা কারণ আউটপুটটিতে কোনও ইসি চরিত্র নেই।

9

> <> , 9 8 7 বাইট

গল্ফড 1 বাইট ধন্যবাদ @ ওয়েট উইজার্ডকে !এটি ব্যবহার করার জন্য এবং বাড়িয়ে দেওয়ার জন্য ধন্যবাদ thanks"

গল্ফড 1 বাইট #পরিবর্তে ব্যবহার করে @ কনরও'ব্রায়েনকে ধন্যবাদ জানায়<!

":1->o#

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

আউটপুটস "#o>-1:

ব্যাখ্যা

":1->o#"        Push this string (note that the IP wraps around)
:               Duplicate the top value of the stack (35 from the "#")
1-              Subtract one from it to get 34 ('"')
>o#             Print every character on the stack until the program cannot pop any more and still tries to pop a value from the stack afterwards
                The program exits with an error from not being able to pop a value from an empty stack

":1+>o<!কিছুটা খাটো
গম উইজার্ড

@ ওয়েট উইজার্ড ধন্যবাদ, এটি একটি ঝরঝরে গল্ফ ছিল :)
ক্রিটসি লিথোস

1
আপনি 7 বাইট পেতে পারেন:":1->o#
কনর ও'ব্রায়ান

@ কনোরো ব্রায়ান টিপটির জন্য ধন্যবাদ, এটি সত্যই চালাক।
ক্রিটিকি লিথোস

ধন্যবাদ :) আমি আনন্দিতভাবে
কনর

9

ব্রেইনফাক, 158 বাইট

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

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

এটি সংক্ষিপ্ততম সংস্করণ নাও হতে পারে তবে কমপক্ষে এটি কাজ করে।

মজার সত্য , আউটপুট কোডটি আসলে কার্যকর করা যেতে পারে (এবং এটি সমাপ্ত হয়)।

আউটপুট

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

ব্যাখ্যা

>>--<<-[[<+>->+>->+++<<<]>-]    Initializes the tape with the
                                help of a recurrence relation.
<<<<<<[--->>.<<]>>++<<<[->>>
.<<<]>>-<<<[--->>>.<<<]>>>--    Prints the characters using
<<<<[++>>>>.<<<<]>>>>+++>--.    classic loops.
[---<.>]>+.......++.......

<<<>>>>>>>>>-----+++            Junk to complete the anagram.

8

পাইথন 3, 32 বাইট

প্রিন্ট ( "" "পি" r "বা আমি" এন "টি" 2 ( ") *" "" * 2)

প্রিন্ট p"r"i"n"t"2(")*p"r"i"n"t"2(")*\n, সাজানো আউটপুট:\n""""""""""""(())**22iinnpprrtt


ওহো, পুরানো সংস্করণ :(
ক্যালকুলেটরফাইন

1
@Downvoter অনুগ্রহ করে অনুগ্রহ করে।
ক্যালকুলেটরফলাইন

7

রুবি , 8 বাইট

p"p*2"*2

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

এই মুদ্রণ

"p*2p*2"

ব্যাখ্যা

এটি প্রশ্নের অজগর উত্তরের মতো কাজ করে। এটি স্ট্রিংটি তৈরি করবে p*2p*2রুবি ব্যবহার pকরে স্ট্রিংয়ের উপস্থাপনা মুদ্রণ করবে।


এর pবদলে আপনি ব্যবহার করতে পারবেন puts?! এত সময় নষ্ট করা ...
ম্যাজিক অক্টোপাস উরন

4
@ কারাসোকম্পুটিং এটি পুটের মতো একই জিনিস নয়। p xসমানputs x.inspect
কনর ও'ব্রায়ান

6

জাভাস্ক্রিপ্ট (ES6), 40 32 বাইট

f=($=`($)=>{$=$+"${"``"}$"}`)=>$+$

ফাংশন.টোস্ট্রিংয়ের সাথে কোনও গোলযোগ নেই। বোনাস হিসাবে, স্ট্রিংয়ের কোডটি প্রায় আইনী দেখায়। সম্পাদনা করুন: এর +পরিবর্তে ব্যবহার করে 8 বাইট সংরক্ষণ করা হয়েছে repeat(2)


1
*2পরিবর্তে ব্যবহার করবেন .repeat(2)না, কাজ করে না?
যাদু অক্টোপাস উরন

1
@ কারাসোকম্পুটিং জাভাস্ক্রিপ্ট *স্ট্রিংগুলির জন্য ওভারলোড হয় না
কনর ও'ব্রায়ান

1
@ কারাসোকম্পুটিং যা আমাকে ধারণা দিয়েছে, ধন্যবাদ!
নিল


4

জাপট , 10 9 বাইট

একটি ভাল উপায় পাওয়া গেছে :-)

Q+2ç"Q+2ç

আউটপুটস "Q+2çQ+2çএটি অনলাইন পরীক্ষা!

ব্যাখ্যা

Q+2ç"Q+2ç    // Implicit: Q = quotation mark
    "Q+2ç    // Take this string.     Q+2ç
  2ç         // Repeat it twice.      Q+2çQ+2ç
Q+           // Prepend a quote.      "Q+2çQ+2ç
             // Implicit: output result of last expression

হতে পারে Qi2ç"Qi2ç, যা মুদ্রণ Qi2çQi2ç"। এটি মানক জাপট কুইনের কাছাকাছি:

"iQ ²"iQ ²

তবে আমি বিশ্বাস করি না যে 9-বাইট কুইনের জন্য স্ট্রিংয়ের মাঝখানে উদ্ধৃতি চিহ্নটি আটকে দেওয়ার কোনও সহজ উপায় আছে।


আরেকটি 10-বাইটার:Q+"+Q² " ²
কনর ও'ব্রায়ান

@ কনরোও ব্রায়েন হ্যাঁ, এবং আপনি সর্বদা ২৪ টি সম্ভাব্য ক্রমান্বয়ে প্রতিটি স্ট্রিংয়ের অভ্যন্তরে 4 টি অক্ষর সাজিয়ে রাখতে পারেন। এছাড়াও আমি বিশ্বাস করি যে আপনি উভয় স্থানকে সর্বদা নতুন
লাইনের

3

রুবি, 20 বাইট

$><<%q($><<%q()*2)*2

এই ফলাফল

$><<%q()*2$><<%q()*2

রুবির %q(...)স্ট্রিং সিনট্যাক্সের সুবিধা গ্রহণ করা , যা নেস্টেড প্রথম বন্ধনী সমর্থন করে।


3

রেটিনা , 8 বাইট


_

$nn$

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

ছাপে


n$_
n$

উভয় একটি _, দুটি n, দুটি থাকে$ এবং তিনটি লাইনফিড ।

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

ব্যাখ্যা


_

একটি দিয়ে খালি ইনপুট প্রতিস্থাপন করুন _


$nn$

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

আমরা n$n$এই পর্যায়েও ব্যবহার করতে পারি , যা পরে মুদ্রণ করবে:

n
$_n
$


3

পাইথন রিপ্লেল, 4 বাইট

এটি আমার প্রথম কোড গল্ফ সমাধান, তাই আমি আশা করি এটি বিধিগুলি পূরণ করে। পাইথন 2 বা 3 ইন্টারেক্টিভ দোভাষী:

>>> (1),
(1,)

আউটপুট হ'ল ইনপুটটির একটি অ্যানগ্রাম।


আরেকটি:

>>> 2*'2*'
'2*2*'

পাইথন 2 এ:

>>> type('rst <>'),
(<type 'str'>,)

পাইথন 3 এ:

>> {1, 0}
{0, 1}

আপডেট 2017-06-15: আরও একটি:

>>> 01.
1.0

1
আমার মনে হয় এখানে শেষ উত্তরটি কুইন বিধি লঙ্ঘন করেছে (আউটপুটে সমস্ত অক্ষর ইনপুটটিতে মিলের অক্ষর হিসাবে একই উদ্দেশ্যে পরিবেশন করে)। যদিও অন্যরা ভাল আছেন।

2

হাস্কেল , 38 39 বাইট

main=print$[0,0]>>"main=print$[0,0]>>"

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

"main=print$[0,0]>>main=print$[0,0]>>"

সম্পাদনা করুন: +1 বাইট কারণ আমি এর পূর্বে অন্তর্নিহিত ট্রেলিং নিউলাইনটি সম্পর্কে ভুলে গিয়েছিলাম print


বিকল্প: (একই বাইট গণনা কিন্তু ASCII- পেঁচা থাকে না)

main=print$e++e;e="main=print$e++e;e="

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

আউটপুট:

"main=print$e++e;e=main=print$e++e;e="

সত্যিকারের কুইনের চেয়ে সবে মাত্র একটি এনগ্রাম কুইন ....
ফেদারক্রাউন

2

গ্রোভী, 24 20 বাইট

{"""{""*""2""}"""*2}

-4 ক্যালকুলেটরফালিনকে ধন্যবাদ, সাদা স্থানের পরে আর প্রয়োজন হয়নি!

আউটপুট:

{""*""2""}{""*""2""}

ব্যাখ্যা:

নামবিহীন বন্ধ, যখন ডাকা হয়, তখন {""*""2""}দুবার ফিরে আসে (সম্মিলিত)।


1
দয়া করে ব্যাখ্যা এছাড়াও, বাইটগুলি (সম্ভবত) *2উদ্ধৃতিগুলির মধ্যে প্যাডিং হিসাবে ব্যবহার করে সংরক্ষণ করা যেতে পারে :{"""{""*""2""}"""*2}
ক্যালকুলেটরফলাইন

পছন্দ করুন তবে হ্যাঁ, এটি আমার চেয়ে <s> 100% </s> 9% ভাল ধারণা।
ম্যাজিক অক্টোপাস উরন

3
প্রকৃতপক্ষে, এটি কেবল 9% ভাল: পি
ক্যালকুলেটরফালাইন

2

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

'∞∞''∞'JJ∞

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

আউটপুট:

∞∞''JJ''∞∞

ব্যাখ্যা:

Code       | Explanation                | Stack
-----------+----------------------------+-------------------
'∞         | Push literal '∞'.          | ["∞"]
  ∞        | Mirror.                    | ["∞∞"]
   ''      | Push literal "'".          | ["∞∞","'"]
     ∞     | Mirror.                    | ["∞∞","''"]
      'J   | Push literal 'J'.          | ["∞∞","''","J"]
        J  | Join it all together.      | ["∞∞''J"]
         ∞ | Mirror.                    | ["∞∞''JJ''∞∞"]
-----------+----------------------------+-------------------
           | Implicit print.            | ∞∞''JJ''∞∞


1

বাশ, 36 বাইট

tee f<<<'tee f<<<""cat f'"''"
cat f

এই ফলাফল

tee f<<<""cat f''
tee f<<<""cat f''

(এবং fপার্শ্ব প্রতিক্রিয়া হিসাবে ফাইলটি তৈরি করে তবে এটি প্রতি মেটা অনুমোদিত ))

প্রোগ্রাম এবং আউটপুট উভয়েরই একটি নতুন ট্র্যাকিং রয়েছে।

চিন্তার প্রক্রিয়া: আমি বুঝতে পেরেছি যে স্ট্রিংটিকে ভেরিয়েবলের জন্য নির্ধারণ করা বাদ দিয়ে দু'বার আউটপুট আদানের সহজ উপায়টি হ'ল

tee f<<<string
cat f

স্ট্রিংটির উদ্ধৃতি দেওয়া দরকার কারণ এটিতে ফাঁকা স্থান এবং <অক্ষর থাকবে তাই আমার ছিল had

tee f<<<'tee f<<<cat f'
cat f

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




1

বেফুঞ্জ, 11 বাইট

' 2+">:#,_@

ছাপে:

+2 '@_,#:>"

ব্যাখ্যা:

' 2+"        Put a " on the stack (32 + 2)
    "        Put the rest of the code on stack (wrap-around string)
     >:#,_   Print stack
          @  End

হ্যাঁ। কিন্তু তাই না "। হুবহু তার উপর বাধা কী?
মেগাটম

আমি মনে করি না যে "এটি পড়ার নিজস্ব উত্স হিসাবে বিবেচিত হয়, এটি কেবল একটি স্ট্রিং আক্ষরিক। gতবে এটি খুব উত্সাহজনকভাবে তার নিজস্ব উত্স পড়ছে।
গম উইজার্ড

@ উইট উইজার্ড ঠিক আছে। আমি এটা পরিবর্তন করব।
মেগাটম

":1+>:#,_@!এছাড়াও কাজ করে কিন্তু এটি খাটো হয় না।
গম উইজার্ড

' 2+"8k,@9 বাইটের জন্য
ovs

1

কিউবিআইসি , 8 বাইট

?A+@?A@+

আমি শুধু মূর্ত আউট কিভাবে QBIC একটি সঠিক quine না। এটির বাইরে একটি অ্যানোগ্রাম তৈরি করা কেবল স্ট্রিং অক্ষরে অক্ষরের চারপাশে স্যুইচ করে। এইভাবে 24 টি সম্ভাব্য অ্যানাগ্রাম রয়েছে।





1

বিভাজন 2 , 9 8 6 বাইট

R"'!+O

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

ব্যাখ্যা

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

(প্রকৃতপক্ষে, এটি সংক্ষিপ্ততম কুইনের একটি ঘূর্ণন)


আমি বিশ্বাস করি আপনি কেবলমাত্র স্ট্যান্ডার্ড কুইনটি ব্যবহার করতে পারেন এবং এটি চক্রাকারে স্থানান্তর করতে পারেন (সুতরাং এর মতো কিছু R"'!+O, অনির্ধারিত)।
মার্টিন ইন্ডার

@ মার্টিনএেন্ডার: ঠিক বলেছেন। আপডেট করা হয়েছে। সাহায্য করার জন্যে ধন্যবাদ.
লুক

1

গণিত, 2 বাইট

.0

আউটপুট:

0.

দশমিক বিন্দু দিয়ে শুরু হওয়া সংখ্যার .123যেমন ব্যাখ্যা করা হয় 0.123, তেমনি .0ব্যাখ্যা করা হয় 0.0। দশমিক বিন্দুর পরে সংখ্যার অংশটি শূন্য হওয়ায় গণিতিকা এটি মুদ্রণ করে না।


1
আমি এটি বৈধ মনে করি না। আমাদের সাইটের সংজ্ঞা প্রয়োজন যে কুইনগুলিতে একটি "এনকোডার" এবং "ডিকোডার" থাকতে পারে, এটি কেবল আক্ষরিক ধরণের কুইনে নিষিদ্ধ করে।
গম উইজার্ড

Quines জন্য সমস্ত নিয়ম এই চ্যালেঞ্জ গ্রহণ করে।
গম উইজার্ড

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

@ ais523 আমি জানি না। সম্ভবত এটি একটি মেটা প্রশ্ন দ্বারা সমাধান করা উচিত।
গম উইজার্ড



1

স্ট্যাক্স , 8 4 বাইট

.S.S

চালান এবং অনলাইন ডিবাগ!

এই উত্তরের একটি সরাসরি বন্দর ।

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

..b..LbL

চালান এবং অনলাইন ডিবাগ!

একটি দুর্দান্ত সস্তা ট্রিক সহ বিকল্প সংস্করণ যা প্রায় কোনও ভাষায় যথাযথ কুইনে প্রয়োগ করা যেতে পারে।

"43bL"34bL

চালান এবং অনলাইন ডিবাগ!

কারণ "34bL"34bLস্ট্যাক্সে একটি যথাযথ কুইন।

তবুও অন্য সংস্করণ, শুধুমাত্র একক-চর স্ট্রিং লিটারাল ব্যবহার করে।

''c'Lc'cccLcLL

চালান এবং অনলাইন ডিবাগ!

ব্যাখ্যা

.S.S        Generates powerset ["","S","S.","."]
            Implicit flatten and output

..b         Push string ".b"
   ..L      Push string ".L"
      b     Duplicate both strings
       L    Concatenate all 4 strings to a single one.

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