তুমি কেমন আছ?


20

মার্টিন একটি দুর্দান্ত স্নিপেট তৈরি করেছেন যা চ্যালেঞ্জগুলির উত্তরের জন্য স্কোরের উপর নজর রাখতে ব্যবহার করা যেতে পারে। এটি দুর্দান্ত এবং সব কিছু, তবে আপনি নিজেরাই এটি ট্র্যাক করে রাখতে পারলে ভাল হত না?

এমন একটি প্রোগ্রাম তৈরি করুন যা এই প্রশ্নের বাকী উত্তরের সাথে বাইট গণনাগুলির সাথে নিজের তুলনা করে এবং "আমি উত্তর নম্বর এন" ফিরিয়ে দিই।

নিয়মাবলী:

  • আপনার নিজের উত্তরের বাইট গণনাটি কোডটিতে হার্ডকোড করা যেতে পারে

  • ফাংশনটি ইউআরএলটিকে ইনপুট হিসাবে নিতে পারে বা এটি হার্ডকোড করা যায়। Url- এর অক্ষরগুলি বাইট গণনা অনুসারে গণনা করবে না, তাই ইউআরএল-শর্টনার ব্যবহার করার প্রয়োজন নেই।

  • উত্তরের url- ঠিকানাগুলি হার্ডকোড করা যাবে না

  • উত্তরের জন্য স্কোর শিরোনাম থেকে পাওয়া যাবে, (মার্টিনের স্নিপেট একইভাবে))

  • উত্তর শিরোনামের অবশ্যই সঠিক ফর্ম্যাট থাকতে হবে (নীচে বর্ণিত)।

  • যদি প্রোগ্রামটি অনলাইনে চালানো সম্ভব হয় তবে দয়া করে একটি অনলাইন সংকলক (অথবা একটি কোড স্নিপেট যা উত্তর থেকে কার্যকর করা যেতে পারে) এর সাথে একটি লিঙ্ক ভাগ করুন। যদি এটি সম্ভব না হয় তবে দয়া করে ফাংশনটি কীভাবে কল করতে হবে তা দেখান এবং আপনার নিজের সংকলক থেকে আউটপুট দেখান (আপনি উত্তর পোস্ট করার সময়। আপনি অবশ্যই তা না চান তবে আপনাকে আপডেট করার দরকার নেই)।

  • আপনাকে এই প্রশ্নের অন্যান্য উত্তরগুলির সাথে উত্তরটির তুলনা করতে হবে। কেবল I'm answer number 1.কোনও ভাষায় স্ক্রিপ্ট লেখা আইনী নয়।

  • অন্যান্য উত্তরের যদি আপনার নিজের মতো বাইটের সংখ্যা থাকে তবে আপনি সেগুলির মধ্যে সেরা বা খারাপ হতে চান কিনা তা বেছে নিতে পারেন।

শিরোনামটি অবশ্যই ফর্ম্যাট করা উচিত:

# Language Name, N bytes

স্ট্রাইক-থ্রি ইত্যাদি ব্যবহার করা যায় না, সুতরাং যদি কোডের আকার পরিবর্তন করা হয় তবে এটি শিরোনামের নীচে গা bold় পাঠ্যে দেখান বা অন্য কোনও উপায়ে এটি নির্দেশ করুন।

আউটপুট অবশ্যই হওয়া উচিত I'm answer number n., যেখানে নম্বরটি nঅবস্থান (নতুন লাইনের / স্থানগুলি ঠিক আছে)। সুতরাং, সংক্ষিপ্ত উত্তরটি আউটপুট দেবে: "আমি উত্তর নম্বর ১।", দ্বিতীয়টি হবে "আমি উত্তর সংখ্যা ২।" প্রভৃতি

এটি কোড গল্ফ, তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তরটি জিতবে।


অন্যান্য উত্তরের যদি আপনার নিজের মতো বাইটের সংখ্যা থাকে তবে আপনি সেগুলির মধ্যে সেরা বা খারাপ হতে চান কিনা তা বেছে নিতে পারেন। হতে পারে পোস্টের তারিখটি টাই-ব্রেকার হওয়া উচিত, সুতরাং একই নম্বর বলে দাবি করে আপনার কাছে দুটি উত্তর নেই। অথবা, আপনি যে স্ট্যান্ডার্ডটি বেঁধে রেখেছেন তা ব্যবহার করতে পারেন, তারা উভয়ই উচ্চতর স্থানের জন্য আবদ্ধ।
mbomb007

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

