Nineনবিংশতম বাইটে সর্বাধিক তারকা কে?


16

দ্রষ্টব্য: এই চ্যালেঞ্জটি HTML ওয়েবপৃষ্ঠাগুলির মাধ্যমে ডাউনলোড করা এবং পাল্টা জড়িত। যদি আপনার ভাষা এটি পরিচালনা করতে না পারে তবে আপনি এই চ্যালেঞ্জে অংশ নিতে চান না।

ভূমিকা

স্টারবোর্ডে কে নেতৃত্ব দেয় সে সম্পর্কে সর্বদা উনিশতম বাইট চ্যাটে আলোচনা হয় । সুতরাং, চ্যাটটিতে প্রতিটি ব্যবহারকারীকে মোট তারার পরিমাণ নির্ধারণ করতে এবং গণনা করতে দিন।

চ্যালেঞ্জ

একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া Nযা শূন্যের চেয়ে বড়, চ্যাটটিতে সর্বশেষ Nতারকাযুক্ত বার্তাগুলির স্টারবোর্ডের লিডার (গুলি) গণনা করুন । এই বার্তা এখানে দেখা যেতে পারে । ইঙ্গিত: প্রতিটি পৃষ্ঠায় 50 টি তারাযুক্ত বার্তা রয়েছে। আউটপুট তারকাচিহ্নিত বার্তাগুলির পরিমাণ অনুসারে শীর্ষ 5 ব্যবহারকারীর তালিকা হবে । আপনি যদি সেই ব্যবহারকারীদের ব্যবহারকারীর নাম প্রদর্শন করতে পারেন তবে আপনার বাইট গণনা ছাড়াই -15% বোনাস দেওয়া হবে তবে আপনি যদি কেবল ব্যবহারকারী আইডি নম্বর প্রদর্শন করেন তবে কোনও জরিমানা দেওয়া হবে না। দয়া করে নোট করুন যে তারকাযুক্ত কিছু বার্তায় অশ্লীলতা রয়েছে। আপনি যদি এই ধরণের ভাষার প্রতি সংবেদনশীল হন তবে সাবধানতার সাথে পৃষ্ঠাটি দেখুন।

উদাহরণ (চিত্রটি এই চ্যালেঞ্জটি লেখার মতো বর্তমান স্টারবোর্ড):

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

  • (লাল) ইনপুট: 5আউটপুট (বোনাস সহ):[Geobits Sp3000 PhiNotPi Seadrus]
  • (নীল) ইনপুট: 10আউটপুট (বোনাস ছাড়াই):[51024 17335 24697 116494 129255]
  • (গ্রীন) ইনপুট: 14আউটপুট (বোনাস ছাড়াই):[51024 116494 141697 17335 24697]

অতিরিক্ত জিনিস:

শীর্ষ 5 টিতে সর্বনিম্ন থেকে সর্বোচ্চ ব্যবহারকারীর আইডি নম্বর অনুসারে বাছাই করা হবে । যদি পাঁচটিরও কম ব্যবহারকারী থাকে তবে কেবল খালি স্লট দিয়ে লিডারবোর্ড শেষে আউটপুট করুন । ইনপুট এবং আউটপুট যে কোনও বিন্যাসে হতে পারে। আউটপুটকে মূলধনের দরকার নেই। যদি ইনপুট চেয়ে বেশী 50, আপনি কি এখনও আপনি অনুমান হতে পারে যে ইনপুট সবসময় অধীনে হতে হবে পাতা 2, পৃষ্ঠা 3, ইত্যাদি বার্তা গণনা আবশ্যক 2^31, এবং এছাড়াও তাই বড় যে এটি 1) তারকাচিহ্নিত বার্তা পরিমাণ চেয়ে বড় হবে না যে আছে এবং 2) প্রোগ্রামটি ক্র্যাশ করবে না (বড়গুলিতে অ্যারে করে, স্মৃতিশক্তি চালিয়ে যাওয়া ইত্যাদি)।

এটি , বাইট জেতে সংক্ষিপ্ততম কোড!


লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes

var QUESTION_ID=62182,OVERRIDE_USER=36670;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#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="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><div id="language-list"> <h2>Winners 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><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>


3
ধন্যবাদ। আমি এই সম্পর্কে কিছুক্ষণের জন্য অদ্ভুত কৌতূহল ছিলাম, এবং কিছু খুঁজে বের করার জন্য বিরক্ত করতে চাইনি। এখন অন্যরা এটি আমার জন্য করবে :)
জিওবিটস

11
যে কেউ জিজ্ঞাসা করার আগে, চ্যাটের কোনও অফিশিয়াল এপিআই নেই।
অ্যালেক্স এ।

ইউআরএল কি বাইট গণনায় গণনা করতে হবে? সবেমাত্র লক্ষ্য করা হয়েছে যে টিস্ক্রিপ্ট / জাভাস্ক্রিপ্টের ক্রস-অরিজিন রিসোর্স ভাগ করে নেওয়া নিয়ে সমস্যা থাকবে
ডাউনগোট

