থি-মোর্স ক্রমটি লিখুন


22

এই সাইটে বেশ কয়েকটি চ্যালেঞ্জ রয়েছে যা আপনাকে একটি অনুক্রম মুদ্রণ করতে বলে, এবং এটি ব্যতিক্রম নয়।

(এই চ্যালেঞ্জ জন্য ক্রম নীচের ব্যাখ্যা অনুমান ক্রমানুসারে প্রতীক 0এবং 1।)

থু-মুরস ক্রমের পুনরাবৃত্ত সংজ্ঞাটি এটি

T_0 = 0
T_2n = T_n
T_2n+1 = 1 - T_n

আরও একটি সরাসরি সংজ্ঞা হ'ল ক্রমটি বাইনারি পরিপূরক থেকে 0আসে 2**m-1and 2**m to 2**(m+1)-1সুতরাং 0অনুসরণ করা হয় 1, 01অনুসরণ করা হয় 10, 0110অনুসরণ করা হয় 1001, এবং, কিছুটা এগিয়ে স্কিপিং, 0110100110010110অনুসরণ করা হয় 1001011001101001

চ্যালেঞ্জটি হ'ল এমন একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যা প্রথম উপাদানগুলির জন্য থু-মোর্স ক্রমটি প্রিন্ট করে n, যেখানে nকোনও অ-নেতিবাচক পূর্ণসংখ্যা থাকে। আউটপুট যে কোনও দুটি চিহ্ন ব্যবহার করতে পারে, যেমন নীচের উদাহরণগুলিতে দেখানো হয়েছে।

উদাহরণ