চ্যাট সম্পর্কে এই সম্পর্কে কথা বলা যাক।
একটি স্প্যাগেটো

ইউআরএল এর চারপাশে কোন উদ্ধৃতি গণনা করা প্রয়োজন? কিছু উত্তর বর্তমানে তাদের গণনা থেকে বাদ দেয়, অন্যরা তাদের অন্তর্ভুক্ত করে।
এইচডিভি

উত্তর:


2

পার্ল, 107 বাইট

use LWP;print"I'm answer number ",1+grep($_<107,LWP::UserAgent->new->get('http://codegolf.stackexchange.com/q/60204')->content=~/<h1>.+, (\d+)/g),'.';

সামান্য কম গল্ফড:

use LWP;
$agent = new LWP::UserAgent();
$response = $agent->get('http://codegolf.stackexchange.com/q/60204');
@answers = $response->content =~ m/<h1>.+, (\d+)/g;
print "I'm answer number ", 1+grep($_<107, @answers), '.';

নমুনা ব্যবহার

$ perl my_rank.pl
I'm answer number 1.

7

পাইথন 2, 145 বাইট

from requests import*
print"I'm answer number %s."%(sorted([int(a["body"].split(",")[1].split()[0])for a in get('http://api.stackexchange.com/2.2/questions/60204/answers?pagesize=99&order=desc&sort=activity&site=codegolf&filter=!SWJ_BpAceOT6L*G2Qa').json()["items"]]).index(145)+1)

2015-10-10 17:30:00 ইউটিসি থেকে আউটপুট:

I'm answer number 1.

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


6

অটোআইটি, 175 বাইট

(202 বাইট - 27 টি ইউআরএল)

#include<String.au3>
$0=_StringBetween
$1=1
For $2 In $0(BinaryToString(InetRead("http://q.codegolf.xyz/60204")),'<h1>',' b')
$1+=$0($2,', ','')[0]<175?1:0
Next
ConsoleWrite("I'm answer number "&$1&".")

2015-10-09 17:47:00 ইউটিসি থেকে আউটপুট:

I'm answer number 1.

এমনকি আমি অটল্টের কথা কখনও শুনিনি, তবে এটি সঠিক যে ভাষার নামের সাথে কমা থাকলে এটি কাজ করবে না? (এ জাতীয় কোনও ভাষা আছে কিনা তা আমি জানি না, সুতরাং এটির
গুরুত্ব রয়েছে

@ স্টেভিগ্রিফিন হ্যাঁ, তবে আমি এতে কোন কমা দিয়ে কোন ভাষা মনে করতে পারি না ;-)। যদি কেউ আসে তবে আমি এটি পরিবর্তন করব।
mınxomaτ

@minxomat নামটি দেখে মনে হচ্ছে এটির lপরিবর্তে এর একটি রয়েছেI , তাই আমি এটি ভুল লিখেছি। আমি যে বিষয়টি বুঝতে পেরেছিলাম তার কারণ হ'ল উইকিপিডিয়া নিবন্ধটি দেখে , যার একটি সেরিফ রয়েছে।
mbomb007

এই উত্তরটি নাশকতার জন্য কেউ কমা দিয়ে কোনও ভাষার উদ্ভাবন করার জন্য অপেক্ষা করছে ...
ড্যারাল হফম্যান

@ ড্যারেলহফম্যান ওয়েল, এটির নামে একটি কমা এবং ক্রমাগত স্থান থাকতে হবে
ı

4

জাভাস্ক্রিপ্ট (ES7), 149 বাইট

283 বাইট - URL এর জন্য 134। আমি আগে কখনও এইচটিটিপি অনুরোধ ব্যবহার করি নি, তবে এখানে ...

x=z=>alert(`I'm answer number ${[for(y of z.items)y.body.match(/, (\d+)/)[1]].sort().indexOf("149")+1}.`);document.write('<script src="//api.stackexchange.com/2.2/questions/60204/answers?pagesize=100&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T&callback=x">\x3C/script>')