1
@ Vɪʜᴀɴ ইউরালের অংশ হিসাবে কোন অক্ষরগুলি মুছে ফেলা হবে তা বিচার করা কঠিন, আপনি কি মনে করেন প্রত্যেককে 70০ টি অক্ষর মুছে ফেলা (মোটামুটি ইউআরএলের দৈর্ঘ্য) এই সমস্যাটিতে সহায়তা করবে?
GamrCorps

1
এই অতীতে আমি অমর হয়েছি: ডি
কনর ও'ব্রায়ান

উত্তর:


11
  • ধীর হয়ে যাওয়ার জন্য আমি দুঃখিত, তবে কোডিং করার সময় তারকাচিহ্নিত বার্তাগুলি পড়া খুব হাসিখুশি ও প্রসারণকর ছিল, এটি আমার মেজাজটি এক মাস ধরে রাখতে পারত।

  • সম্পাদনা: হ্যাঁ, আমি এটি পেয়েছি, টাই এবং সদৃশ আইডির ইস্যু দুটি সুরেলাভাবে স্থির হয়েছে। কৌশলটি হ'ল পুরাতন কোডটি ইউজার-আইডগুলি তারার সংখ্যা অবতরণ করে বাছাই করে, তাই আমি আমার প্রোগ্রামের কয়েকটি লাইনটি এমনভাবে বাঁকিয়ে দিলাম যে এটি 99-n ° _ স্টার অনুসারে ব্যবহারকারীদের বাছাই করে; যেহেতু 99 শীর্ষের হিট স্টার-ক্যাপের চেয়ে বড় (আশা করি - আমি ধরেই নিয়েছি), ক্রমবর্ধমান তারার সংখ্যা বাছাইয়ের ফলে ফলাফলকে বাছাই করে একটি পাথর দিয়ে উভয় পাখিকে মেরে ফেলা হচ্ছে, আরোহী ব্যবহারকারী-আইডিসহ তারার উতরাই।

ব্রাউনরেক্লুস ,বোনাস ছাড়াই = 536 বোনাস সহ = 551-15% = 468 খ

U=New(URL);P=New(Parser);L=New(Stack);t=New(Stack);v='http://chat.stackexchange.com/rooms/info/240/the-nineteenth-byte?tab=stars&page=';j=input();a=0;for i=1to j\50+1do begin U.Location=v+i;U.get;P.Parse(U.Data);x=New(RegEx);x.Data=U.Data;x.Mask='users/(\d*)/(\S*)".*?"times">(\d*?)<';while(x.Match)and(a<j)do begin L.Push(Format('%3d%9s%s',[99-x.Value[3],x.Value[1],x.Value[2]]));a=a+1;end;end;L.sort;i=0;for each L as y do if(not y.empty)and(not t.find(y.right(y.Length-12)))and(i<5)then begin y.delete(1,12);i=i+1;t.push(y);end;output(t.join(' '));

ইনপুট

60

আউটপুট

mego rainbolt alex-a lembik v

ইনপুট

90

আউটপুট

aditsu mego rainbolt alex-a lembik

মন্তব্য

  • এই প্রোগ্রামটি (বোনাস সহ) ইউনিকোড চরিত্রগুলিকে সমর্থন করে না - দুঃখিত আমি!

  • এই প্রোগ্রামটি স্ট্যান্ডার্ড বৈশিষ্ট্যের উপর ভিত্তি করে কাজ করে যা প্রতিটি পৃষ্ঠায় প্রায় 50 টি স্ট্রাইড বার্তা ডিফল্টরূপে থাকে।

  • স্পষ্টভাবে দেখুন যে 60 এবং 90 বার্তাগুলি প্রথম দুটি পৃষ্ঠায় অন্তর্ভুক্ত রয়েছে, যদিও ফলাফলগুলি আলাদা হয়।

  • এটি যদি আপনার দখলে না থাকে তবে এই প্রোগ্রামিং ভাষার ডাউনলোড পৃষ্ঠা

  • প্রয়োজনে এটি 485 খের বোনাসহীন প্রোগ্রাম

    U=New(URL);P=New(Parser);L=New(Stack);t=New(Stack);v='http://chat.stackexchange.com/rooms/info/240/the-nineteenth-byte?tab=stars&page=';j=input();a=0;for i=1to j\50+1do begin U.Location=v+i;U.get;P.Parse(U.Data);x=New(RegEx);x.Data=U.Data;x.Mask='users/(\d*)/(\S*)".*?"times">(\d*?)<';while(x.Match)and(a<j)do begin L.Push(Format('%3d%9s',[99-x.Value[3],x.Value[1]]));a=a+1;end;end;L.sort;i=0;for each L as y do if(not y.empty)and(not t.find(y.right(y.Length-3)))and(i<5)then begin y.delete(1,3);i=i+1;t.push(y);end;output(t.join(' '));
    

ইনপুট

60

আউটপুট

169713    107051    141888     94625    116494

ইনপুট

90

আউটপুট

50454    169713    107051    141888     94625

ফলাফলগুলির মধ্যে যদি কোনও অসঙ্গতি ঘটে তবে আমার কোড দোষ দিচ্ছে না!


1
alex-aআউটপুটে কেন দুটি এস?
'18-15 এ 18

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