>>> tm_01(20)
01101001100101101001
>>> tm_ab(42)
abbabaabbaababbabaababbaabbabaabbaababbaab
>>> tm_paren(37)
())()(())(()())()(()())(())()(())(()(
>>> tm_space_star(12)
 ** *  **  *
>>> tm_01(0)
                # to show that this is a valid input

বিধি

  • ইনপুটটি কোনও অ-নেতিবাচক পূর্ণসংখ্যার হবে। আপনি সমস্ত ইনপুটগুলি বৈধ বলে ধরে নিতে পারেন।

  • nসুবিধাজনক যে কোনও চিহ্ন ব্যবহার করে আউটপুট অবশ্যই থু-মর্স ক্রমের প্রথম উপাদান হতে হবে । আপনি যদি চান তবে আপনি একটি বিভাজকও যুক্ত করতে পারেন। আমার উদাহরণগুলিতে, আমি না। নোট: যেমন এই নিয়ম (পাইথন মত) অনুমতি দেয় তালিকা, ,একটি বৈধ বিভাজক এবং আমি যেমন বিশিষ্ট বা লম্বা অক্ষর, কিছু মনে না করেন [এবং ]আউটপুটে।

  • এটি কোড গল্ফ, তাই বাইটের মধ্যে ক্ষুদ্রতম সংখ্যা।

সর্বদা হিসাবে, সমস্যাটি যদি অস্পষ্ট হয় তবে দয়া করে আমাকে জানান। শুভকামনা এবং ভাল গল্ফিং!

তালিকা

var QUESTION_ID=65549;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var OVERRIDE_USER=47581;var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=true,comment_page;function answersUrl(index){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(index,answers){return"http://api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=false;comment_page=1;getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){data.items.forEach(function(c){if(c.owner.user_id===OVERRIDE_USER)answers_hash[c.post_id].comments.push(c)});if(data.has_more)getComments();else if(more_answers)getAnswers();else process()}})}getAnswers();var SCORE_REG=/<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;var OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(a){return a.owner.display_name}function process(){var valid=[];answers.forEach(function(a){var body=a.body;a.comments.forEach(function(c){if(OVERRIDE_REG.test(c.body))body='<h1>'+c.body.replace(OVERRIDE_REG,'')+'</h1>'});var match=body.match(SCORE_REG);if(match)valid.push({user:getAuthorName(a),size:+match[2],language:match[1],link:a.share_link,});else console.log(body)});valid.sort(function(a,b){var aB=a.size,bB=b.size;return aB-bB});var languages={};var place=1;var lastSize=null;var lastPlace=1;valid.forEach(function(a){if(a.size!=lastSize)lastPlace=place;lastSize=a.size;++place;var answer=jQuery("#answer-template").html();answer=answer.replace("{{PLACE}}",lastPlace+".").replace("{{NAME}}",a.user).replace("{{LANGUAGE}}",a.language).replace("{{SIZE}}",a.size).replace("{{LINK}}",a.link);answer=jQuery(answer);jQuery("#answers").append(answer);var lang=a.language;lang=jQuery('<a>'+lang+'</a>').text();languages[lang]=languages[lang]||{lang:a.language,lang_raw:lang.toLowerCase(),user:a.user,size:a.size,link:a.link}});var langs=[];for(var lang in languages)if(languages.hasOwnProperty(lang))langs.push(languages[lang]);langs.sort(function(a,b){if(a.lang_raw>b.lang_raw)return 1;if(a.lang_raw<b.lang_raw)return-1;return 0});for(var i=0;i<langs.length;++i){var language=jQuery("#language-template").html();var lang=langs[i];language=language.replace("{{LANGUAGE}}",lang.lang).replace("{{NAME}}",lang.user).replace("{{SIZE}}",lang.size).replace("{{LINK}}",lang.link);language=jQuery(language);jQuery("#languages").append(language)}}
body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="language-list"> <h2>Shortest Solution by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr> </thead> <tbody id="languages"> </tbody> </table> </div> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr> </thead> <tbody id="answers"> </tbody> </table> </div> <table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table>



1
সহজ কথায় আপনি বলতে পারেন: ফাংশনটি পুনরাবৃত্ত হয়, ইনপুটটিকে অস্বীকার করে এটি যুক্ত করে।
ইউমেল


2
@ পিটারটেলর কীভাবে? লিঙ্কযুক্ত প্রশ্নের একটি সম্ভাব্য উত্তর হ'ল থু-মর্স ক্রম, তবে এই প্রশ্নটি থু-মোর্স উত্পন্ন করা এবং অন্য কিছুই নয়।
শার্লক 9

1
কারণ পূর্ববর্তী প্রশ্নের কয়েকটি উত্তর তুচ্ছ পরিবর্তন সহ এই প্রশ্নের উত্তর দিতে ব্যবহার করা যেতে পারে এবং এই প্রশ্নের সমস্ত উত্তরই তুচ্ছ পরিবর্তন সহ পূর্ববর্তী প্রশ্নের উত্তর দিতে ব্যবহার করা যেতে পারে।
পিটার টেলর 19

উত্তর:


14

পাইথ, 6 বাইট

xMjR2Q

অনলাইনে চেষ্টা করুন: বিক্ষোভ

@ থমাসকওয়া থেকে সমাধান এবং @ ফ্রাইআমডেইজিগম্যানের পরিবর্তনের ভিত্তিতে।

নিম্নলিখিত formular ব্যবহার করে: iThue-জলহস্তী ক্রমানুসারে -th অঙ্ক হল: xor(digits of i in base 2)

ব্যাখ্যা:

xMjR2Q   implicit: Q = input number
  jR2Q   convert each number in [0, 1, ..., Q-1] to its binary digits
xM       xor each binary list

9

সিজেম, 17 9 বাইট

ri{2b:^}/

অথবা

ri,2fb::^

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

ব্যাখ্যা

এটি 1বাইনারি উপস্থাপনায় s এর সংখ্যার সমতার ভিত্তিতে উইকিপিডিয়ায় প্রদত্ত বিকল্প সংজ্ঞাটি ব্যবহার করে n

ri   e# Read input and convert to integer n.
{    e# For each i from 0 to n-1...
  2b e#   Convert i to base 2.
  :^ e#   Fold XOR over the bits to compute the parity of the number of 1s.
}/

বিকল্প সমাধান ব্যবহার করে ,চালু করতে nএকটি সীমার মধ্যে স্পষ্টভাবে [0 ... n-1]একটি ব্লক ছাড়াই বাইনারি উপস্থাপনা এবং XOR যাও গনা পোতা অপারেটার ব্যবহার করার আগে।

বোনাস সমাধান

অন্যান্য সংজ্ঞা ভিত্তিক কিছু সমাধান এখানে দেওয়া হল। যদি দুটি সমাধান থাকে তবে সংক্ষিপ্ততর একটি খুব দ্রুত স্মৃতিটিকে উড়িয়ে দেবে (কারণ পূর্বনির্মাণটি কাটানোর 2^nআগে বিট উত্পন্ন করে n)।

সাথে এল-সিস্টেম হিসাবে 0 --> 01এবং 1 --> 10:

ri_2mL2,\{2,aA+f=s:~}*<
ri_2,\{2,aA+f=s:~}*<

পূর্ববর্তী অংশটিকে উপেক্ষা করে এবং সংযোজন করে:

ri_2mL2,\{_:!+}*<
ri_2,\{_:!+}*<

চ্যালেঞ্জে প্রদত্ত পুনরাবৃত্তির সম্পর্কটি ব্যবহার করে divmodএবং দুটি পুনরাবৃত্ত সংজ্ঞাগুলির মধ্যে পার্থক্য করার জন্য এক্সওআর ব্যবহার করে :

ri{Ta{2md\j^}j}/

(যদিও, অবশ্যই, এই পুনরাবৃত্তির সম্পর্কটি বাইনারি উপস্থাপনায় 1-বিটের সমতা হিসাবে থু-মুর্স ক্রমটি প্রকাশ করার এক অন্যরকম উপায় n))


মেমোরি-অপব্যয়যুক্ত সমাধানটি আমার প্রথম চিন্তাও ছিল, তবে আমি আধা টেরাবাইট মেমরির আউটপুট গণনা করতে 42(বিটসেট ধরে ধরে) বেশ অযৌক্তিক হতে পারব বলে মনে করি।
জন

@ জন সমস্যা সমাধান হয়েছে। ;)
মার্টিন এন্ডার

:^আমাকে সুখী করে. আরেকটি নোটে, পবিত্র বোকা, এটি একটি দুর্দান্ত অ্যালগরিদম।
মনিকা এর মামলা মামলা

@ কিপ্যায়েটেক্সস না :^}?
TheLethalCoder

1
@TheLethalCoder যা আমাকে খুশি করে
ফান্ড মনিকার

8

ডায়ালগ এপিএল, 8 7 বাইট

≠⌿⍴∘2⊤⍳

এটি একটি মোনাডিক ট্রেন যা 0 ( ⎕IO←0) এর সূচক উত্সটি আশা করে । সমান নন-ট্রেনের কাজ {≠⌿(⍵⍴2)⊤⍳⍵}

ব্যাখ্যা:

      ⍳      List of numbers from 0 to (input-1)
  ⍴∘2        (input) copies of 2
     ⊤       Convert all the elements in ⍳ to base 2 to (input) digits
≠⌿           Reduce over the first axis by not-equal

আউটপুট একটি স্থান বিভাজিত তালিকা 0এবং 1এখানে চেষ্টা করুন


8

গণিত, 35 21 বাইট

ম্যাথমেটিকায় থি-মোর্স ক্রমের জন্য একটি অন্তর্নির্মিত রয়েছে!

Array[ThueMorse,#,0]&

আসল উত্তর:

#&@@@DigitCount[Range@#-1,2]~Mod~2&

7

ল্যাবভিউ, 15 ল্যাবভিউ পুরষ্কার

একটি তদন্ত সঙ্গে সুপার অভিনব gif হিসাবে এখন

এখানে চিত্র বর্ণনা লিখুন


3
এটি কীভাবে পরীক্ষা করা হবে তা আপনি ব্যাখ্যা করতে পারেন?
ডেস্ক 2'15

বিকল্প 1: ল্যাবভিউ পরীক্ষার সংস্করণ পান এবং এটি পুনর্নির্মাণ করুন, বিকল্প: আমি আপনাকে কীভাবে .exe বা .vi হিসাবে প্রেরণ করতে পারি তার একটি উপায় প্রস্তাব করুন (পরবর্তীটির জন্য আপনাকে ল্যাবভিউও পেতে হবে)
ইউমেল

1
সত্যিই আমি দেখতে চাই যে এটি যখন চালায় তখন এটি কীভাবে আচরণ করে। একটি জিআইএফ রেকর্ডিং উদাহরণস্বরূপ হতে পারে?
জন

যে দুর্দান্ত ধারণা আমি সবেমাত্র তা করেছি এবং এটি এক সেকেন্ডে শেষ করব
ইউমেল

6

জে, 12 11 বাইট

@ মার্টিনব্যাটনার একটি বাইট সংরক্ষণ করেছেন।

~:/@#:"0@i.

এটি একটি monadic (যার অর্থ অ্যানারি) রয়েছে যা নিম্নলিখিত হিসাবে ব্যবহৃত হয়:

   f =: ~:/@#:"0@i.
   f 10
0 1 1 0 1 0 0 1 1 0

ব্যাখ্যা

আমি বিকল্প সংজ্ঞাটি ব্যবহার করছি যে টি এন এন এর বাইনারি উপস্থাপনায় 1-বিটের সংখ্যার সমতা।

~:/@#:"0@i.  Input is n.
~:/          Output is XOR folded over
   @#:       the binary representations of
      "0     each element of
        @i.  integers from 0 to n-1.

{.(,-)^:]কিছু নিয়ম প্রসারিত ( যা অনুমোদিত ) এর সাথে 9 বাইটের জন্য কাজ করে । যেমন 5এটি আউটপুট জন্য 5 _5 _5 5 _5। (বিধি বিস্তৃত হওয়ার কারণে শুধুমাত্র একটি মন্তব্য হিসাবে যুক্ত করা হয়েছে))
এলোমেলোভাবে

4

পাইথ, 11 10 বাইট

m%ssM.Bd2Q

পাইথন-শৈলীর তালিকা হিসাবে আউটপুট।


আমি বাইনারি স্ট্রিংয়ের মাধ্যমে এক্সওআর ব্যবহার করার চেষ্টা করেছি, তবে পাইথ সম্পর্কে এটি করার জন্য আমি প্রায় যথেষ্ট জানি না। এটি যাইহোক অনেক ছোট। +1
ইটিএইচ প্রোডাকশনগুলি

@ ফ্রাইআম দ্য এজিগম্যান আহ, আমি F'হ্রাস' করার জন্য অনুসন্ধান করেছি বলে আমি জানতাম না । আপনি সিডব্লিউ হিসাবে পোস্ট করতে পারেন ...
lirtosiast

4

জাপট , 29 11 বাইট

Uo ®¤¬r@X^Y

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

সরাসরি অ্যারে হিসাবে আউটপুট, যা প্রায় 4 বাইট সংরক্ষণ করে।

অবহেলিত এবং ব্যাখ্যা

Uo ®   ¤  ¬ r@  X^Y
Uo mZ{Zs2 q rXY{X^Y}}
        // Implicit: U = input number
Uo      // Create an array of integers in the range `[0, U)`. 
mZ{Zs2  // Map each item Z in this range to Z.toString(2),
q rXY{  //  split into chars, and reduced by
X^Y}}   //   XORing.
        //  This returns (number of 1s in the binary string) % 2.
        // Implicit: output last expression

সম্পাদনা করুন: আপনি এখন নিম্নলিখিত 8-বাইট কোড ব্যবহার করতে পারেন (বৈধ নয়; এই চ্যালেঞ্জের পরে প্রকাশিত বৈশিষ্ট্য):

Uo ®¤¬r^

আপনি আপনার ব্যাখ্যাটি আপডেট করতে চাইতে পারেন
Eumel

এমিউল আমি ইতিমধ্যে করেছি ...?
ETH প্রোডাকশনগুলি

আপনার বর্ণিত কোড এবং উপরের কোডটি অন্যরকম দেখাচ্ছে
18'৩ এ ইউয়েল

@ ইউমেল, এটি আরও ভাল?
ETH প্রোডাকশনগুলি

নিখুঁত thats :)
Eumel