ফায়ারফক্স 41 এ সফলভাবে পরীক্ষা করা হয়েছে।

প্রথমে এটি সমস্ত উত্তরগুলির শিরোনামগুলির মাধ্যমে তাদের বাইট গণনাগুলি সন্ধান করে, তারপরে এটি বাইট-কাউন্ট 243 149 সহ প্রথম অবস্থানটি আবিষ্কার করে currently এটি বর্তমানে কেবলমাত্র প্রথম 100 উত্তর পরীক্ষা করার জন্য প্রস্তুত করা হয়েছে, এবং যদি কেউ 100 এর নিচে পান তবে তা ভেঙে যাবে বাইটস, কিন্তু এটি আপাতত কাজ করে। ;)

আরও সংক্ষিপ্ত প্রযুক্তির জন্য @ জর্জরিথকে ধন্যবাদ । এজেএক্স (243 বাইট) ব্যবহার করে পুরানো সংস্করণ:

x=new XMLHttpRequest,x.onreadystatechange=_=>{if(x.readyState==4&&x.status==200)alert(`I'm answer number ${[for(y of JSON.parse(x.responseText).items)y.body.match(/, (\d+)/)[1]].sort((a,b)=>a-b).indexOf("243")+1}.`)},x.open("GET","//api.stackexchange.com/2.2/questions/60204/answers?pagesize=100&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T",!0),x.send()

ভাল লাগছে ... যদিও অন্য কেউ 151 বাইট উত্তর পোস্ট করলে সম্ভবত ভেঙে যাবে
জর্জ রিথ

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

আহ তিনি সম্পাদিত। তারপরেও সম্ভবত এটি তৈরির তারিখ অনুসারে বাছাই করা আরও ভাল instead এটির আগে এটি পোস্ট করা এবং তাদের উত্তর সম্পাদনা করার কয়েকজনের পরিবর্তে এটি আপনাকে খুঁজে পায় yours
জর্জ রিথ

@ জর্জিরিথ If other answers have the same number of bytes as your own, you can choose if you want to be best or worse of them.এটি এখনও মূল পোস্টে রয়েছে; আমি কি কিছু ভুল বুঝছি?
ইটিএইচ প্রডাকশনস

কোন দুঃখিত না আমি সম্পাদনার ইতিহাস পড়ছিলাম এবং বিভ্রান্ত হয়ে পড়ি।
জর্জ রিথ

4

পিএইচপি, 158 159 164 বাইট

I'm answer number <?for(;$h[]=json_decode(fread(gzopen('http://api.stackexchange.com/2.2/questions/60204/answers?pagesize=99&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T',r),1e4),1)[items][+$i++][body];);echo array_sum(preg_filter(~„ÑÕß×£›ÔÖ߆‹šŒÃЗÎÑÕ‚Œš,~ÛÎÃÎÊÇ,$h)),~Ñ;

'http://api.stackexchange.com/2.2/questions/60204/answers?pagesize=99&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T'গণনা করা থেকে 127 বাইট

অবারিত স্ট্রিং সহ ফর্ম্যাট সংস্করণ:

<?
for(;
    $h[]=json_decode(
        fread(
            gzopen(
                'http://api.stackexchange.com/2.2/questions/60204/answers?pagesize=99&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T',r
            ), 1e4
        ), 1
    )[items][+$i++][body];
);
echo"I'm answer number ",
    array_sum(
        preg_filter('{.* (\d+) bytes</h1.*}se','$1<159', $h)
    ),
    ".";
  • JSON প্রতিক্রিয়া লোড করে (উত্তর প্রতি একবারে 5 টি বাইট সংরক্ষণ করার জন্য, @ ব্ল্যাকহোলকে ধন্যবাদ)
  • উত্তর সংস্থাগুলি সংগ্রহ করে $h
  • বাইট গণনাটি <= 159 বা অন্যথায় "" (মিথ্যা) হলে পুরো পাঠটিকে "1" (সত্য) দিয়ে প্রতিস্থাপন করে
  • ফলাফলের যোগফল

