কুইনে একটি বাইনারি কাউন্টার লিখুন


10

দুটি কোড টুকরো লিখুন, যাকে আমরা s_zero এবং s_one বলব।

প্রোগ্রাম (এল, এন) এর বাইনারি এন এর অঙ্কের সাথে s_zero এবং s_one এর l কপি রয়েছে, বাম দিকে s_zero দিয়ে প্যাড করা।

উদাহরণস্বরূপ, যদি s_zero = fooএবং s_one = barতবে
প্রোগ্রাম (4, 0) = foofoofoofoo
প্রোগ্রাম (4, 1) = foofoofoobar
প্রোগ্রাম (4, 2) = foofoobarfoo
ইত্যাদি

প্রোগ্রাম (এল, এন) অবশ্যই স্ট্যান্ডার্ড আউট করার জন্য প্রোগ্রামের উত্স (l, (n + 1) মোড (2 ^ l)) প্রিন্ট করতে হবে। উপরের উদাহরণে, মৃত্যুদন্ড কার্যকর করার সময় foobarfoofooঅবশ্যই মুদ্রণ করতে হবে foobarfoobar

আপনার স্কোরটি s_zero এবং s_one টুকরাগুলির দৈর্ঘ্যের যোগফল


কোডগল্ফ.স্টাকেকেক্সচেঞ্জ / সেকশনস / 35974 /… এর নকলের নিকটে - 2 টি আলাদা কোড ব্লক সহ কোনিং প্রোগ্রামের মাধ্যমে গণনা করা।
ফেয়ারসুম

প্রোগ্রামটি কি তার নিজস্ব উত্স কোডটি পড়তে পারে?
ডুরকনব

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

সহজ কাজের সুবিধাটি হ'ল এটি এ পর্যন্ত দেখা হতবাক সংক্ষিপ্ত উত্তরগুলি তৈরি করতে প্রতিযোগিতাকে উত্সাহ দেয় I আমি আশা করি যে এই চ্যালেঞ্জটিকে আলাদা হিসাবে ন্যায্যতা জানায়!
QuadmasterXLII

1
সম্ভবত s_zero এবং s_one আলাদা হতে হবে তা লক্ষণীয়। অন্যথায় আমার কাছে 2 * এন স্কোর সহ অনেকগুলি সমাধান রয়েছে।
এলোমেলো

উত্তর:


6

সিজেম, 29 + 29 = 58 বাইট

0 কোড:

0{"_~"]]z(3\+2b(2b2>a\+z~[}_~

1 কোড:

1{"_~"]]z(3\+2b(2b2>a\+z~[}_~

ব্যাখ্যা

0                       " Push the current bit. ";
{"_~"                   " The basic quine structure. ";
    ]                   " Make an array of the current bit, the function and _~.
                          That is the code fragment itself. ";
    ]                   " Make an array of all code fragments in the stack. ";
    z(                  " Extract the array of the bits. ";
    3\+2b(2b2>          " Convert from base 2, decrease by one and convert back,
                          keeping the length. ";
    a\+z                " Put the bits back to the original position. ";
    ~                   " Dump the array of code fragments back into the stack. ";
    [                   " Mark the beginning position of the array of the next code fragment. ";
}_~

2
প্রতি একক সময় ...
অপ্টিমাইজার

3

সিজেম, 47 + 47 = 94 বাইট

0 কোড:

{`"_~"+]:+T2*0+:T)\AsSerS/_,(@2Y$#+2bU@->]zs}_~

1 কোড:

{`"_~"+]:+T2*1+:T)\AsSerS/_,(@2Y$#+2bU@->]zs}_~

এক্সপ্লিটিভ ক্ষমা করুন।

আমি নিশ্চিত যে আমি এখনও সেখানে কয়েকটি বাইট ছাঁটাই করতে পারি। আমি একবারে একটি ব্যাখ্যা যুক্ত করব যে আমি সিদ্ধান্ত নিয়েছি যে আমাকে আর গল্ফ নিয়ে বিরক্ত করা যাবে না।

এটি এখানে পরীক্ষা করুন।



1

গল্ফস্ক্রিপ্ট, 37 + 37 = 74 বাইট

0{`".~"+:q;]-2%1\{1$^.@&q@}%\;-1%~}.~
1{`".~"+:q;]-2%1\{1$^.@&q@}%\;-1%~}.~

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

আমার সমাধান সরাসরি বিদ্যমান সমাধানের কোনো ভিত্তিক নয় (এবং প্রকৃতপক্ষে, আমি বিস্তারিতভাবে তাদের পরীক্ষা আছে না আমি এখনও CJam খুব ভাল পড়া না), কিন্তু তারা সব বৈশিষ্ট্য একই মূল quine গঠন রুপভেদ ( {".~"}.~মধ্যে গল্ফস্ক্রিপ্ট, {"_~"}_~সিজেমে)। এটি সত্যিই খুব অবাক হওয়ার মতো নয়, যেহেতু মনে হয় এই ভাষাগুলিতে একটি স্বেচ্ছাসেবক পেওড সহ একটি কুইন লেখার সবচেয়ে কার্যকর উপায় ways

এই কোডটির বেশ কয়েকটি অংশ রয়েছে যা আমি সত্যিই পছন্দ করি না এবং আমার সন্দেহ হয় যে এটি আরও গল্ফ করা সম্ভব হতে পারে তবে আমি এটিতে এটিতে অনেক বেশি সময় ব্যয় করেছি।

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