4

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

take<*>(iterate([id,(1-)]<*>)[0]!!)

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

এটি কীভাবে কাজ করে: ফাংশন সময় দিয়ে শুরু করুন [0]এবং প্রয়োগ করুন । ফলাফলের তালিকা থেকে প্রথম উপাদানগুলি নিন । হাস্কেলের অলসতার জন্য ধন্যবাদ শুধুমাত্র প্রথম উপাদানগুলি আসলে গণনা করা হয়। দ্রষ্টব্য: প্রথমটি ফাংশন প্রসঙ্গে, তালিকার প্রসঙ্গে দ্বিতীয়।x ++ invert xnnn<*>

জিএইচসি ভি 8.4 দিয়ে (যা চ্যালেঞ্জের সময়ে পাওয়া যায়নি) এখানে 34 বাইট সমাধান রয়েছে:

take<*>(iterate(id<>map(1-))[0]!!)

সম্পাদনা করুন: -3 রেস। -4 বাইট @ লাইকনি ধন্যবাদ। -1 বাইট @ অর্জান জোহানসেনকে ধন্যবাদ।


(\x->x++map(1-)x)জিএইচসি 8.4 ([id,(1-)]<*>)বা এর (id<>map(1-))সাথে সংক্ষিপ্ত করা যেতে পারে ।
লাইকনি