চরিত্রের ক্রমগুলি ¶Ø’ßž‘Œˆšß‘Š’šßপিএইচপি-তে বৈধ ধ্রুবক নাম, তবে ধ্রুবকগুলির অস্তিত্ব না থাকায় স্ট্রিং আক্ষরিক হিসাবে বিবেচনা করা হয়। ~এগুলিকে উল্টে দেয়, এটিতে "I'm answer number "একটি (প্রতিটি উদ্ধৃতি চিহ্নের জন্য একটি বাইট সংরক্ষণ করে)

ব্যবহার

php -derror_reporting=0 howareyou.php

আমি উত্তর নম্বর 1।


Is $aপরিবর্তনশীল সত্যিই প্রয়োজনীয়? আপনি কেবল না কেন $h[]=json_decode(…)[items][+$i++][body]? কীভাবে এই অদ্ভুত চরিত্রগুলি?
ব্ল্যাকহোল

ভাল যুক্তি. এটি প্রতিটি উত্তরের জন্য একটি নতুন অনুরোধ জানাবে তবে কে খেয়াল রাখে :) আজব চরিত্রগুলি বিটওয়াইস উল্টানো স্ট্রিং। এগুলি পিএইচপি-তে বৈধ স্থির নাম যা স্ট্রিং লিটারাল হিসাবে ব্যবহৃত হয় যদি তাদের অস্তিত্ব না থাকে, তাই আমি উদ্ধৃতি চিহ্নগুলি সংরক্ষণ করতে পারি। উদাহরণস্বরূপ " "(3 বাইট) হ্রাস করা যেতে পারে (2 বাইট)
ফ্যাবিয়ান শেমংলার

সত্যই, আমি এই উত্তরটি সম্পর্কে আপনার ব্যাখ্যা খুঁজে পেয়েছি । যেহেতু এটি একটি অস্বাভাবিক পদ্ধতি, তাই আমি মনে করি এটি এখানে আপনার পোস্টে আবার ব্যাখ্যা করা ভাল ধারণা হতে পারে :)।
ব্ল্যাকহোল

আমার মনে হয় আপনি অনেক ভালো করতে পারেন যদি আপনি লাফালাফি json_decodeএবং মাত্র splitউপর ':'বা কিছু, যেমন: codepad.org/7rZg06by
Primo

ভাল ধারণা তবে আমি আশঙ্কা করি এটি অবিশ্বাস্য হতে পারে কারণ উত্স কোডগুলিতে প্রচুর কলোন থাকবে। খোলার আগে পিএইচপি ট্যাগ কমপক্ষে দুটি বাইট সাশ্রয় করার আগে "আমি উত্তর নম্বর" রাখছি, তার জন্য ধন্যবাদ!
ফ্যাবিয়ান শেমংলার

3

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

(ইউআরএল এর জন্য 335 - 149 বাইট)

a=d=>alert(`I'm answer number ${d.items.map(q=>(y=[q.body.match(/, (\d+)/)[1],(x=q.owner.user_id==11182)])&&x?z=y:y).sort().indexOf(z)+1}.`)
document.write(`<script src="https://api.stackexchange.com/questions/60204/answers?pagesize=100&order=desc&sort=activity&site=codegolf&filter=!)Q2B_A19OPkd2j8JforD00f5&callback=a">\x3C/script>`)


আপনি কোনভাবেই এটি করতে পারেন তা আমার কোনও ধারণা ছিল না! আপনি জিজ্ঞাসা করতে পারেন আপনি \x3Cপরিবর্তে কেন ব্যবহার করেছেন <?
ETH প্রোডাকশনগুলি

@ এইচটি প্রোডাকশনগুলি ব্রাউজারটি এখনই বন্ধ হওয়া স্ক্রিপ্ট ট্যাগটি সন্ধান করছে এবং অন্যথায় স্ক্রিপ্টটি কার্যকর করবে না, এটি পোস্ট সন্নিবেশ না হওয়া পর্যন্ত স্ক্রিপ্ট ট্যাগ বন্ধ করে দেয়। এটি একটি কলব্যাকের সাথে জেএসএনপি ব্যবহার করে এবং এটি সমর্থন করে তবে ভাগ্যক্রমে স্ট্যাকেক্সচেঞ্জের তা এপিআই-র উপর নির্ভর করে। সত্যিই আমি এর যুক্তিটি পুরোপুরি বুঝতে পারি না তবে এটি একটি বৈধ সমস্যা।
জর্জ রিথ

