এই চ্যালেঞ্জের মধ্যে লক্ষ্যটি হ'ল অন লাইন এনসাইক্লোপিডিয়া অফ ইন্টিজার সিকোয়েন্সগুলি একবারে এক ক্রম পুনরায় তৈরি করা। হ্যালো ওয়ার্ল্ডের বিবর্তনের অনুরূপ , প্রতিটি উত্তর পূর্ববর্তী উত্তরের উপর নির্ভর করে।
সময়ের সাথে সাথে, এই চ্যালেঞ্জটি ওইআইএস ক্রমগুলির একটি "পারিবারিক গাছ" তৈরি করবে। এই গাছে যুক্ত করা সহজ।
- পূর্ববর্তী উত্তরটি সন্ধান করুন যা গাছের যে কোনও গভীরতায় এন হতে পারে।
- উত্তরটির ক্রম দ্বারা উত্পন্ন প্রথম এন সংখ্যাগুলি নির্ধারণ করুন।
- ওইআইএস-এ একটি ক্রম সন্ধান করুন যা সেই একই সংখ্যার সাথে শুরু হয় এবং যা আগে ব্যবহার করা হয়নি।
- আপনি সদ্য পাওয়া এই নতুন ক্রমটি তৈরি করতে একটি প্রোগ্রাম লিখুন।
- আপনার উত্তর গভীরতা এন + 1 হিসাবে জমা দিন
যেহেতু আপনার উত্তর স্তরটি স্কোরকে প্রভাবিত করে, তাই আপনার উত্তরটি সর্বদা গভীরতম স্তরে আপনার গাছে যুক্ত করা উচিত। আপনি যদি নিজের উত্তরটি গাছের কোথাও ফিট করতে না পারেন তবে আপনি গাছের একটি নতুন শাখা শুরু করতে পারেন এবং উত্তরটি গভীরতা 1 হিসাবে রাখতে পারেন।
উত্তর প্রয়োজনীয়তা
সিকোয়েন্স আউটপুট করার কয়েকটি উপায় রয়েছে।
প্রথম বিকল্পটি এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হয় যা কোনও নম্বর (এসটিডিআইএন থেকে বা একটি আর্গুমেন্ট হিসাবে) ইনপুট করে এবং আপনার নির্বাচিত অনুক্রমের মধ্যে নবম সংখ্যাটি প্রদান করে। আপনি ধরে নিতে পারেন যে অনুক্রমটি এন এর জন্য সংজ্ঞায়িত হবে এবং এন এবং এস_এন "যুক্তিসঙ্গত আকারের" (যাতে এটি উপচে পড়বে না)। আপনি যে কোনও যুক্তিসঙ্গত সূচীও ব্যবহার করতে পারেন, যেমন 0 সূচক, 1 সূচক, বা অনুক্রমের OEIS পৃষ্ঠায় "অফসেট" এর অধীনে তালিকাবদ্ধ সূচক, তাতে কোনও সমস্যা নেই। প্রথম সূচক দ্বারা উত্পাদিত শব্দটি অবশ্যই ওইআইএস প্রবেশের প্রথম শর্তের সাথে মেলে।
দ্বিতীয় বিকল্পটি হ'ল এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা একটি নম্বর দেয় এবং সিকোয়েন্সের প্রথম এন পদগুলি দেয়। আউটপুটটির প্রথম শর্তগুলি অবশ্যই ওইআইএস এন্ট্রির প্রথম শর্তাদি হওয়া উচিত (আপনি প্রথম কয়েকটি শর্ত ছেড়ে দিতে পারবেন না)। ধারাবাহিক শর্তাদি অ-অঙ্কের অক্ষরের ইচ্ছামত স্ট্রিং দ্বারা সীমিত করা উচিত, সুতরাং 0,1 1.2/3,5;8,11
কাজ করে তবে 011235811
গণনা হয় না but
তৃতীয় বিকল্পটি এমন একটি প্রোগ্রাম তৈরি করা যা সংখ্যার ধারাবাহিক প্রবাহকে আউটপুট করে। একইভাবে দ্বিতীয় বিকল্পের জন্য, অবশ্যই টানা শর্তাবলীর মধ্যে ডিলিমিটার থাকতে হবে।
আপনার উত্তরে স্ট্যাক স্নিপেট পার্সিং সহায়তা করতে এই জাতীয় শিরোনাম থাকা উচিত :
# [language], [number] bytes, depth [number], A[new sequence] from A[old sequence]
আপনার উত্তরে ক্রম উত্পন্ন করার জন্য কোডটি থাকা উচিত, সাথে সাথে কোনও বংশধরদের প্রথম কয়েকটি শর্ত থাকতে হবে। এই কয়েকটি শব্দের সঠিক শব্দের আগেterms:
হওয়া উচিত যাতে নিয়ামক এগুলি গাছের চিত্রের অংশ হিসাবে ব্যবহার করতে পারেন। আপনি যে ক্রমটি বেছে নিয়েছেন তার বিবরণ লিখতেও সুপারিশ করা হয়।
যদি আপনার পোস্টটির গভীরতা 1 উত্তর হয় এবং এর কোনও পূর্বপুরুষ from A[number]
না থাকে তবে আপনার শিরোনামের মধ্যে কেবল এটি বাদ দেওয়া উচিত ।
এখানে একটি উদাহরণ উত্তর:
# Perl, 26 bytes, depth 3, A026305 from A084912
various code here
and here
The next answer should match the following terms:
1, 4, 20
This sequence is .... and does ....
শেইনিং প্রয়োজনীয়তা
এই চ্যালেঞ্জটিকে আরও সুষ্ঠু করার জন্য, এমন কোনও বিধিনিষেধ রয়েছে যাতে কোন উত্তর আপনি নিজেরে চেইন করতে পারেন। এই নিয়মগুলি বেশিরভাগই একক ব্যক্তিকে নিজে গাছের একটি সম্পূর্ণ শাখা তৈরি করতে বা প্রচুর "মূল" নোডের মালিক হতে বাধা দেয়।
- আপনি নিজেকে চেইন করতে পারবেন না।
- আপনি নিজের পূর্বসূরীর কাছে দুটি উত্তর সরাসরি চেইন করতে পারবেন না।
- আপনি একাধিক "স্তর 1" উত্তর দিতে পারবেন না।
এছাড়াও, পূর্বপুরুষ যদি গভীরতা N এর হয়ে থাকেন তবে প্রয়োজনীয় সংখ্যার চেয়ে বেশি শর্তাদি সম্মত হলেও আপনার পোস্টের গভীরতা N + 1 থাকতে হবে।
স্কোরিং
একজন ব্যবহারকারী হিসাবে আপনার স্কোর হ'ল আপনার সমস্ত উত্তরগুলির স্কোরের যোগফল । একক উত্তরের স্কোর নিম্নলিখিত সূত্র দ্বারা নির্ধারিত হয়:
Answer Score = Sqrt(Depth) * 1024 / (Length + 256)
এই স্কোরিং সিস্টেমটি ব্যবহারকারীদের প্রচুর গভীর উত্তর জমা দিতে উত্সাহিত করবে। সংক্ষিপ্ত উত্তরগুলি দীর্ঘতর উত্তরের চেয়ে বেশি পছন্দ করা হয় তবে গভীরতার অনেক বেশি প্রভাব রয়েছে।
নীচে একটি স্ট্যাক স্নিপেট যা লিডারবোর্ড তৈরি করে পাশাপাশি সমস্ত উত্তরগুলির একটি ট্রি ডায়াগ্রাম তৈরি করে। আমি এই কোডের অনেকটির জন্য উত্স হিসাবে মার্টিন বাটনার এবং ডি 3 ননবকে ধন্যবাদ জানাতে চাই । সম্পূর্ণ ফলাফলগুলি দেখতে আপনার "পূর্ণ স্ক্রিন" এ ক্লিক করা উচিত।
function answersUrl(t){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+t+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(t){answers.push.apply(answers,t.items),t.has_more?getAnswers():process()}})}function shouldHaveHeading(t){var e=!1,r=t.body_markdown.split("\n");try{e|=/^#/.test(t.body_markdown),e|=["-","="].indexOf(r[1][0])>-1,e&=LANGUAGE_REG.test(t.body_markdown)}catch(a){}return e}function shouldHaveScore(t){var e=!1;try{e|=SIZE_REG.test(t.body_markdown.split("\n")[0])}catch(r){}return e}function getAuthorName(t){return t.owner.display_name}function decodeEntities(t){return $("<textarea>").html(t).text()}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.reverse();var t={},e=[],r=1,a=null,n=1,s=[];answers.forEach(function(t){var r=t.body_markdown.split("\n")[0],a=getAuthorName(t),n=r.match(SEQUENCE_REG)[0];n=n.trim();var o="from A000000";PARENT_REG.test(r)&&(o=r.match(PARENT_REG)[0]),o=o.substring(5).trim(),"A000000"==o&&(o="OEIS");var i="";SEQDATA_REG.test(t.body_markdown)&&(i=t.body_markdown.match(SEQDATA_REG)[1]);for(var u=!0,c=0;c<e.length;++c)u=u&&!(e[c]===n);for(var l=!0,c=0;c<e.length;++c)l=!(!l||e[c]===n||e[c]===n+a||e[c]===o+a);e.push(n),e.push(n+a),e.push(o+a),u&&data.push({name:n,parent:o,term:i+" : ",author:decodeEntities(a),URL:t.share_link}),l&&s.push(t)}),answers.sort(function(t,e){var r=t.body_markdown.split("\n")[0].match(SEQUENCE_REG),a=e.body_markdown.split("\n")[0].match(SEQUENCE_REG);return a>r?-1:r>a?1:void 0}),answers.forEach(function(e){var o=e.body_markdown.split("\n")[0],i=(o.match(NUMBER_REG)[0],(o.match(SIZE_REG)||[0])[0]),u=parseInt((o.match(DEPTH_REG)||[0])[0]).toString(),c=o.match(SEQUENCE_REG)[0],l="from A000000";PARENT_REG.test(o)&&(l=o.match(PARENT_REG)[0]),l=l.substring(5);var d=o.match(LANGUAGE_REG)[1];d.indexOf("]")>0&&(d=d.substring(1,d.indexOf("]")));for(var p=getAuthorName(e),E=!1,h=0;h<s.length;++h)E=E||s[h]===e;if(E){var f=jQuery("#answer-template").html();i!=a&&(n=r),a=i,++r;var m=1024*Math.pow(parseInt(u),.5)/(parseInt(i)+256);f=f.replace("{{SEQUENCE}}",c).replace("{{SEQUENCE}}",c).replace("{{NAME}}",p).replace("{{LANGUAGE}}",d).replace("{{SIZE}}",i).replace("{{DEPTH}}",u).replace("{{LINK}}",e.share_link),f=jQuery(f),jQuery("#answers").append(f),t[p]=t[p]||{lang:d,user:p,size:"0",numanswers:"0",link:e.share_link},t[p].size=(parseFloat(t[p].size)+m).toString(),t[p].numanswers=(parseInt(t[p].numanswers)+1).toString()}});var o=[];for(var i in t)t.hasOwnProperty(i)&&o.push(t[i]);o.sort(function(t,e){return parseFloat(t.size)>parseFloat(e.size)?-1:parseFloat(t.size)<parseFloat(e.size)?1:0});for(var u=0;u<o.length;++u){var c=jQuery("#language-template").html(),i=o[u];c=c.replace("{{RANK}}",u+1+".").replace("{{NAME}}",i.user).replace("{{NUMANSWERS}}",i.numanswers).replace("{{SIZE}}",i.size),c=jQuery(c),jQuery("#languages").append(c)}createTree()}function createTree(){function t(){var t=i.nodes(root).reverse(),e=i.links(t);t.forEach(function(t){t.y=180*t.depth});var r=c.selectAll("g.node").data(t,function(t){return t.id||(t.id=++o)}),a=r.enter().append("g").attr("class","node").attr("transform",function(t){return"translate("+t.y+","+t.x+")"});a.append("a").attr("xlink:href",function(t){return t.URL}).append("circle").attr("r",10).style("fill","#fff"),a.append("text").attr("x",function(){return 0}).attr("y",function(){return 20}).attr("dy",".35em").attr("text-anchor",function(){return"middle"}).text(function(t){return t.term+t.name}).style("fill-opacity",1),a.append("text").attr("x",function(){return 0}).attr("y",function(){return 35}).attr("dy",".35em").attr("text-anchor",function(){return"middle"}).text(function(t){return t.author}).style("fill-opacity",1);var n=c.selectAll("path.link").data(e,function(t){return t.target.id});n.enter().insert("path","g").attr("class","link").attr("d",u)}var e=data.reduce(function(t,e){return t[e.name]=e,t},{}),r=[];data.forEach(function(t){var a=e[t.parent];a?(a.children||(a.children=[])).push(t):r.push(t)});var a={top:20,right:120,bottom:20,left:120},n=3203-a.right-a.left,s=4003-a.top-a.bottom,o=0,i=d3.layout.tree().size([s,n]),u=d3.svg.diagonal().projection(function(t){return[t.y,t.x]}),c=d3.select("body").append("svg").attr("width",n+a.right+a.left).attr("height",s+a.top+a.bottom).append("g").attr("transform","translate("+a.left+","+a.top+")");root=r[0],t(root)}var QUESTION_ID=49223,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",data=[{name:"OEIS",parent:"null",term:"",author:"",URL:"https://oeis.org/"}],answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*,)/,DEPTH_REG=/\d+, A/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/,SEQUENCE_REG=/A\d+/,PARENT_REG=/from\s*A\d+/,SEQDATA_REG=/terms:\s*(?:(?:-)?\d+,\s*)*((?:-)?\d+)/;
body{text-align: left !important}#answer-list{padding: 10px; width: 550px; float: left;}#language-list{padding: 10px; width: 290px; float: left;}table thead{font-weight: bold;}table td{padding: 5px;}.node circle{fill: #fff; stroke: steelblue; stroke-width: 3px;}.node text{font: 12px sans-serif;}.link{fill: none; stroke: #ccc; stroke-width: 2px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="http://d3js.org/d3.v3.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id="answer-list"> <h2>Sequence List</h2> <table class="answer-list"> <thead> <tr> <td>Sequence</td><td>Author</td><td>Language</td><td>Size</td><td>Depth</td></tr></thead> <tbody id="answers"></tbody> </table></div><div id="language-list"> <h2>Leaderboard</h2> <table class="language-list"> <thead> <tr> <td>Rank</td><td>User</td><td>Answers</td><td>Score</td></tr></thead> <tbody id="languages"></tbody> </table></div><table style="display: none"> <tbody id="answer-template"> <tr> <td><a href="https://oeis.org/{{SEQUENCE}}">{{SEQUENCE}}</a></td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td>{{DEPTH}}</td><td><a href="{{LINK}}">Link</a> </td></tr></tbody></table><table style="display: none"> <tbody id="language-template"> <tr> <td>{{RANK}}</td><td>{{NAME}}</td><td>{{NUMANSWERS}}</td><td>{{SIZE}}</td></tr></tbody></table>