take<*>(iterate([id,(1-)]<*>)[0]!!)
janrjan জোহানসেন

3

হাস্কেল, 54 বাইট

নিমির সমাধানের চেয়ে কম কমপ্যাক্ট, তবে আমি আপনাকে এই ক্রিয়াকলাপ কোড অবলম্বন অস্বীকার করতে চাইনি। কোন জোড়া বস্তুর জন্য কাজ করে; যেমন আপনি (f 0.f 1)দ্বারা প্রতিস্থাপন করতে পারেন (f 'A'.f 'B')

সংজ্ঞা উপর ভিত্তি করে যে প্রথম 2 এন সংখ্যাগুলি একই সংখ্যার উল্টো উল্টানো অনুসরণ করে। আমরা যা করি তা পাশাপাশি দুটি তালিকা তৈরি করা; ক্রমের জন্য একটি, বিপরীত জন্য একটি। ধারাবাহিকভাবে আমরা অন্য তালিকার ক্রমবর্ধমান দীর্ঘ অংশগুলি যুক্ত করি।

বাস্তবায়নের তিনটি সংজ্ঞা রয়েছে:

t=(f 0.f 1)t
f c=flip take.(c:).g 1
g n l=l n++g(n+n)l

ফাংশন tযে কোনও সংখ্যা গ্রহণ করে এবং সেই দৈর্ঘ্যের থু-মর্স ক্রমটি প্রদান করে। অন্য দুটি ফাংশন হলেন সহায়ক।

  • ফাংশন fহয় উভয় তালিকা প্রতিনিধিত্ব করে; বিপরীত জন্য f 0ক্রম f 1জন্য হয়।
  • ফাংশন gএকটি তালিকার অন্য তালিকার ক্রমবর্ধমান দীর্ঘ পুনরাবৃত্তি সংযোজনের যত্ন নেয়।