1

ওও, 153 বাইট

BEGIN{if(u){print"I\047m answer number "system("curl -s "u"|awk -f a")".";exit}FS="1>.*,|es<\/h"}NF==3{r+=($2+0)<153?1:0}END{exit(r<1?1:r)}

এটি কোনও ফাইলে সংরক্ষণ করা উচিত এবং এটির aমতো চালানো উচিত :

awk -v u=http://codegolf.stackexchange.com/questions/60204/how-are-you-doing -f a

আমি 68 বাইট বিয়োগ করছি http://codegolf.stackexchange.com/questions/60204/how-are-you-doingএবং বুটস্ট্র্যাপিং কোড 13 যোগ awk -v u=এবং -f a

কম গল্ফড, এটি আরও খাটো হতে পারে:

curl -s http://codegolf.stackexchange.com/questions/60204/how-are-you-doing | awk -F"1>.*,|es<\/h" 'NF==3{r+=(0+$2)<103?1:0}END{print"I\047m answer number "(r<1?1:0)"."}'

এটি সর্বদা বন্ধনে নিজেকে পছন্দ করে। বাইট গণনা প্রতিটি হার্ড কোডড হয়।

আরও গল্ফ সংস্করণে স্ক্রিপ্টটি নিজে কল করে এবং সিস্টেমের মাধ্যমে প্রস্থান মূল্য নির্ধারণ করে। প্রতিটি ক্ষেত্রে কেবল হার্ড-কোডিং মান বৃদ্ধির চেয়ে কম গণনা করা হয় rযা এরপরে 1অগ্রণী হলে এটিতে আবার সমন্বয় করতে হবে ।

এই সঠিকভাবে বাইট এটি তার মাঝে হোয়াইটস্পেস যদি ব্যর্থ হবে bytesএবং </h1>এবং সম্ভবত অন্যান্য ক্ষেত্রে একটি নম্বর আমি সঙ্গে বিবেচনা করেননি।

হিসাবে Sun Oct 11 05:17:51 UTC 2015, এটি দেয়:

I'm answer number 3.

যেহেতু এটি আমার প্রথমবারের মতো গল্ফিং হয়েছে দয়া করে আমাকে জানতে দিন যে আমি কোনও নিয়ম, ফাঁক, গণনা ইত্যাদির লঙ্ঘন করেছি বা আমি কী কী উন্নতি করতে পারি।
n0741337

আমি মনে করি আপনার "আমি নম্বর" না হয়ে "আমি উত্তর নম্বর" প্রিন্ট করতে হবে।
lirtosiast

@ থমাসকওয়া হাহ! আমি জানতাম সত্য বলা খুব ভালো ছিল। ধন্যবাদ এবং স্থির। বাইটস ব্যাক যোগ করার জন্য কি ধর্মঘট দরকার?
n0741337

আপনার কোনও দরকার নেই, যেমন আপনি যখন বাইটস গল্ফ করেন তখন আপনার স্ট্রাইকথ্রু দরকার হয় না।
lirtosiast

1

জিএনইউ অওক, 156 বাইট

( N0741337 এর আওক সমাধান দ্বারা অনুপ্রাণিত ।)

এটি বাহ্যিক আদেশ না চালিয়ে নিজেই এটি করে দেয় does

BEGIN{d="/inet/tcp/0/"h"/80"
print"GET "p" HTTP/1.1\nHost:"h"\n"|&d
while(d|&getline)n+=match($0,/1>.*, ([0-9]+)/,m)&&m[1]<156
print"I'm answer number",n+1}

হোস্টনাম এবং পাথ পৃথক মান হিসাবে প্রত্যাশা করে। প্রদত্ত তারা নিখরচায় উপলব্ধ, আশা করি এটি নিয়ম ভঙ্গ করে না।

নমুনা রান:

bash-4.3$ awk -v h=codegolf.stackexchange.com -v p=/questions/60204/how-are-you-doing -f number.awk 
I'm answer number 4
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.