উচ্চারণ: http://goo.gl/wjk9S0



2

বারলেস্কু, 21 বাইট

{0}{J)n!_+}400E!jri.+

উদাহরণ:

blsq ) "20"{0}{J)n!_+}400E!jri.+
{0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1}
blsq ) "42"{0}{J)n!_+}400E!jri.+
{0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1}

ব্যাখ্যা:

{0}      -- setup
{J)n!_+} -- duplicate, map invert, concatenate
400E!    -- do 400 times (this will eventually run
            out of memory).
jri.+    -- take n elements

jri.+অংশটি ছাড়াই আপনি মেমরির বাইরে চলে যাবেন (কারণ এটি দৈর্ঘ্যের মোর্সের ক্রমটি অবিশ্বাস্যভাবে বিশাল সংখ্যার গণনা করবে )। তবে যেহেতু বারলেস্কে অলস মাত্র প্রথম এন-এলিমেন্টের জন্য জিজ্ঞাসা করা যাই হোক না কেন কাজ করবে।


খুশী হলাম। আমার হাস্কেল সমাধানের মতো। তবে, একটি বাইট সংরক্ষণ করতে আমি কেবল 99 বার পুনরাবৃত্তি করি।
নিমিম

2

কে 5, 27 13 বাইট

{x#((log x)%log 2){x,~x}/0}

ক্রম গণনা করা বেশ সহজ, সমস্যা খুব বেশি কম্পিউটিং এড়ানো হচ্ছে। আমরা চিনতে পারি যে ক্রমের সহজ প্রসারণটি আমাদেরকে স্ট্রিংয়ের ক্রম দেয় যা দৈর্ঘ্যের দুটি ক্রমাগত শক্তি। ইনপুটটির লগ বেস 2 গ্রহণ এবং গোল করা আমাদের সাথে কাজ করার জন্য যথেষ্ট পরিমাণে দেবে এবং তারপরে আমরা এটিকে উপযুক্ত আকারে কাটাতে পারি:

  {x#((log x)%log 2){x,~x}/0}'(20 42 37 12 0)
(0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1
 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1
 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0
 0 1 1 0 1 0 0 1 1 0 0 1
 ())

সম্পাদনা:

সমতা ভিত্তিক সমাধান:

~=/'(64#2)\'!

কর্মে:

  ~=/'(64#2)\'!20
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1

নোট করুন যেহেতু কে 5-তে একটি নির্বিচারে রূপান্তর-থেকে-বাইনারি আদিম নেই আমাকে নির্দিষ্ট করতে হবে, উদাহরণস্বরূপ, একটি 64-বিট ডিকোডিং। কে 5 নির্বিচারে নির্ভুল গণিত ব্যবহার করে না, তাই যে কোনও ক্ষেত্রে আমরা যে পরিমাণ পরিস্থিতিতে মোকাবেলা করতে পারি তার আকারের সীমা থাকবে।


2

অক্টাভা, 33 31 বাইট

টমাস কোওয়া ধন্যবাদ 2 বাইট সংরক্ষণ করা।

@(n)mod(sum(dec2bin(0:n-1)'),2)

2

পার্ল 5, 62 49 বাইট

হ্যাঁ, এটির জন্য সেরা ভাষা নয়, তবে এখনও এটি যেভাবে বের হয়েছে তা আমি পছন্দ করি। জন্য 5.14+ প্রয়োজন /rএবং say

sub{$_=0;$_.=y/01/10/r while$_[0]>length;say substr$_,0,$_[0]}

সমতা সংজ্ঞাটি ব্যবহার করে এর জন্য 5.12+ প্রয়োজন say:

sub{say map{sprintf("%b",$_)=~y/1//%2}0..$_[0]-1}

2

প্রোলোগ (এসডাব্লুআই), ১১৮ বাইট

কোড:

N*X:-N>1,R is N//2,R*Y,X is(N mod 2)xor Y;X=N.
p(N):-M is N-1,findall(E,between(0,M,E),L),maplist(*,L,K),write(K).

ব্যাখ্যা:

N*X:-                                 % Calculate Thue-Morse number at index N
     N>1,                             % Input is bigger than 1
     R is N//2,R*Y,X is(N mod 2)xor Y % Thue-Morse digit at index N is binary digits of N xor'ed
     ;X=N.                            % OR set X to N (end of recursion)
p(N):-
      M is N-1,                       % Get index of Nth number
      findall(E,between(0,M,E),L),    % Make a list of number 0->N-1
      maplist(*,L,K),                 % Map * on list L producing K
      write(K).                       % Print K

উদাহরণ:

p(20).
[0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1]

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


2

রেটিনা , 70 69 বাইট

প্রাথমিক শব্দ 0এবং প্রোডাকশন সহ এল-সিস্টেম হিসাবে সংজ্ঞাটি ব্যবহার করে 0 --> 01এবং 1 --> 10

^
0;
(T`d`ab`^(.)+;(?!(?<-1>.)+$)
a
01
)`b
10
!`^(?=.*;(.)+)(?<-1>.)+

ইনপুট আনারিতে নেওয়া হয়

আপনি -sপতাকা সহ একটি ফাইল থেকে কোড চালাতে পারেন । বা শুধু অনলাইনে চেষ্টা করে দেখুন।

ব্যাখ্যা

^
0;

ইনপুটতে প্রস্তুত 0;করে, 0প্রাথমিক শব্দটি কোথায় এবং ;কেবল একটি বিভাজক।

(T`d`ab`^(.)+;(?!(?<-1>.)+$)

(ইঙ্গিত দেয় যে এটি একটি লুপ (যা না হওয়া পর্যন্ত লুপ স্ট্রিং পরিবর্তন স্টপ পুনরাবৃত্ত হয়) শুরুতে হয়। এই পর্যায়ে নিজেই সক্রিয় 0এবং 1মধ্যে aএবং bযথাক্রমে (কারণ dবিস্তৃতি করার 0-9)। এটি বর্তমান শব্দ হিসাবে এটি দীর্ঘায়িত করে (যার দৈর্ঘ্যের সাথে পরিমাপ করা (.)+হয় ইনপুটের চেয়ে কম হয় (অর্থাত্ যতক্ষণ আমরা 1শব্দটিতে থাকা আমাদের সাথে যতগুলি মিলিয়ে স্ট্রিংয়ের শেষটি পড়তে পারি না )।

a
01

এর সাথে প্রতিস্থাপন করুন a(স্ট্যান্ড-ইন 0) 01

)`b
10

এর সাথে প্রতিস্থাপন করুন b(স্ট্যান্ড-ইন 1) 10। এটিও লুপের শেষ। লিপ্য লিখনের পর্যায়ে শর্তটি ব্যর্থ হলে লুপটি বন্ধ হয়ে যায়, কারণ এরপরে সমস্ত 0গুলি এবং 1অপরিবর্তিত থাকবে এবং অন্য দুটি স্তরের কোনও মিল খুঁজে পাবে না।

!`^(?=.*;(.)+)(?<-1>.)+

শেষ পদক্ষেপটি শব্দটিকে ইনপুটটির দৈর্ঘ্যে ছাঁটাই করা হয়। এবার আমরা (.)+লুকোহেড দিয়ে ইনপুটটির দৈর্ঘ্য পরিমাপ করি । তারপরে আমরা স্ট্রিংয়ের শুরু থেকে অনেকগুলি অক্ষর মেলে।


2

রুবি, ৩৩

->n{n.times{|i|p ("%b"%i).sum%2}}

এভাবে কল করুন:

f=->n{n.times{|i|p ("%b"%i).sum%2}}
f[16]

বাইনারি সংখ্যার সমতা থুই-মর্স ক্রম গঠন করে তা ব্যবহার করে।

পৃথককারী চরিত্রটি নতুন লাইন। নম্বর রূপান্তর করেi একটি বাইনারি স্ট্রিংয়ে , তারপরে সমস্ত ASCII কোডের যোগফল গণনা করে, মডুলো 2।

যদি নিউলাইনটি গ্রহণযোগ্য বিভাজক না হয় তবে নিম্নলিখিত 2 টি অতিরিক্ত বাইটের জন্য পৃথককারী নেই:

->n{n.times{|i|$><<("%b"%i).sum%2}}

2

এমএটিএল , 9 বাইট

এই ভাষাটি চ্যালেঞ্জের পরে তৈরি করা হয়েছিল

পদ্ধতির 1: 13 বাইট

এটি ক্রমবর্ধমান আকারের ব্লকগুলির অবহেলিত অনুলিপিগুলিকে সংযুক্ত করে ক্রম তৈরি করে।

itBFw"t~h]w:)

উদাহরণ

>> matl itBFw"t~h]w:)
> 20
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1

ব্যাখ্যা

i           % input number, say "N"
tB          % duplicate and convert to binary. Produces a vector
F           % initialize sequence to "false"
w           % swap to bring vector to top
"           % for loop. There will be at least log2(N) iterations
  t~h       % duplicate, negate, concatenate
]           % end for
w           % swap
:)          % index with vector 1, 2, ..., N

পদ্ধতির 2: 9 বাইট

এটি আলেফালফের উত্তরের মতো একই পদ্ধতির ব্যবহার করে ।

i:1-B!s2\

উদাহরণ

>> matl i:1-B!s2\
> 20
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1

ব্যাখ্যা

i           % input "N" 
:1-         % create vector 0, 1, ..., N-1
B           % convert to binary
!           % tranpose
s           % sum
2\          % modulo 2


2

জেলি , 4 বাইট

ḶB§Ḃ

নোট করুন যে এই চ্যালেঞ্জটি জেলির চেয়ে পুরানো।

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

কিভাবে এটা কাজ করে

ḶB§Ḃ  Main link. Argument: n (integer)

Ḷ     Unlength; yield [0, ..., n-1].
 B    Compute the binary representation of each integer in the range.
  §   Take the sum of each binary representation.
   Ḃ  Take the LSB of each sum.

1

মতলব, 42

আমি সত্যটি ব্যবহার করছি যে এটি শুরু এবং একই সাথে 0বর্তমান সিরিজের পরিপূরক যোগ করার পদক্ষেপটি বারবার পুনরাবৃত্তি করছে n

t=0;for k=1:input('');t=[t;~t];end;disp(t)

আপনি ডিসপ্লে টি (টি) টি টি-টন প্রতিস্থাপন করতে পারেন বলে আমার মনে হয় ...
অ্যালেক্সআর


1

বাশ, 71 66 বাইট

এই সংজ্ঞাটির ভিত্তিতে যে প্রথম 2 এন সংখ্যাগুলি একই সংখ্যার উল্টো উল্টানো অনুসরণ করে।

x=0;y=1;while((${#x}<$1));do z=$x;x=$x$y;y=$y$z;done;echo ${x::$1}

$1 প্যারামিটার হিসাবে অঙ্কের পছন্দসই সংখ্যা।

ফিডাল: http://goo.gl/RkDZIC


1

ব্যাচ, 115 + 2 = 117 বাইট

বাশ উত্তরের উপর ভিত্তি করে।

@echo off
set x=0
set y=1
set z=0
:a
set x=!x!!y!
set y=!y!!z!
set z=!x:~0,%1!
if !z!==!x! goto a
echo !z!

এস /Vব্যবহারের অনুমতি দেওয়ার জন্য অনুরোধে অতিরিক্ত অতিরিক্ত প্রয়োজন !


1

ES6, 53 বাইট

f=(i,x="0",y=1)=>x.length<i?f(i,x+y,y+x):x.slice(0,i)

পুনরাবৃত্তি লুপের চেয়ে সহজ মনে হয়েছিল।


1

পার , 8 বাইট

✶u[Σ_✶¨^

ব্যাখ্যা:

✶          parse implicit input number
 u         range [0..n-1]
  [        map:
   Σ           convert to binary
    _✶         get digit list
      ¨^       fold with xor

ফলাফল যেমন:

(0 1 1 0 1 0 0 1)

1

গণিত ++ , 86 বাইট

0.0\n0 এবং 1.0\n1 এর জন্য ব্যবহার করে

?>n
3*!!(n-m)>$
m>a
0>k
6+6*!a>$
9-2*!(a%2)>$
a/2>a
5>$
(a-1)/2>a
!k>k
5>$
k
m+1>m
2>$

1

আরসিইউ , 50 55 বাইট

এটি সঠিকভাবে কাজ করতে আমাকে 5 বাইট যুক্ত করতে হয়েছিল :(

(f i(_(#(l)))(r b^(@(> i 0)(pg 0(% i 2)(: i(#/ i 2))))0

ব্যাখ্যা (পাশ দিয়ে পাইথোনসেক সিউডোকোড সহ:

(f i (_ (# (l)))       ; For i in range(int(input())):
  (r b^                ; Reduce with binary xor
    (@ (> i 0)         ; While i > 0:
      (pg 0            ; Return first of its arguments
        (% i 2)        ; i mod 2
        (: i (#/ i 2)) ; i //= 2
      )
    )
    0                  ; Default reduce argument of 0 for the first bit in the sequence

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